diff --git a/WHATSNEW b/WHATSNEW
index 6ffa91b..7dab241 100644
--- a/WHATSNEW
+++ b/WHATSNEW
@@ -1,4 +1,4 @@
-Changes from Ant 1.2 to the current sources
+Changes from Ant 1.2 to Ant 1.3 Beta 2
 ===========================================
 
 Changes that could break older environments:
@@ -19,10 +19,12 @@
 Other changes:
 --------------
 
-* A GUI Frontend: Antidote. This is currently in development.
+* A GUI Frontend: Antidote. This is currently in development. At this
+  time, this is not part of the Ant release, although the source is
+  included if you are interested.
 
 * New tasks: stylebook, propertyfile, depend, antlr, telnet, csc,
-  ilasm, apply, javah, several clearcase tasks, junitreport
+  ilasm, apply, javah, several clearcase tasks, junitreport, sound
 
 * Added output attribute to <java>.
 
@@ -51,10 +53,6 @@
 * Style tasks will now support TraX compliant XSL processors if one is present
   in your classpath.  
 
-* Ant now prints a warning when an attempt is made to use a property which has
-  not been set. Any build files which rely on non-set properties being passed
-  through untranslated will now break.
-  
 * Added a failonerror to the javac task. If set to false, the build will 
   continue even if there are compilation errors.
   
@@ -66,6 +64,18 @@
 
 * ${} property expansion will now be performed on the patterns read
   from files specified as includesfile or excludesfile attributes.
+  
+* The <tar> and <untar> tasks now support GNU format for handling paths
+  which are greater than 100 characters in length. In addition the <tar>
+  task now supports nested filesets through which the file permissions
+  may be controlled.
+
+* wlrun, wlstop and ejbjar now support Weblogic 6.0
+
+* The MPasre task has been updated to work with MParse 2.0
+
+* The documentation has been significantly updated.
+
 
 Fixed bugs:
 -----------
@@ -82,9 +92,12 @@
 * ejbjar now correctly ignores <ejb-ref> elements in the deployment descriptor.
   CMP files are included by parsing the weblogic deployment descriptor rather 
   than relying on the naming convention used in ant 1.2
-  Include super classes and super interfaces into the generated ejb jar files
-  <support> nested element allows support classes to be included in the EJB jar
-
+  
+* ejbjar includes super classes and super interfaces into the generated ejb 
+  jar files. The <support> nested element allows support classes to be 
+  included in the EJB jar. The toplink element should now correctly locate
+  the toplink descriptor.
+  
 * <vssget> now correctly deals with spaces in arguments
 
 * <jar> fails early if a given manifest file doesn't exist
@@ -109,6 +122,10 @@
 
 * <junit> can now log to files whose name contains a comma as well. 
 
+* The AntClassLoader now refers to the loader which loaded it, any 
+  requests it does not handle itself. Previously these went to the 
+  primordial loader.
+
 Changes from Ant 1.1 to Ant 1.2
 ===============================
 
diff --git a/bootstrap.bat b/bootstrap.bat
index d406255..8b1578e 100755
--- a/bootstrap.bat
+++ b/bootstrap.bat
@@ -21,7 +21,7 @@
 if     "%OS%" == "Windows_NT" if exist bootstrap rmdir/s/q bootstrap
 if not "%OS%" == "Windows_NT" if exist bootstrap deltree/y bootstrap
 
-SET LOCALCLASSPATH=lib\parser.jar;lib\jaxp.jar
+SET LOCALCLASSPATH=lib\parser.jar;lib\jaxp.jar;lib\optional\junit.jar
 
 if exist %JAVA_HOME%\lib\tools.jar call src\script\lcp.bat %JAVA_HOME%\lib\tools.jar
 if exist %JAVA_HOME%\lib\classes.zip call src\script\lcp.bat %JAVA_HOME%\lib\classes.zip
@@ -29,7 +29,7 @@
 set TOOLS=src\main\org\apache\tools
 set CLASSDIR=classes
 
-SET CLASSPATH=%LOCALCLASSPATH%;%CLASSDIR%;src\main;
+SET CLASSPATH=%LOCALCLASSPATH%;%CLASSDIR%;src\main;%CLASSPATH%
 
 echo JAVA_HOME=%JAVA_HOME%
 echo JAVA=%JAVA%
diff --git a/bootstrap.sh b/bootstrap.sh
index 2767698..c50b50c 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -2,8 +2,6 @@
 
 # You will need to specify JAVA_HOME if compiling with 1.2 or later.
 
-unset CLASSPATH
-
 if [ "$JAVA_HOME" != "" ] ; then
   if [ -f $JAVA_HOME/lib/tools.jar ] ; then
     CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar
@@ -43,7 +41,7 @@
   rm -r bootstrap
 fi
 
-CLASSPATH=lib/parser.jar:lib/jaxp.jar:${CLASSPATH}
+CLASSPATH=lib/parser.jar:lib/jaxp.jar:lib/optional/junit.jar:${CLASSPATH}
 
 TOOLS=src/main/org/apache/tools
 CLASSDIR=classes
diff --git a/build.xml b/build.xml
index a793a7f..165a0ba 100644
--- a/build.xml
+++ b/build.xml
@@ -14,7 +14,7 @@
 
   <property name="Name" value="Ant"/>
   <property name="name" value="ant"/>
-  <property name="version" value="1.3alpha"/>
+  <property name="version" value="1.3beta2"/>
 
   <property name="debug" value="false" />
   <property name="deprecation" value="false" />
@@ -195,9 +195,9 @@
       <exclude name="${optional.package}/perforce/*.java" unless="jakarta.oro.present" />
       <exclude name="${optional.package}/sound/*.java" unless="jmf.present" />
       <exclude name="${optional.package}/junit/XMLResultAggregator.java"
-               unless="trax.present" />
+               unless="xalan.present" />
       <exclude name="${optional.package}/junit/AggregateTransformer.java"
-               unless="trax.present" />
+               unless="xalan.present" />
     </javac>
     
     <copy todir="${build.classes}">
@@ -293,12 +293,13 @@
       <fileset dir="${lib.dir}">
         <include name="*.jar" />
         <include name="*.zip" />
-        <exclude name="ant.jar"/>
-        <exclude name="optional.jar"/>
       </fileset>
     </copy>
 
-    <copy todir="${dist.docs}">
+    <copy todir="${dist.lib}" file="${lib.dir}/optional/README"/>
+    
+    <copy todir="${dist.docs}"
+          filtering="on">
       <fileset dir="${docs.dir}"/>
     </copy>
 
@@ -345,6 +346,7 @@
       <fileset dir="${lib.dir}">
         <include name="*.jar" />
         <include name="*.zip" />
+        <include name="optional/README"/>
       </fileset>
     </copy>
 
@@ -399,16 +401,16 @@
          excludes="${dist.name}/lib/optional.jar"/>
     <tar longfile="gnu"
          tarfile="${dist.base}/${dist.name}-bin.tar">
-      <fileset dir="${dist.name}/.." mode="755" username="ant" group="ant">
+      <tarfileset dir="${dist.name}/.." mode="755" username="ant" group="ant">
         <include name="${dist.name}/bin/ant"/>
         <include name="${dist.name}/bin/antRun"/>
-      </fileset> 
-      <fileset dir="${dist.name}/.." username="ant" group="ant"> 
+      </tarfileset> 
+      <tarfileset dir="${dist.name}/.." username="ant" group="ant"> 
         <include name="${dist.name}/**"/>
         <exclude name="${dist.name}/bin/ant"/>
         <exclude name="${dist.name}/bin/antRun"/>
         <exclude name="${dist.name}/lib/optional.jar"/>
-      </fileset> 
+      </tarfileset> 
     </tar>
     <gzip zipfile="${dist.base}/${dist.name}-bin.tar.gz" 
           src="${dist.base}/${dist.name}-bin.tar"/>
@@ -425,15 +427,15 @@
          includes="${dist.name}/**"/>
     <tar longfile="gnu"
          tarfile="${dist.base}/${dist.name}-src.tar" >
-      <fileset dir="${dist.name}/.." mode="755" username="ant" group="ant">
+      <tarfileset dir="${dist.name}/.." mode="755" username="ant" group="ant">
         <include name="${dist.name}/bootstrap.sh"/>
         <include name="${dist.name}/build.sh"/>
-      </fileset> 
-      <fileset dir="${dist.name}/.." username="ant" group="ant"> 
+      </tarfileset> 
+      <tarfileset dir="${dist.name}/.." username="ant" group="ant"> 
         <include name="${dist.name}/**"/>
         <exclude name="${dist.name}/bootstrap.sh"/>
         <exclude name="${dist.name}/build.sh"/>
-      </fileset>
+      </tarfileset>
     </tar> 
     <gzip zipfile="${dist.base}/${dist.name}-src.tar.gz" 
           src="${dist.base}/${dist.name}-src.tar"/>
diff --git a/docs/VAJAntTool.html b/docs/VAJAntTool.html
deleted file mode 100644
index 16a595d..0000000
--- a/docs/VAJAntTool.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<!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>Ant VisualAge for Java Tool Integration</title>
-</head>
-<body>
-<h1>Ant PlugIn for VisualAge for Java</h1>
-<a name="authors"></a>by
-<ul>
-  <li>Wolf Siberski (<a href="mailto:wolf.siberski@tui.de">
-    wolf.siberski@tui.de</a>)</li>
-  <li>Christoph Wilhelms (<a href="mailto:christoph.wilhelms@tui.de">
-    christoph.wilhelms@tui.de</a>)</li>
-</ul>
-Version 1.0 - 2000/11/09<br>
-<hr>
-<h2>Table of Contents</h2>
-<ul>
-  <li><a href="#introduction">Introduction</a></li>
-  <li><a href="#installation">Installation</a></li>
-  <li><a href="#usage">Usage</a></li>
-  <li><a href="#faq">Frequently Asked Questions</a></li>
-  <li><a href="#va_versions">Visual Age Versions</a></li>
-</ul>
-<hr>
-<h2><a name="introduction"></a>Introduction</h2>
-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 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 targets (vajload, vajexport, vajimport) you can load defined
-defined 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 a comfortable deployment VAJ has not (out of the box)!<br>
-<hr>
-<h2><a name="installation"></a>Installation</h2>
-At the moment the installation has it's rough edges. If something described
-below doesn't work for You, it's probably not Your fault but incomplete/wrong
-instructions. In this case, please contact one of the <a href="#authors">
-authors</a>.<br>
-We assume <font face="Courier">C:\IBMVJava</font> as VAJ install directory.
-If You have installed it elsewhere, adapt the pathes below. Execute following
-steps to get the PlugIn up and running:
-<ul>
-  <li>import the Ant sources into VAJ.</li>
-  <li>import an appropriate XML parser to VAJ (we use Xerces 1.2.0 and are
-    happy with it). Unfortunately the XML parser delivered with VAJ (in the
-    project 'IBM XML Parser for Java') doesn't work with Ant. You have to
-    remove that project (temporarily) from the workspace before importing
-    another XML implementation.</li>
-  <li>Create the directory <font face="Courier">
-    C:\IBMVJava\ide\tools\org-apache-tools-ant</font>.</li>
-  <li>export the Ant and XML parser class files into this directory. Be sure
-    to select class files and resources. Sources don't have to be exported.
-    Some optional tasks have errors and can't be exported when You don't have
-    the necessary packages in Your workspace (e.g. junit task, ejbc task).
-    If You need this tasks either import these packages into VAJ, too,
-    or copy the .class files directly from the binary distribution</li>
-  <li>copy <font face="Courier">default.ini</font> (in
-    <font face="Courier">jakarta-ant\src\...\taskdefs\optional\ide</font>)
-    to <font face="Courier">
-    C:\IBMVJava\ide\tools\org-apache-tools-ant\default.ini</font>.</li>
-  <li>if&nbsp; you want to access this help from the Workbench, create the
-    directory <font face="Courier">
-    C:\IBMVJava\ide\tools\org-apache-tools-ant\doc</font> and copy the files
-    <font face="Courier">VAJAntTool.html</font>,
-    <font face="Courier">toolmenu.gif</font> and
-    <font face="Courier">anttool1.gif</font> to it.</li>
-  <li>VAJ has to be restarted to recognize the new tool.</li>
-  <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>
-  <li>Make sure the tool works as expected. Now You can remove Ant and the
-    imported XML parser from Your workspace (and optionally add the IBM parser
-    again).</li>
-</ul>
-<hr>
-<h2><a name="usage"></a>Usage</h2>
-Beeing sure 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 src="toolmenu.gif" border="0" height="246" width="393">
-</center></p>
-After a short time this frame should pop up:
-<p><center><img src="anttool1.gif" border="0" height="222" width="389">
-</center></p>
-This frame contains the following:
-<ul>
-  <li>A menubar with some options described later</li>
-  <li>The name of your selected VAJ project</li>
-  <li>An entry field for the Ant XML buildfile with a browse [...] button. The
-    full qualified filename, including the directory is needed here.</li>
-  <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 <i>Reload Project</i> 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 <i>Execute Task</i> button.</li>
-  <li>A pulldown box for specifying the log level.</li>
-  <li>Three buttons. Two of them I have already described and the third one
-    is just the <i>Close </i>button to exit our small tool!</li>
-</ul>
-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.
-<br>
-<hr>
-<h2><a name="faq"></a>Frequently Asked Questions</h2>
-<p>F: I want to load, export and build more then one Visual Age project to
-one jar! How to?<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>
-<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 build with AWT so it is JDK independent
-by now!<br>
-<hr>
-<p><center>Copyright &copy; 2000 Apache Software Foundation.
-All rights Reserved.</center></p>
-</body>
-</html>
diff --git a/docs/ant_in_anger.html b/docs/ant_in_anger.html
index bd43631..da6bef7 100644
--- a/docs/ant_in_anger.html
+++ b/docs/ant_in_anger.html
@@ -106,7 +106,7 @@
 
 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="index.html#ant">ant</a>
+<a href="manual/CoreTasks/ant.html">ant</a>
 task. For example. the clean target could be handed down to the intf and
 impl subdirectories from a parent directory
 
@@ -126,9 +126,9 @@
 </h3>
 
 If ant does not do what you want, you can use the
-<a href="index.html#exec">exec</a> and
-<a href="index.html#java">java</a> tasks or
-<a href="index.html#script">inline scripting</a> to extend it. In a
+<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
@@ -153,7 +153,7 @@
 <b>(alternatively "recriminate early, recriminate often")</b>
 <p>
 
-Ant lets you call <a href="junit.html">JUnit</a> tasks, which unit test
+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
@@ -175,7 +175,7 @@
 
 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= "index.html#java">java</a>
+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.
@@ -198,8 +198,8 @@
 tools (exec tasks) which are not portable, path issues, and hard coding
 in the location of things.
 
-<h3>Command Line apps: <a href="index.html#exec">Exec</a>/ <a href=
-"index.html#execon">ExecOn</a></h3>
+<h3>Command Line apps: <a href="manual/CoreTasks/exec.html">Exec</a>/ <a href=
+"manual/CoreTasks/execon.html">ExecOn</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
@@ -260,14 +260,14 @@
 
 <p>
 
-Some tasks only work on one platform -<a href= "index.html#chmod">
+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="index.html#get">Get<a>, <a
-href="index.html#touch">Touch</a> and <A href="index.html#unzip">
+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.
 
@@ -318,14 +318,14 @@
 many people have put in the effort to make the tasks easier.
 <p>
 
-Ant can <a href="index.html#jar">Jar</a>, <a href= "index.html#tar">
-Tar</a> or <a href="index.html#zip">Zip</a> files for deployment, while
-the <a href="index.html#war">War</a> task extends the jar task for
+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 = "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=
-"index.html#cab">Cab</a> can be used on Win32 boxes to build a cab file
+"manual/OptionalTasks/cab.html">Cab</a> can be used on Win32 boxes to build a cab file
 which is useful if you have to target IE deployment.
 
 <p>
@@ -333,7 +333,7 @@
 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=
-"index.html#fixcrlf">FixCRLF task</a> is often a useful interim step if
+"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. If DAV is your
@@ -341,7 +341,7 @@
 
 <p>
 
-EJB deployment is aided by the <a href="ejb.html">ejb tasks</a>. At the
+EJB deployment is aided by the <a href="manual/OptionalTasks/ejb.html">ejb tasks</a>. At the
 time of writing, only WebLogic was supported with these tasks -if your
 EJB server is not supported, extending the ejb tasks would benefit your
 project and the rest of the ant community.
@@ -349,9 +349,9 @@
 <p>
 
 Finally, there are of course the fallbacks of just copying files to a
-destination using <a href="index.html#copy">Copy</a> and <a href =
+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= "index.html#mail">Mail</a>.
+process using <a href= "manual/CoreTasks/mail.html">Mail</a>.
 
 <a name="directories">
 <h2> Directory Structures</h2>
@@ -527,7 +527,7 @@
 	get
 </b><dd>
 
-The <a href="index.html#get">get</a> task can fetch any URL, so be used
+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
@@ -538,7 +538,7 @@
 
 
 Internationalisation is always trouble. Ant helps here with the <A href=
-"native2ascii.html">native2ascii</a> task which can escape out all non
+"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
@@ -604,7 +604,7 @@
 </b><dd>
 
 XSLT can be used to dynamically generate build.xml files from a source
-xml file, with the <a href="index.html#style">Style</a> task controlling
+xml file, with the <a href="manual/CoreTasks/style.html">Style</a> task controlling
 the transform. This is the current recommended strategy for creating
 complex build files dynamically.
 
diff --git a/docs/ejb.html b/docs/ejb.html
deleted file mode 100644
index 39235ff..0000000
--- a/docs/ejb.html
+++ /dev/null
@@ -1,514 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant 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>Tim Fennell (<a href="mailto:tfenne@rcn.com">tfenne@rcn.com</a>)</li>
-  <li>Conor MacNeill (<a href="mailto:conor@cortexebusiness.com.au">conor@cortexebusiness.com.au</a>)</li>
-</ul>
-
-<p>Version 1.1 - 2000/07/18</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">Enterprise Java Beans (EJBs)</a>. 
-In general these tasks are specific to the particular vendor's EJB Server. At present the tasks support
-<a href="http://www.bea.com">Weblogic</a> 4.5.1 and 5.1 EJB servers. Over time we expect further optional tasks 
-to support additional EJB Servers. 
-
-<hr>
-<h2><a name="ejbtasks">EJB Tasks</a></h2>
-<table border="1" cellpadding="5">
- <tr><td>Task</td><td>Application Servers</td></tr>
- <tr><td><a href="#ddcreator">ddcreator</a></td><td>Weblogic 4.5.1</td></tr>
- <tr><td><a href="#ejbc">ejbc</a></td><td>Weblogic 4.5.1</td></tr>
- <tr><td><a href="#wlrun">wlrun</a></td><td>Weblogic 4.5.1 and 5.1</td></tr>
- <tr><td><a href="#wlstop">wlstop</a></td><td>Weblogic 4.5.1 and 5.1</td></tr>
- <tr><td><a href="#ejbjar">ejbjar</a></td><td>Weblogic 5.1</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. 
-
-
-<h3>Parameters:</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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 serialised 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;</code>
-</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 serialised 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>
-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 serialised 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>
-Each descriptor is examined to determiune 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 serialised 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.
-<h3>Parameters:</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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 serialised 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
-                     classfiles of the bean, home interface, remote interface, etc of the bean being
-                     processed.</td>
-    <td valign="top" align="center">No</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;</code>
-</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.
-
-<h3>Parameters:</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></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>
-  </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. This is typically set to the Weblogic boot classpath.</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>
-  </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>
-  </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>
-  </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>
-  </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>
-  </tr>
-  <tr>
-    <td valign="top">args</td>
-    <td valign="top">Additional argument string passed to the Weblogic instance.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-
-
-<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. 
-
-<h3>Parameters:</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></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 comment.</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>
-
-
-<hr>
-<h2><a name="ejbjar">ejbjar</a></h2>
-<h3><b>Description:</b></h3>
-<p>This task is designed to support building of arbitrary EJB1.1 jar files. Support is currently
-   provided for 'vanilla' EJB1.1 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. Currently, a nested element is provided for building Weblogic 5.1 
-   session/entity beans using the weblogic.ejbc tool as well as a nested element for building 
-   TOPLink for WebLogic 2.5.1-enabled entity beans.</p>
-
-<p>This task supports two approaches to creating ejb jar files. The first approach assumes a particular 
-   naming convention for deployment descriptor files. For an Account bean, for example, the deployment 
-   descriptor would be named <code>Account-ejb-jar.xml</code>. This naming convention allows the task to 
-   distinguish deployment descriptors without relying on their positioning within a source tree. It is 
-   also used to derive the name of the .jar file which is generated. For the example this would be 
-   <code>Account.jar</code>. Vendor specific files are assumed to be named in a similar fashion. The 
-   deployment descriptor file which defines additional weblogic specific information for the above bean 
-   would be <code>Account-weblogic-ejb-jar.xml</code>.
-   The second approach does not require a naming convention. This approach uses a specified a jar name 
-   for the resultant ejb jar. If the jar name is present, then no naming convention is required. If the
-   jar name is not specified, then the default naming convention is expected for the deployment descriptor
-   files.
-   
-<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 EJB1.1
-   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. Note that support classes used by the bean but which are not part of the 
-   bean's interfaces are not included in the assembled jar. These need to be collected into a
-   separate support jar file.</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. Note that at this time the only supported tool is
-   Weblogic's ejbc tool.
-
-<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>
-
-<h3>Parameters:</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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.
-                     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 correpsonding 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</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' attibute) 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>
-</table>
-
-<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>Weblogic element</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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 correpsonding 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 intermeditate 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">keepgeneric</td>
-    <td valign="top">This controls whether the generic fiule used as input to ejbc is retained.</td>
-    <td valign="top" align="center">No, defaults to false</td>
-  </tr>
-</table>
-
-<h3>TOPLink for Weblogic element</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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 correpsonding 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 intermeditate 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">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">toplinkdescriptor</td>
-    <td valign="top">This specifes 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>
-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.
-<pre>
-    &lt;ejbjar srcdir="${build.classes}"
-            descriptordir="${descriptor.dir}"&gt;
-      &lt;weblogic destdir="${deploymentjars.dir}"
-                classpath="${descriptorbuild.classpath}"/&gt;
-      &lt;include name="**/*-ejb-jar.xml"/&gt;
-      &lt;exclude name="**/*weblogic*.xml"/&gt;
-    &lt;/ejbjar&gt;
-</pre>
-
-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'.
-<pre>
-    &lt;ejbjar srcdir="${build.classes}"
-            descriptordir="${descriptor.dir}"
-            basejarname="TheEJBJar"&gt;
-      &lt;weblogic destdir="${deploymentjars.dir}"
-                classpath="${descriptorbuild.classpath}"/&gt;
-      &lt;include name="**/ejb-jar.xml"/&gt;
-      &lt;exclude name="**/weblogic*.xml"/&gt;
-    &lt;/ejbjar&gt;
-</pre>
-
-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'.
-<pre>
-    &lt;ejbjar srcdir="${build.dir}"
-            destdir="${solant.ejb.dir}"
-            descriptordir="${descriptor.dir}"
-            basejarname="Address"&gt;
-            &lt;weblogictoplink destdir="${solant.ejb.dir}"
-                    classpath="${java.class.path}"
-                    keepgeneric="false"
-                    toplinkdescriptor="Address.xml"
-                    toplinkdtd="file:///dtdfiles/toplink-cmp_2_5_1.dtd"
-                    suffix=".jar"/&gt;
-            &lt;include name="**/ejb-jar.xml"/&gt;
-            &lt;exclude name="**/weblogic-ejb-jar.xml"/&gt;
-    &lt;/ejbjar&gt;
-</pre>
-
-</body>
-
-</html>
-
-
diff --git a/docs/frames-index.html b/docs/frames-index.html
deleted file mode 100644
index a86981b..0000000
--- a/docs/frames-index.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-	<title>Ant User Manual</title>
-</head>
-
-<frameset cols="25%,*">
-<frame src="frames-toc.html" name="toc" title="Ant User Manual Table of Contents">
-<frame src="index.html" name="index" title="Ant User Manual">
-</frameset>
-
-
diff --git a/docs/frames-toc.html b/docs/frames-toc.html
deleted file mode 100644
index 729b191..0000000
--- a/docs/frames-toc.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<html>
-<head>
-	<title>Ant User Manual</title>
-</head>
-
-<body>
-<h1>Table of Contents</h1>
-<ul>
-  <li><a href="index.html#introduction" target="index">Introduction</a></li>
-  <li><a href="index.html#getting" target="index">Getting Ant</a></li>
-  <li><a href="index.html#sysrequirements" target="index">System Requirements</a></li>
-  <li><a href="index.html#installing" target="index">Installing Ant</a></li>
-  <li><a href="index.html#buildingant" target="index">Building Ant</a></li>
-  <li><a href="index.html#running" target="index">Running Ant</a></li>
-  <li><a href="index.html#buildfile" target="index">Writing a Simple Buildfile</a>
-  <li><a href="index.html#directorybasedtasks" target="index">Directory-based Tasks</a></li>
-  <li><a href="index.html#bitasks" target="index">Built-in Tasks</a>
-  <li><a href="index.html#optionaltasks" target="index">Optional Tasks</a>
-  <li><a href="index.html#buildevents" target="index">Build Events</a>
-  <li><a href="index.html#writingowntask" target="index">Writing Your Own Task</a></li>
-  <li><a href="index.html#faq" target="index">FAQ, DTD, External Resources</a>
-  <li><a href="../LICENSE" target="index">License</a></li>
-  <li><a href="index.html#feedback" target="index">Feedback</a></li>
-</ul>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
deleted file mode 100644
index 0052975..0000000
--- a/docs/index.html
+++ /dev/null
@@ -1,6766 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<center>
-<h1>Ant User Manual</h1>
-<p>by</p>
-</center>
-<!-- Names are in alphabetical order, on last name -->
-<ul>
-  <li>Stephane Bailliez (<a href="mailto:sbailliez@imediation.com">sbailliez@imediation.com</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@epost.de">stefan.bodewig@epost.de</a>)</li>
-  <li>Patrick Chanezon (<a href="mailto:chanezon@netscape.com">chanezon@netscape.com</a>)</li>
-  <li>James Duncan Davison (<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>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>Conor MacNeill (<a href="mailto:conor@cortexebusiness.com.au">conor@cortexebusiness.com.au</a>)</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>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>
-</ul>
-
-<center>
-<p>Version: @VERSION@<br>
-$Id$</p>
-</center>
-
-<hr>
-<h2>Table of Contents</h2>
-<ul>
-  <li><a href="#introduction">Introduction</a></li>
-  <li><a href="#getting">Getting Ant</a></li>
-  <li><a href="#sysrequirements">System Requirements</a></li>
-  <li><a href="#installing">Installing Ant</a></li>
-  <li><a href="#buildingant">Building Ant</a></li>
-  <li><a href="#running">Running Ant</a></li>
-  <li><a href="#buildfile">Writing a Simple Buildfile</a>
-  <li><a href="#directorybasedtasks">Directory-based Tasks</a></li>
-  <li><a href="#bitasks">Built-in Tasks</a>
-  <li><a href="#optionaltasks">Optional Tasks</a>
-  <li><a href="#buildevents">Build Events</a>
-  <li><a href="#writingowntask">Writing Your Own Task</a></li>
-  <li><a href="#faq">FAQ, DTD, External Resources</a>
-  <li><a href="../LICENSE">License</a></li>
-  <li><a href="#feedback">Feedback</a></li>
-</ul>
-
-<hr>
-<h2><a name="introduction">Introduction</a></h2>
-<p>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 &#150; 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>
-<h2><a name="getting">Getting Ant</a></h2>
-<h3>Binary edition</h3>
-<p>The latest stable version of Ant can be downloaded from <a
-href="http://jakarta.apache.org/builds/ant/release/v1.2/bin/">
-http://jakarta.apache.org/builds/ant/release/v1.2/bin/</a>.
-If you like living on the edge, you can download the latest version from <a
-href="http://jakarta.apache.org/builds/ant/nightly/">http://jakarta.apache.org/builds/ant/nightly/</a>.</p>
-<h3>Source Edition</h3>
-<p>If you prefer the source edition, you can download Ant from <a
-href="http://jakarta.apache.org/builds/ant/release/v1.2/src/">
-http://jakarta.apache.org/builds/ant/release/v1.2/src/</a>
-(latest stable) or from <a
-href="http://jakarta.apache.org/from-cvs/jakarta-tools/">http://jakarta.apache.org/from-cvs/jakarta-ant/</a>
-(current). See the section <a href="#buildingant">Building Ant</a> on how to
-build Ant from the source code.</p>
-
-<hr>
-<h2><a name="sysrequirements">System Requirements</a></h2>
-<p>
-To build and use Ant, you must have a JAXP-compliant XML parser installed and available on your classpath.
-<p>
-Both the binary and source distributions of Ant include the reference implementation of JAXP 1.0.
-Please see <a href="http://java.sun.com/xml/">http://java.sun.com/xml/</a> for more information. 
-If you wish to use a different JAXP-compliant parser, you should remove
-<code>jaxp.jar</code> and <code>parser.jar</code>
-from Ant's <code>lib/core</code> directory.
-You can then either put the jars from your preferred parser into Ant's 
-<code>lib/core</code> directory or put the jars on the system classpath.
-<p>
-For the current version of Ant, you will also need a JDK installed on
-your system, version 1.1 or later. A future version of Ant will require
-JDK 1.2 or later.
-</p>
-  
-<hr>
-<h2><a name="installing">Installing Ant</a></h2>
-<p>The binary distribution of Ant consists of four directories:
-<code>bin</code>,
-<code>docs</code>,
-<code>lib</code> and
-<code>src</code>. Only the <code>bin</code> 
-and <code>lib</code> directories are required for running Ant. To run Ant, the 
-following must be done:</p>
-<ul>
-<li>Add the <code>bin</code> directory to your path.</li>
-<li>Set the <code>ANT_HOME</code> environment variable.
-This should be set to the directory
-that contains the <code>bin</code> and <code>lib</code> directories.</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 the JDK is installed.</li>
-</ul>
-<h3>Windows</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>
-<a name="advanced">
-<h3>Advanced</h3>
-</a>
-<p>There are lots of variants that can be used to run Ant. What you need is at
-least the following:</p>
-<blockquote>
-The classpath for Ant must contain <code>ant.jar</code> and any jars/classes 
-needed for your chosen JAXP-compliant XML parser.</p>
-<p>When you need JDK functionality
-(such as for the <a href="#javac">javac</a> task or the
-<a href="#rmic">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.</p>
-<p>When you are executing platform-specific applications (such as the <a
-href="#exec">exec</a> task or the <a href="#cvs">cvs</a> task), the property <code>ant.home</code>
-must be set to the directory containing
-the <code>antRun</code> shell script necessary to run exec's on Unix.</p>
-</blockquote>
-<hr>  
-<h2><a name="buildingant">Building Ant</a></h2>
-<p>To build Ant, you should install the Ant source distribution.
-While the binary distribution 
-includes the Ant source code, it is intended for reference purposes only.
-The bootstrap and build scripts used to build Ant itself are not included
-in the binary distribution.
-<p>
-<p>Once you have installed the source distribution, go to the 
-<code>jakarta-ant</code> 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 auxilliary jars required to
-build tasks you are interested in. These should either be available
-on the classpath or added to Ant's <code>lib</code>
-directory. The list of auxilliary tasks and requirements is in
-<code>lib/README</code>.</p>
-
-<p>Run <code>bootstrap.bat</code> (Windows) or <code>bootstrap.sh</code> (UNIX)
-to build a bootstrap version of Ant.</p>
-<p>When finished, use:</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>to create a binary distribution of Ant. This distribution can be
-found in the directory you specified.</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 mininstall</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Windows</i>)</p>
-  <p><code>build.sh mininstall</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>mininstall</code> targets will overwrite 
-the current Ant version in <code>ANT_HOME</code>.
-
-<hr>
-<h2><a name="running">Running Ant</a></h2>
-<p>Running Ant is simple, when you installed it as described in the previous
-section. Just type <code>ant</code>.</p>
-<p>When nothing is specified, Ant looks for a <code>build.xml</code>
-file in the current directory. If found, it uses that file as the
-buildfile. If you use the <nobr><code>-find</code></nobr> option,
-Ant will search for a buildfile in 
-the parent directory, and so on, until the root of the filesystem 
-has been reached. To make Ant use
-another buildfile, use the command-line
-option <code>-buildfile <i>file</i></code>,
-where <i>file</i> is the buildfile you want to use.</p>
-<p>You can also set properties that override properties specified in the
-buildfile (see the <a href="#property">property</a> task). 
-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.
-This can also be used to have access to your environment variables
-(and is the only way, since Java cannot access them).
-Just pass <nobr><code>-DMYVAR=%MYVAR%</code></nobr> (Windows) or
-<nobr><code>-DMYVAR=$MYVAR</code></nobr> (Unix)
-to Ant &#150; you can then access
-these variables inside your buildfile as <code>${MYVAR}</code>.</p>
-<p>Two more options are: <nobr><code>-quiet</code></nobr>,
-which instructs Ant to print less
-information on the console when running, and
-<nobr><code>-verbose</code></nobr>, which causes Ant to print
-additional information to the console.</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 <code>&lt;project&gt;</code> tag is
-used.</p>
-<p>The <nobr><code>-projecthelp</code></nobr>
-option gives a list of this project's
-targets. First those with a description, then those without one.</p>
-<p>Command-line option summary:</p>
-<pre>ant [options] [target [target2 [target3] ...]]
-Options:
--help                  print this message
--projecthelp           print project help information
--version               print the version information and exit
--quiet                 be extra quiet
--verbose               be extra verbose
--debug                 print debugging information
--emacs                 produce logging information without adornments
--logfile <i>file</i>          use given file for log output
--logger <i>classname</i>      the class that is to perform logging
--listener <i>classname</i>    add an instance of class as a project listener
--buildfile <i>file</i>        use specified buildfile
--find <i>file</i>             search for buildfile towards the root of the filesystem and use the first one found
--D<i>property</i>=<i>value</i>       set <i>property</i> to <i>value</i>
-</pre>
-<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 a
-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 a
-target called <code>dist</code>, setting the <code>build</code> property to the
-value <code>build/classes</code>.</p>
-
-<h3>Running Ant by Hand</h3>
-<p>If you have installed Ant in the do-it-yourself way, Ant can be started
-with:</p>
-<blockquote>
-  <pre>java -Dant.home=c:\ant org.apache.tools.ant.Main [options] [target]</pre>
-</blockquote>
-
-<p>These instructions actually do exactly the same as the <code>ant</code>
-command. The options and target are the same as when running Ant with the <code>ant</code>
-command. This example assumes you have set your classpath to include:
-<ul>
-<li><code>ant.jar</code>
-<li>jars/classes for your XML parser
-<li>the JDK's required jar/zip files
-</ul>
-<hr>
-<h2><a name="buildfile">Writing a Simple Buildfile</a></h2>
-<p>Ant's buildfiles are written in XML. Each buildfile contains one project.</p>
-<p>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>Projects</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">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>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>Targets</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 &#150; 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>A target gets executed only once, even when more than one target
-depends on it (see the previous example).</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. 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>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.</p>
-<p>It is a good practice to place your <a
-href="#tstamp">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 &quot;init&quot;.</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>
-
-<a name="tasks">
-<h3>Tasks</h3>
-</a>
-<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="#bitasks">built-in tasks</a>, along with a 
-number of
-<a href="#optionaltasks"> optional tasks</a>, but it is also very
-easy to <a href="#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 name 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 "task1" 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>Properties</h3>
-<p>A project can have a set of properties. These might be set in the buildfile
-by the <a href="#property">property task</a>, or might be set outside Ant. A
-property has a name and a value. 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 as <code>build/classes</code>.</p>
-
-<h3>Built-in Properties</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>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.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; and &quot;1.3&quot;.
-</pre>
-
-<h3>Example</h3>
-<pre>
-&lt;project name=&quot;MyProject&quot; default=&quot;dist&quot; basedir=&quot;.&quot;&gt;
-
-  &lt;!-- set global properties for this build --&gt;
-  &lt;property name=&quot;src&quot; value=&quot;.&quot;/&gt;
-  &lt;property name=&quot;build&quot; value=&quot;build&quot;/&gt;
-  &lt;property name=&quot;dist&quot;  value=&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;&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;&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;&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>
-
-<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="#filter">filter task</a>.&nbsp;</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 filter 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 &#150; but as long as you choose appropriate names for your
-tokens, this should not cause problems.</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 &#150; 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 abreviated to:</p>
-<pre>
-    &lt;classpath path=&quot;${classpath}&quot;/&gt;
-</pre>
-<p>In addition, <a href="#fileset">FileSet</a>s can be specified via
-nested <code>&lt;fileset&gt;</code> elements. 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;/classpath&gt;
-</pre>
-<p>Builds a path that holds the value of <code>${classpath}</code>,
-followed by all jar files in the <code>lib</code> directory, followed
-by the <code>classes</code> directory.</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 &#150; 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="4">Exactly one of these.</td>
-  </tr>
-  <tr>
-    <td valign="top">line</td> 
-    <td valign="top">a space-delimited list of command-line arguments.</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>
-</table>
-<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 useful if you are going to replicate
-the same snippet of XML over and over again &#150; 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="#patternset">PatternSet</a>s, <a href="#fileset">FileSet</a>s or
-<a href="#path">path-like structures</a> accept references to these
-structures as well.</p>
-
-<hr>
-<h2><a name="directorybasedtasks">Directory-based Tasks</a></h2>
-<p>Some tasks use directory trees for the task they perform.
-For example, the <a
-href="#javac">javac</a> task, which works upon a directory tree
-with <code>.java</code> files.
-Sometimes it can be very useful to work on a subset of that directory tree. This
-section describes how you can select a subset of such a directory tree.</p>
-<p>Ant gives you two ways to create a subset, both of which can be used at the same
-time:</p>
-<ul>
-  <li>Only include files/directories that match at least one pattern of a set of
-    patterns.</li>
-  <li>Exclude files/directories that match at least one pattern a set of
-    patterns.</li>
-</ul>
-<p>When both inclusion and exclusion are used, only files/directories that match
-the include patterns, and don't match the exclude patterns, are used.</p>
-<p>Patterns can be specified inside the buildfile via task attributes or
-nested elements and via external files. Each line of the external file
-is taken as a pattern that is added to the list of include or exclude 
-patterns.</p>
-<h3>Patterns</h3>
-<p>As described earlier, patterns are used for the inclusion and exclusion.
-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; &#150; 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>Examples</h3>
-<pre>  
-&lt;copy todir=&quot;${dist}&quot;>
-  &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>
-<p> This example can also be expressed using nested elements:
-<pre>
-&lt;copy todir=&quot;${dist}&quot;>
-  &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>
-
-<h3>Default Excludes</h3>
-<p>There are a set of definitions that are excluded by default from all directory-based tasks.
-They are:
-<pre>
-     **/*~
-     **/#*#
-     **/%*%
-     **/CVS
-     **/CVS/**
-     **/.cvsignore
-</pre>
-If you do not want these default excludes applied, you may disable them with the 
-<code>defaultexcludes=&quot;no&quot;</code> attribute.
-<h3><a name="patternset">PatternSets</a></h3>
-<p>Patterns 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">FileSet</a> or a
-directory-based task that constitutes an implicit FileSet. In addition,
-<code>patternset</code>s can be defined at the same level as
-<code>target</code> &#151; i.e., as children of <code>project</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-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.</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma-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.</td>
-  </tr>
-</table>
-
-<h4>Examples</h4>
-<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="#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 &lt;include&gt; and &lt;exclude&gt; 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>
-
-<h3><a name="fileset">FileSets</a></h3>
-<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">PatternSets</a>. FileSets can appear inside tasks
-that support this feature or at the same level as <code>target</code>
-&#150; 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> and
-<code>&lt;exclude&gt;</code> elements of PatternSet directly, as well
-as PatternSet'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 FileSet.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes 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-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-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>
-</table>
-
-<h4>Examples</h4>
-<blockquote><pre>
-&lt;fileset dir=&quot;${server.src}&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 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;${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 example above.</p>
-
-<h3><a name="mapper">Mapping File Names</a></h3>
-<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="#javac">javac</a>, you know there will be
-<code>.class</code> files for your <code>.java</code> files) &#150; 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">fileset</a>s, you don't specify target files directly &#150;
-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 &#150; 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 align="center" valign="center" rowspan="2">Exactly one of both</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="#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>The classpath can be specified via a nested
-<code>&lt;classpath&gt;</code>, as well &#150; that is,
-a <a href="#path">path</a>-like structure.</p>
-<p>The built-in mapper types are:</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;
-</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;
-</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> &#150; <code>from</code> will be ignored.</p>
-<h5>Examples:</h5>
-<blockquote><pre>
-&lt;mapper type=&quot;merge&quot; 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;
-</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;
-</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</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://jakarta.apache.org/regexp/">jakarta-regexp</a> and <a
-href="http://jakarta.apache.org/oro/">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>.</a> For information about using <a
-href="http://www.cacas.org/~wes/java/">gnu.regexp</a> or <a
-href="http://www.crocodile.org/~sts/Rex/">gnu.rex</a> with Ant, see <a
-href="http://marc.theaimsgroup.com/?l=ant-dev&m=97550753813481&w=2">this</a>
-article.</p>
-<p>Ant will choose the regular-expression library based on the
-following algorithm:
-<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 jakarta-ORO; if that
-cannot be found, try jakarta-regexp.</li>
-</ul>
-</p>
-<b>Examples:</b>
-<blockquote><pre>
-&lt;mapper type=&quot;regexp&quot; 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;
-</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;
-</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>
-
-<hr>
-<h2><a name="bitasks">Built-in Tasks</a></h2>
-<ul>
-  <li><a href="#ant">Ant</a></li>
-  <li><a href="#antcall">AntCall</a></li>
-  <li><a href="#antstructure">AntStructure</a></li>
-  <li><a href="#apply">Apply</a></li>
-  <li><a href="#available">Available</a></li>
-  <li><a href="#chmod">Chmod</a></li>
-  <li><a href="#copy">Copy</a></li>
-  <li><a href="#copydir">Copydir</a></li>
-  <li><a href="#copyfile">Copyfile</a></li>
-  <li><a href="#cvs">Cvs</a></li>
-  <li><a href="#delete">Delete</a></li>
-  <li><a href="#deltree">Deltree</a></li>
-  <li><a href="#echo">Echo</a></li>
-  <li><a href="#exec">Exec</a></li>
-  <li><a href="#execon">ExecOn</a></li>
-  <li><a href="#fail">Fail</a></li>
-  <li><a href="#filter">Filter</a></li>
-  <li><a href="#fixcrlf">FixCRLF</a></li>
-  <li><a href="#genkey">GenKey</a></li>
-  <li><a href="#get">Get</a></li>
-  <li><a href="#gunzip">GUnzip</a></li>
-  <li><a href="#gzip">GZip</a></li>
-  <li><a href="#jar">Jar</a></li>
-  <li><a href="#java">Java</a></li>
-  <li><a href="#javac">Javac</a></li>
-  <li><a href="#javadoc">Javadoc/Javadoc2</a></li>
-  <li><a href="#mail">Mail</a></li>
-  <li><a href="#mkdir">Mkdir</a></li>
-  <li><a href="#move">Move</a></li>
-  <li><a href="#patch">Patch</a></li>
-  <li><a href="#property">Property</a></li>
-  <li><a href="#rename">Rename</a></li>
-  <li><a href="#replace">Replace</a></li>
-  <li><a href="#rmic">Rmic</a></li>
-  <li><a href="#signjar">SignJar</a></li>
-  <li><a href="sql.html">Sql</a></li>
-  <li><a href="#style">Style</a></li>
-  <li><a href="#tar">Tar</a></li>
-  <li><a href="#taskdef">Taskdef</a></li>
-  <li><a href="#touch">Touch</a></li>
-  <li><a href="#tstamp">Tstamp</a></li>
-  <li><a href="#unzip">Unjar</a></li>
-  <li><a href="#untar">Untar</a></li>
-  <li><a href="#unzip">Unwar</a></li>
-  <li><a href="#unzip">Unzip</a></li>
-  <li><a href="#uptodate">Uptodate</a></li>
-  <li><a href="#war">War</a></li>
-  <li><a href="#zip">Zip</a></li>
-</ul>
-<hr>
-<h2><a name="ant">Ant</a></h2>
-<h3>Description</h3>
-<p>Runs Ant on a supplied buildfile. This can be used to build subprojects.</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>The properties of the current project will be available in the new project.
-These properties will override the properties that are set in the new project.
-(See also the <a href="#property">properties task</a>). You can set properties
-in the new project from the old project by using nested property tags. This
-allows you to parameterize your subprojects.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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;.</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 directory.</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.</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.
-    </td>
-    <td align="center" valign="top">No</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;
-</pre>
-<hr>
-<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)</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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>
-</table>
-<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">property</a> for usage guidelines.</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>
-<hr>
-<h2><a name="antstructure">AntStructure</a></h2>
-<h3>Description</h3> 
-<p>Generates a DTD for Ant buildfiles which contains information
-about all tasks currently known to Ant.</p> 
-<p>Note that the DTD generated by this task is incomplete, you can
-always add XML entities using <a
-href="#taskdef"><code>&lt;taskdef&gt;</code></a>. See <a
-href="http://www.sdv.fr/pages/casa/html/ant-dtd.en.html">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>
-<h2><a name="apply">Apply</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>The files and/or directories of a number of <a
-href="#fileset">FileSet</a>s are passed as arguments to the system
-command. The timestamp of each source file is compared to the
-timestamp of a target file which is defined by a nested <a
-href="#mapper">mapper</a> element. At least one fileset and exactly
-one mapper element are required.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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 target files will be placed.</td>
-    <td align="center" valign="top">Yes</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.</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.</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">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.</td>
-    <td align="center" valign="top">No, default is <i>file</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>arg</h4>
-<p>Command line arguments should be specified as nested
-<code>&lt;arg&gt;</code> elements. See <a
-href="index.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. 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.</code>
-<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.</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="#env">exec</a></p>
-<p>Please note that the environment of the current Ant process is
-<b>not</b> passed to the system command if you specify variables using
-<code>&lt;env&gt;</code>.</p>
-<h3>Examples</h3>
-<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>
-<hr>
-<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 resource, a class in 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 specific by using the value 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 classpath.</td>
-    <td valign="middle" align="center" rowspan="3">Yes</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">file</td>
-    <td valign="top">the file to look for.</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="#references">reference</a> to a path defined elsewhere.</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 <i>classpath</i> attribute is a <a
-href="#path">path-like structure</a> and can also be set via a nested
-<i>classpath</i> element.</p>
-<h3>Examples</h3>
-<pre>  &lt;available classname=&quot;org.whatever.Myclass&quot; property=&quot;Myclass.present&quot;/&gt;</pre>
-<p>sets the property <code><i>Myclass.present</i></code> to the value &quot;true&quot;
-if the class <i>org.whatever.Myclass</i> 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 property <code><i>jaxp.jar.present</i></code> to the value &quot;true&quot;
-if the file <i>./lib/jaxp11/jaxp.jar</i> 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="jaxp" property=&quot;jaxp11.present&quot;/&gt;
-</pre>
-<p>sets the property <code><i>jaxp11.present</i></code> to the value &quot;true&quot;
-if the class <i>javax.xml.transform.Transformer</i> is found in the classpath referenced by <code>jaxp</code> (in this case, it is <code>./lib/jaxp11/jaxp.jar</code>).
-</p>
-<hr>
-<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.
-The permissions are also UNIX style, like the argument for the chmod command.</p>
-<p>See the section on <a href="#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="#fileset">FileSet</a> and
-supports all of FileSet's attributes and nested elements
-directly. More FileSets can be specified using nested
-<code>&lt;fileset&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 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&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 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 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">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.</td>
-    <td align="center" valign="top">No, default is <i>file</i></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>
-<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>
-<hr>
-<h2><a name="copy">Copy</a></h2>
-<h3>Description</h3>
-<p>Copies a file or Fileset to a new file or directory.  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 <var>overwrite</var> attribute.</p>
-<p><a href="#fileset">FileSet</a>s are used to select files to copy.  
-To use a fileset, the <var>todir</var> attribute must be set.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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">One of either <var>file</var> or 
-    at least one nested fileset element.</td>
-  </tr>
-  <tr>
-    <td valign="top">preservelastmodified</td>
-    <td valign="top">Give the copied files the same last modified
-      time as the original files. Defaults to &quot;no&quot;.</td>
-    <td valign="top" align="center">No</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 <var>file</var> attribute, 
-    either <var>tofile</var> or <var>todir</var> can be used.  With nested filesets, 
-    only <var>todir</var> 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. Defaults to &quot;no&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 copy. Defaults to &quot;no&quot;.</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. Defaults to &quot;no&quot;. Note that you can achieve the 
-      same effect by using a <a href="#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>
-</table>
-<h3>Parameters specified as nested elements</h3>
-<h4>mapper</h4>
-<p>You can define file name transformations by using a nested <a
-href="#mapper">mapper</a> element. The default mapper used by
-<code>&lt;copy&gt;</code> is the <a
-href="#identity-mapper">identity</a>.</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 file to a directory</b></p>
-<pre>
-  &lt;copy file=&quot;myfile.txt&quot; todir=&quot;../some/dir/tree&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
-&quot;<code>.bak</code>&quot; 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>
-<hr>
-<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="#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="#fileset">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 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 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>
-<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>
-<h2><a name="cvs">Cvs</a></h2>
-<h3>Description</h3>
-<p>Handles packages/modules retrieved from a 
-<a href="http://www.cvshome.org/">CVS</a> repository.</p>
-<p>When doing automated builds, the <a href="#get">get task</a> should be
-preferred over the <i>checkout</i> command, because of speed.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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">cvsRoot</td>
-    <td valign="top">the CVSROOT 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.</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.</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 &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 MSG_INFO.</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 MSG_WARN.</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>  &lt;cvs cvsRoot=&quot;:pserver:anoncvs@jakarta.apache.org:/home/cvspublic&quot;
-       package=&quot;jakarta-tools&quot;
-       dest=&quot;${ws.dir}&quot;
-  /&gt;</pre>
-<p>checks out the package/module &quot;jakarta-tools&quot; from the CVS
-repository pointed to by the cvsRoot attribute, and stores the files in &quot;${ws.dir}&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;${ws.dir}&quot;.</p>
-<pre>  &lt;cvs command=&quot;-q diff -u -N&quot; output="patch.txt"/&gt;</pre>
-<p>silently (-q) creates a file called patch.txt which contains a unified (-u) diff which includes new files added via &quot;cvs add&quot; (-N) and can be used as input to patch.</p>
-<pre>  &lt;cvs command=&quot;update -A -d&quot;/&gt;</pre>
-<p>Updates from the head of repository ignoring sticky bits (-A) and creating any new directories as necessary (-d).</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/index.html">the cvs manual</a> for details, specifically the <a href="http://www.cvshome.org/docs/manual/cvs_16.html">Guide to CVS commands</a></p>
-<hr>
-<h2><a name="delete">Delete</a></h2>
-<h3>Description</h3>
-<p>Deletes either a single file, all files in a specified directory and its 
-sub-directories, or a set of files specified by one or more <a href="#fileset">FileSet</a>s.
-When specifying a set of files, empty directories are <i>not</i> removed by default.
-To remove empty directories, use the <em>includeEmptyDirs</em> atribute.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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.</td>
-    <td align="center" valign="middle" rowspan="2">at least one of the two</td>
-  </tr>
-  <tr>
-    <td valign="top">dir</td>
-    <td valign="top">The directory to delete files from.</td>
-  </tr>
-  <tr>
-    <td valign="top">verbose</td>
-    <td valign="top">Show 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 file does not exist, do not display a diagnostic 
-     message or modify the exit status to reflect an error.
-     This means that if a file or directory cannot be deleted,
-     then no error is reported. This setting emulates the 
-     -f option to the Unix &quot;rm&quot; command.
-    (&quot;true&quot;/&quot;false&quot;).
-	 Default is &quot;false&quot; meaning things are &quot;noisy&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 directores 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"><i>Deprecated.</i>  Comma separated list of patterns of files that must be
-      deleted. All files are in the current directory 
-      and any sub-directories are deleted when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top"><i>Deprecated.</i>  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"><i>Deprecated.</i>  Comma separated list of patterns of files that must be
-      excluded from the deletion list. 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"><i>Deprecated.</i>  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"><i>Deprecated.</i>  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;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 &quot;<code>.bak</code>&quot from the current directory 
-and any sub-directories.</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>, but not
-<code>build</code> itself.<p>
-<hr>
-<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>
-<h2><a name="echo">Echo</a></h2>
-<h3>Description</h3>
-<p>Echoes a message to System.out or a 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">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 &#150; default is false.</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>  &lt;echo message=&quot;Hello world&quot;/&gt;</pre>
-<pre>  
-&lt;echo&gt;
-This is a longer message stretching over
-two lines.
-&lt;/echo&gt;
-</pre>
-<hr>
-<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>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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.</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.</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">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>
-</table>
-<h3>Examples</h3>
-<blockquote>
-  <p>
-<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></p>
-</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="index.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>
-<p>Please note that the environment of the current Ant process is
-<b>not</b> passed to the system command if you specify variables using
-<code>&lt;env&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">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>
-<h5>Examples</h5>
-<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>
-<p><b>Note:</b> Although it may work for you to specify arguments using 
-a simple arg-element and seperate 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 excuted this may be a problem of the JDK you are using.
-This problem may occur with all JDK's &lt; 1.2.</p>
-<hr>
-<h2><a name="execon">ExecOn</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>The files and/or directories of a number of <a
-href="#fileset">FileSet</a>s are passed as arguments to the system
-command. At least one nested <code>&lt;fileset&gt;</code> is required.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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">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.</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.</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">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">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.</td>
-    <td align="center" valign="top">No, default is <i>file</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>arg</h4>
-<p>Command line arguments should be specified as nested
-<code>&lt;arg&gt;</code> elements. See <a
-href="index.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. 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.</code>
-<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="#env">exec</a></p>
-<p>Please note that the environment of the current Ant process is
-<b>not</b> passed to the system command if you specify variables using
-<code>&lt;env&gt;</code>.</p>
-<h3>Examples</h3>
-<blockquote><pre>
-&lt;execon 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;/execon&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;execon executable=&quot;somecommand&quot; parallel=&quot;false&quot; &gt;
-  &lt;arg value=&quot;arg1&quot;/&gt;
-  &lt;srfile/&gt;
-  &lt;arg value=&quot;arg2&quot;/&gt;
-  &lt;fileset dir=&quot;/tmp&quot;/&gt;
-&lt;/execon&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>
-<hr>
-<h2><a name="fail">Fail</a></h2>
-<h3>Description</h3>
-<p>Exits the current build (just throwing a BuildException), optionally printing additional 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">message</td>
-    <td valign="top">A message giving further information on why the build exited</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>  &lt;fail/&gt;</pre>
-<p>will exit the current build with no further information given.
-<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 whereever
-your output goes:
-<pre>
-BUILD FAILED
-
-build.xml:4: Something wrong here.
-</pre>
-
-<hr>
-<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
-filterfile 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;&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 occurencies of the string <i>@year@</i>
-with <i>2000.</i></p>
-<pre>  &lt;filter filterfile=&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>
-<h2><a name="fixcrlf">FixCRLF</a></h2>
-<h3>Description</h3>
-<p>Adjusts a text file to local.</p>
-<p>It is possible to refine the set of files that are being adjusted. 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="#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="#fileset">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">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 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 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">cr</td>
-    <td valign="top">Specifies how carriage return (CR) characters are to
-      be handled.  Valid values for this property are:
-      <ul>
-      <li>add: ensure that there is a CR before every LF
-      <li>asis: leave CR characters alone
-      <li>remove: remove all CR characters
-      </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 add.
-      <p>
-      Note: Unless this property is specified as &quot;asis&quot;, extra CR characters
-      which do not precede a LF will be removed.
-      </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>asis: leave tab and space characters alone
-      <li>remove: convert tabs to spaces
-      </ul>
-      Default for this parameter is &quot;asis&quot;.
-      <p>
-      Note: Unless this property is specified as &quot;asis&quot;, extra spaces and
-      tabs after the last non-whitespace character on the line will be removed.
-      </td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">tablength</td>
-    <td valign="top">The number of characters a TAB stop corresponds to. 
-      Must be a positive power of 2, 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>asis: leave EOF characters alone
-      <li>remove: remove any EOF character found at the end
-      </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>
-</table>
-<h3>Examples</h3>
-<pre>  &lt;fixcrlf srcdir=&quot;${src}&quot;
-       cr=&quot;remove&quot; eof=&quot;remove&quot;
-       includes=&quot;**/*.sh&quot;
-  /&gt;</pre>
-<p>Removes carriage return and eof characters from the shell scripts.  Tabs and
-spaces are left as is.
-<pre>  &lt;fixcrlf srcdir=&quot;${src}&quot;
-       cr=&quot;add&quot;
-       includes=&quot;**/*.bat&quot;
-  /&gt;</pre>
-<p>Ensures that there are carriage return characters prior to evey line feed.
-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;
-       tabs=&quot;add&quot;
-       includes=&quot;**/Makefile&quot;
-  /&gt;</pre>
-<p>Adds or removes CR characters to match local OS conventions, and
-converts spaces to tabs when appropriate.  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;
-       tabs=&quot;remove&quot;
-       includes=&quot;**/README*&quot;
-  /&gt;</pre>
-<p>Adds or removes CR characters to match local OS conventions, and
-converts all tabs to spaces.  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>
-<h2><a name="genkey">GenKey</a></h2>
-<h3>Description</h3>
-<p>Generates a key in 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.</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 , are replace
-<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>
-<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.</p>
-<p>This task should be preferred above the <a href="#cvs">CVS task</a> when
-doing automated builds. CVS is significantly slower than loading a compressed
-archive with 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. 
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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</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</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</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>  &lt;get src=&quot;http://jakarta.apache.org/&quot; dest=&quot;help/index.html&quot;/&gt;</pre>
-<p>Gets the index page of http://jakarta.apache.org/, and stores it in the file <code>help/index.html</code>.</p>
-
-<pre>  &lt;get src=&quot;http://jakarta.apache.org/builds/tomcat/nightly/ant.zip&quot; 
-	dest=&quot;optional.jar&quot; 
-	verbose=&quot;true&quot;
-	usetimestamp=&quot;true&quot;/&gt;</pre>
-<p>
-Gets the nightly ant build from the tomcat distribution, if the local copy
-is missing or out of date. Uses the verbose option 
-for progress information.
-</p>
-
-<hr>
-<h2><a name="gunzip">GUnzip</a></h2>
-<h3>Description</h3>
-<p>Expands a GZip file.</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; 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;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>
-<h2><a name="gzip">GZip</a></h2>
-<h3>Description</h3>
-<p>GZips a 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">the file to gzip.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">zipfile</td>
-    <td valign="top">the destination file.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-  <p><code>&lt;gzip src=&quot;test.tar&quot; zipfile=&quot;test.tar.gz&quot;
-  /&gt;</code></p>
-</blockquote>
-<hr>
-<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="#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="#fileset">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 attributes from the zip task are also available
-in the jar task.
-See the <a href="#zip">Zip</a> task for more details and examples.</p>
-<p>If the manifest is omitted, a simple one will be supplied by Ant.
-You should not include <samp>META-INF/MANIFEST.MF</samp> in your set of files.
-<p>The <code>whenempty</code> parameter controls what happens when no files match.
-If <code>create</code> (the default), the JAR is created anyway with only a manifest.
-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.
-<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>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">jarfile</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</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma 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 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">whenempty</td>
-    <td valign="top">Behavior to use if no files match.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>  &lt;jar jarfile=&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 jarfile=&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 jarfile=&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 jarfile=&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>
-
-<hr>
-<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>Be careful that the executed class doesn't call System.exit(), because it
-will terminate the VM and thus Ant. In case this happens, it's highly suggested
-that you set the fork attribute so that System.exit() stops the other VM and not
-the one that is currently running Ant.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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">Yes</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="#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">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. Only available if fork is 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 write the output to.</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 or the forked VM. See <a
-href="index.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="index.html#env">environment
-variables</a>.</p>
-<h4>classpath</h4>
-<p><code>Java</code>'s <i>classpath</i> attribute is a <a
-href="#path">PATH like structure</a> and can also be set via a nested
-<i>classpath</i> element.</p>
-<h5>Example</h5>
-<pre>  
-       &lt;java classname=&quot;test.Main&quot; &gt;
-         &lt;arg value=&quot;-h&quot;/&gt; 
-         &lt;classpath&gt;
-           &lt;pathelement location=&quot;\test.jar&quot;/&gt;
-           &lt;pathelement path=&quot;${java.class.path}&quot;/&gt;
-         &lt;/classpath&gt;
-       &lt;/java&gt;
-</pre>
-<h3>Examples</h3>
-<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>
-
-<hr>
-<h2><a name="javac">Javac</a></h2>
-<h3>Description</h3>
-<p>Compiles a source tree within the running (Ant) VM.</p>
-<p>The source and destination directory will be recursively scanned for Java
-source files to compile. Only Java files that have no corresponding class file
-or where the class file is older than the java file will be compiled.</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="#directorybasedtasks">directory based tasks</a>, on how the
-inclusion/exclusion of files works, and how to write patterns.</p>
-<p>It is possible to use different compilers. This can be selected with the
-&quot;build.compiler&quot; property. There are four choices:</p>
-<ul>
-  <li>classic (the standard compiler of JDK 1.1/1.2)</li>
-  <li>modern (the new compiler of JDK 1.3)</li>
-  <li>jikes (the <a
-    href="http://oss.software.ibm.com/developerworks/opensource/jikes/project">Jikes</a>
-    compiler)</li>
-  <li>jvc (the Command-Line Compiler from Microsoft's SDK for Java /
-    Visual J++)</li>
-</ul>
-<p>For JDK 1.1/1.2, classic is the default. For JDK 1.3, modern is the default.
-If you wish to use a different compiler interface than one of the four
-supplied, write a class that implements the CompilerAdapter interface
-(package org.apache.tools.ant.taskdefs.compilers). Supply the full
-classname in the &quot;build.compiler&quot; property.
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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 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-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 that contains
-      include patterns.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma-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 that contains
-      exclude patterns.</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 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 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="#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="#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.</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>.</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>).</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">verbose</td>
-    <td valign="top">asks the compiler for verbose output.</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 (jikes and classic)</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>no</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">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>
-</table>
-
-<h3>Parameters specified as nested elements</h3>
-<p>This task forms an implicit <a href="#fileset">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>bootclasspath</code> and <code>extdirs</code></h4>
-<p><code>Javac</code>'s <i>srcdir</i>, <i>classpath</i>,
-<i>bootclasspath</i> and <i>extdirs</i> attributes are <a
-href="#path">path-like structures</a> and can also be set via nested
-<code>&lt;src&gt</code>,
-<code>&lt;classpath&gt</code>,
-<code>&lt;bootclasspath&gt</code> and
-<code>&lt;extdirs&gt</code> elements, respectively.</p>
-
-<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 contains <code>xyz.jar</code>, and debug information is on.</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 contains <code>xyz.jar</code>, and debug information is on.
-Only files under <code>mypackage/p1</code> and <code>mypackage/p2</code> are
-used. Files in 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:
-
-<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><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>
-
-<hr>
-<h2><a name="javadoc">Javadoc/Javadoc2</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 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">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 and 1.2),
-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>DEPRECATION: 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">javadoc</a>
-instead.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="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="2">At least one of the two or nested
-      <code>&lt;sourcepath&gt;</code></td>
-  </tr>
-  <tr>
-    <td valign="top">sourcepathref</td>
-    <td valign="top">Specify where to find source files by <a
-      href="#references">reference</a> to a PATH defined elsewhere.</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</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">sourcefiles</td>
-    <td valign="top">Comma separated list of source files</td>
-    <td align="center" valign="top">all</td>
-    <td align="center" valign="middle" rowspan="2">at least one of the two</td>
-  </tr>
-  <tr>
-    <td valign="top">packagenames</td>
-    <td valign="top">Comma separated list of package files (with terminating
-      wildcard)</td>
-    <td align="center" valign="top">all</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">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="#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="#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">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</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;</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</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">FUTURE: 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">FUTURE: 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">FUTURE: 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">1.1</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.</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="#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</td>
-    <td align="center" valign="top">1.2</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>
-</table>
-
-<h3>Parameters specified as nested elements</h3>
-<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>
-<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">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>
-  
-<h4>groups</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>
-
-<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</td>
-  </tr>
-  <tr>
-    <td valign="top">packages</td>
-    <td valign="top">List of packages to include in that group</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-</table>
-
-<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>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 paramaters are restricted to simple strings. An example usage
-of the doclet element is shown below:
-
-<pre>  &lt;javadoc ...&gt;
-     &lt;doclet name="theDoclet"
-             path="path/to/theDoclet"&gt;
-        &lt;param name="-foo" value="foovalue"/&gt;
-        &lt;param name="-bar" value="barvalue"/&gt;
-     &lt;/doclet&gt;
-  &lt;/javadoc&gt;
-</pre>
-
-<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="#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>
-
-<h3>Example</h3>
-<pre>  &lt;javadoc packagenames=&quot;com.dummy.test.*&quot;
-           sourcepath=&quot;src&quot;
-           destdir=&quot;docs/api&quot;
-           author=&quot;true&quot;
-           version=&quot;true&quot;
-           use=&quot;true&quot;
-           windowtitle=&quot;Test API&quot;
-           doctitle=&quot;&lt;h1&gt;Test&lt;/h1&gt;&quot;
-           bottom=&quot;&lt;i&gt;Copyright &amp;#169; 2000 Dummy Corp. All Rights Reserved.&lt;/i&gt;&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*&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>
-<h2><a name="mail">Mail</a></h2>
-<h3>Description</h3>
-<p>A task to send SMTP email.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">tolist</td>
-    <td valign="top">Comma-separated list of recipients.</td>
-    <td align="center" valign="top">Yes</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">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">files</td>
-    <td valign="top">Filename(s) of text to send in the body of the email. 
-	Multiple files are comma-separated.</td>
-  </tr>
-  <tr>
-    <td valign="top">mailhost</td>
-    <td valign="top">Host name of the mail server.</td>
-    <td align="center" valign="top">No, default to &quot;localhost&quot;</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>Examples</h3>
-<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>
-<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 <i>build.log</i>
-in the body of the message.</p>
-<hr>
-
-<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>
-<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="#fileset">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">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 a nested fileset, 
-	 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">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="#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>
-</table>
-<h3>Parameters specified as nested elements</h3>
-<h4>mapper</h4>
-<p>You can define file name transformations by using a nested <a
-href="#mapper">mapper</a> element. The default mapper used by
-<code>&lt;copy&gt;</code> is the <a
-href="#identity-mapper">identity</a>.</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; &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>
-<h2><a name="patch">Patch</a></h2>
-<h3>Description</h3>
-<p>Applies a diff file to originals.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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">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>
-</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.
-<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
-<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>
-<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.</p>
-<p>When a property was set by the user, or was a property in a parent project
-(that started this project with the <a href="#ant">ant task</a>), then this
-property cannot be set, and will be ignored. This means that properties set
-outside the current project always override the properties of the current
-project.</p>
-<p>There are five 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.</li>
-  <li>By setting the <i>resource</i> attribute with the resource name of the
-    property file to load. This property file has the format as defined by the
-    file used in the class java.util.Properties.</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 suplied name and a period to the name of the variable.</li>
-</ul>
-<p>Although combinations of the three 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>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">value</td>
-    <td valign="top">the value of the property.</td>
-    <td valign="middle" align="center" rowspan="5">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">refid</td>
-    <td valign="top"><a href="#references">Reference</a> to an object
-      defined elsewhere. Only yields reasonable results for references
-      to <a href="#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>
-  </tr>
-  <tr>
-    <td valign="top">file</td>
-    <td valign="top">the filename of the property file .</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">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="#references">reference</a> to a PATH defined
-      elsewhere..</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="#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 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:
-<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.  This technique is more appropriate for Unix than 
-Windows since the notion of a home directory doesn't exist on Windows.  On the
-JVM that I tested, the home directory on Windows is &quot;C:\&quot;.  Different JVM
-implementations may use other values for the home directory on Windows.</p>
-<hr>
-<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>
-<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>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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">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 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">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">includes</td>
-    <td valign="top">comma 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 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="#fileset">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]]>&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]]>&lt;/replacetoken&gt;
-  &lt;replacevalue&gt;&lt;![CDATA[two line
-token]]>&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>
-<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).</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="#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="#fileset">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>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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 base 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="#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 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 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">indates 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">indates 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>
-</table>
-<h3>Parameters specified as nested elements</h3>
-<h4>classpath</h4>
-<p><code>Rmic</code>'s <i>classpath</i> attribute is a <a
-href="#path">PATH like structure</a> and can also be set via a nested
-<i>classpath</i> elements.</p>
-<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>
-<h2><a name="signjar">SignJar</a></h2>
-<h3>Description</h3>
-<p>Signs a jar or zip file with the javasign command line 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 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.</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</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</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</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>
-<h2><a name="style">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 in generating code.</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="#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="#fileset">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>Style supports the use of a &lt;param&gt; element which is use to pass values 
-  to an &lt;xsl:param&gt; declaration.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">destdir</td>
-    <td valign="top">directory where to store the results.</td>
-    <td align="center" valign="top">Yes</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;.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">style</td>
-    <td valign="top">name of the stylesheet to use.</td>
-    <td align="center" valign="top">Yes</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, &quot;xslp&quot; for the 
-      XSL:P processor, &quot;xalan&quot; for the Apache XML Xalan (version 1) 
-      processor, or the name of an arbitrary XSLTLiaison class. Defaults to trax, 
-      followed by xslp then xalan (in that order). The first one found in your 
-      class path is the one that is used.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma 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 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 sytled result from the 
-      in attribute.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Parameters specified as nested elements</h3>
-<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">XSL expression to be placed into the param. To pass a text 
-      value into the style sheet it needs to be escaped using single quotes.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-  <p>
-  <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><br>
-    Using XSL parameters<br>
-  </h4>
-  <pre>&lt;style 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;/style&gt;</pre>
-  <p>This will replace an xsl:param definition&lt;xsl:param name="date"&gt;&lt;/xsl:param&gt; 
-    with the text value 07-01-2000 </p>
-  </blockquote>
-<hr>
-<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>It is possible to refine the set of files that are being tarred. 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="#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="#fileset">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>Note that this task does not perform compression. You might want to use the <a href="#gzip">GZip</a>
-task to come up with a .tar.gz package.</p>
-<h3>Parameters</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">tarfile</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 zip the files.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma 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 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;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 tarfile=&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>
-<hr>
-<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. Two attributes are needed, the name that identifies
-this task uniquely, and the full name of the class (including the packages) that
-implements this task.</p>
-<p>Taskdef should be used to add your own tasks to the system. See also &quot;<a
-href="#writingowntask">Writing your own task</a>&quot;.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">classname</td>
-    <td valign="top">the full class name implementing the task</td>
-    <td valign="top" align="center">Yes</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>
-</table>
-<h3>Parameters specified as nested elements</h3>
-<h4>classpath</h4>
-<p><code>Taskdef</code>'s <i>classpath</i> attribute is a <a
-href="#path">PATH like structure</a> and can also be set via a nested
-<i>classpath</i> element.</p>
-<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>
-<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.</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">Yes</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.</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>
-<hr>
-<h2><a name="tstamp">Tstamp</a></h2>
-<h3>Description</h3>
-<p>Sets the DSTAMP, TSTAMP and TODAY properties in the current project. The
-DSTAMP is in the &quot;yyyymmdd&quot; format, the TSTAMP is in the &quot;hhmm&quot;
-format and TODAY is &quot;month day year&quot;.</p>
-<p>These properties can be used in the buildfile, for instance, to create
-timestamped filenames or used to replace placeholder tags inside documents to
-indicate, for example, the release date. The best place for this task is in your
-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 colspan="3"/> No parameters</td>
-  </tr>
-</table>
-
-<h3>Nested Elements</h3>
-The tstamp task supports a format nested element which allows a property to be
-given the current date and time in a given format. The date/time patterns are as defined in the Java 
-SimpleDateFormat class. 
-<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">property</td>
-    <td valign="top">
-        The property which is 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 defined by the Java
-                     SimpleDateFormat class</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-</table>
-
-<h3>Examples</h3>
-<p> Set the standard DSTAMP, TSTAMP and TODAY properties according to the formats above
-<pre>  &lt;tstamp/&gt;</pre>
-
-<p> As for the above example, set the standard properties and also set the property 
-&quot;TODAY_UK&quot; with the date/time pattern &quot;d MMM yyyy&quot;
-
-<pre>  &lt;tstamp&gt;
-    &lt;format property=&quot;TODAY_UK&quot; pattern=&quot;d MMMM yyyy&quot;&gt;
-  &lt;/tstamp&gt;
-</pre>
-
-<hr>
-<h2><a name="uptodate">Uptodate</a></h2>
-<h3>Description</h3>
-<p>Sets a property if a target files are more up to date than a set of
-Source files. Source files are specified by nested &lt;srcfiles&gt;
-elements, these are <a href="#fileset">FileSet</a>s, while target
-files are specified using a nested <a href="#mapper">mapper</a>
-element.</p>
-<p>The value part of the property being set is <i>true</i> if the
-timestamp of the target files is more recent than the timestamp of
-every corresponding source file.</p>
-<p>The default behavior is to use a <a href="#merge-mapper">merge
-mapper</a> whith the <code>to</code> attribute set to the value of the
-targetfile 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">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 mapper element is 
-      present.</td>
-  </tr>
-</table>
-<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><i>xmlBuild.notRequired</i></code> to the value &quot;true&quot;
-if the <i>${deploy}/xmlClasses.jar</i> is more up to date than any of the DTD files in the <i>${src}/xml</i> directory.</p>
-<p>This can be written as
-<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>
-<hr>
-<h2><a name="unzip">Unjar/Unwar/Unzip</a></h2>
-<h3>Description</h3>
-<p>Unzips a zip-, war- or jarfile.</p>
-<p>For JDK 1.1 &quot;last modified time&quot; field is set to current time instead of being 
-carried from zipfile.</p>
-<p>File permissions will not be restored on extracted 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">src</td>
-    <td valign="top">zipfile to expand.</td>
-    <td align="center" valign="top">Yes</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>
-</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>
-<hr>
-<h2><a name="untar">Untar</a></h2>
-<h3>Description</h3>
-<p>Untars a tarfile.</p>
-<p>File permissions will not be restored on extracted files.</p>
-<p>For JDK 1.1 &quot;last modified time&quot; field is set to current time instead of being 
-carried from tarfile.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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">tarfile to expand.</td>
-    <td align="center" valign="top">Yes</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>
-</table>
-<h3>Examples</h3>
-<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>
-<hr>
-<h2><a name="war">War</a></h2>
-<h3>Description</h3>
-<p>An extension of the <a href="#jar">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>(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">warfile</td>
-    <td valign="top">the war-file to create.</td>
-    <td valign="top" align="center">Yes</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</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</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma 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 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">whenempty</td>
-    <td valign="top">Behavior to use if no files match.</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="#fileset">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="#fileset">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="#fileset">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>
-<h3>Examples</h3>
-<p>Assume the following structure in the project's base directory:
-<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 warfile=&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="images"/&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>.
-<hr>
-<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="#directorybasedtasks">directory based tasks</a>, on how the
-inclusion/exclusion of files works, and how to write patterns. 
-<p>This task forms an implicit <a href="#fileset">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 <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>
-<h3>Parameters</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">zipfile</td>
-    <td valign="top">the zip-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 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</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma 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 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">whenempty</td>
-    <td valign="top">Behavior when no files match.</td>
-    <td valign="top" align="center">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="#fileset"><code>&lt;fileset&gt;</code></a> elements to specify
-the files to be included in the archive.</p>
-<h4>zipfileset</h4>
-<p>A <code>&lt;zipfileset&gt;</code> has three additional attributes: <i>prefix</i>, <i>fullpath</i>, and <i>src</i>.  The 
-<i>prefix</i> and <i>fullpath</i> attributes modify the location of the files when they are placed 
-inside the archive. If the <i>prefix</i> attribute is set, all files in the fileset are prefixed
-with that path in the archive. If the <i>fullpath</i> attribute is set, the file described by the fileset is placed at that 
-exact location in the archive. (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.)  The <i>src</i> attribute
-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.  As with directories, include and exclude patterns may be used to specify a subset of the zip file
-for inclusion in the archive.
-
-<h3>Examples</h3>
-<pre>  &lt;zip zipfile=&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 zipfile=&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 zipfile=&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 zipfile=&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 zipfile=&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:
-<pre><code>    docs/user-guide/html/index.html
-    docs/ChangeLog.txt
-    docs/examples/index.html
-</code></pre>
-</p>
-
-<hr>
-<h2><a name="optionaltasks">Optional tasks</a></h2>
-<p>The tasks listed here are not included in the ant.jar included in the binary distribution
-of Ant. To use them you should download optional.jar and put in the lib-subdirectory of your
-Ant-installation. Additionaly some of these tasks require external libraries to be put on 
-your CLASSPATH.</p>
-<ul>
-  <li><a href="dotnet.html">.NET Tasks</a></li>
-  <li><a href="antlr.html">ANTLR</a></li>
-  <li><a href="#cab">Cab</a></li>
-  <li><a href="clearcase.html">Clearcase Tasks</a></li>
-  <li><a href="ejb.html">EJB Tasks</a></li>
-  <li><a href="#ftp">FTP</a></li>
-  <li><a href="javacc.html">JavaCC</a></li>
-  <li><a href="jlink.html">Jlink</a></li>
-  <li><a href="junit.html">JUnit</a></li>
-  <li><a href="native2ascii.html">Native2Ascii</a></li>
-  <li><a href="#netrexxc">NetRexxC</a></li>
-  <li><a href="propertyfile.html">PropertyFile</a></li>
-  <li><a href="perforce.html">Perforce Tasks</a></li>
-  <li><a href="#renameexts">RenameExtensions</a></li>
-  <li><a href="#script">Script</a></li>
-  <li><a href="#sound">Sound</a></li>
-  <li><a href="#telnet">Telnet</a></li>
-  <li><a href="#vssget">VssGet</a></li>
-</ul>
-<hr>
-<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="#jar">jar</a> or <a href="#zip">zip</a> tasks.
-This task will only work on Windows, and will be silently ignored on
-other platforms.  You must have the Microsoft cabarc tool available in
-your executable path.</p>
-<p>See the section on <a href="#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="#fileset">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">Yes</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 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 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>
-<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>
-<hr>
-<h2><a name="ftp">FTP</a></h2>
-<h3>Description</h3>
-<p><b>Note:</b> The ftp-task uses the NetComponents-Package which you will need to download from
-<a href="http://www.savarese.org">http://www.savarese.org</a> and add to your classpath.</p>
-<p>The ftp task implements a basic FTP client that can send, receive,
-list, and delete files.  See below for descriptions and examples of how
-to perform each task.</p>
-<p>The ftp task makes no attempt to determine what file system syntax is
-required by the remote server, and defaults 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="#directorybasedtasks">directory based
-tasks</a>, on how the inclusion/exclusion of files works, and how to
-write patterns.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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">the directory to which to upload files on the 
-                     ftp server.</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;, and &quot;list&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>.</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">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>
-</table>
-<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>
-<hr>
-<h2><a name="netrexxc">NetRexxC</a></h2>
-<h3>Description</h3>
-<p>Compiles a <a href="http://www2.hursley.ibm.com/netrexx">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="#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="#fileset">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">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</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 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 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">Yes</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>
-<h2><a name="renameexts">RenameExtensions</a></h2>
-<h3><i>Deprecated</i></h3>
-<p><i>This task has been deprecated.  Use the <a href="#move">move</a>
-task with a <a href="#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="#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="#fileset">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 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 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>
-<h2><a name="script">Script</a></h2>
-<h3>Description</h3>
-<p>Execute a script in a 
-  <a href="http://oss.software.ibm.com/developerworks/opensource/bsf/">BSF</a> supported language.
-<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.</p>
-<p>Scripts can do almost anything a task written in Java could do.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>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 BSF language</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>
-</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="#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>
-
-<hr>
-<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.
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></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>
-<p>
-To specify the sound-files or the sound-file directories, use the
-nested <code>&lt;success&gt;</code> and <code>&lt;fail&gt;</code> 
-elements:
-<blockquote>
-<pre>
-&lt;success&gt;     the path to a sound-file directory, or the name of a
-              specific sound-file, to be played if the build succeeded.
-&lt;fail&gt;        the path to a sound-file directory, or the name of a
-              specific sound-file, to be played if the build succeeded.
-</pre>
-</blockquote>
-
-<h3>Examples</h3>
-<blockquote>
-<pre>
-&lt;target name="fun" if="fun" unless="fun.done"&gt;
-  &lt;sound loops="2"&gt;
-    &lt;success source="${user.home}/sounds/bell.wav"/&gt;
-    &lt;fail source="${user.home}/sounds/ohno.wav"/&gt;
-  &lt;/sound&gt;
-  &lt;property name="fun.done" value="true"/&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="fun" if="fun" unless="fun.done"&gt;
-  &lt;sound>
-    &lt;success source="//intranet/sounds/success"/&gt;
-    &lt;fail source="//intranet/sounds/failure"/&gt;
-  &lt;/sound&gt;
-  &lt;property name="fun.done" value="true"/&gt;
-&lt;/target&gt;
-</pre>
-</blockquote>
-randomly selects a sound-file to play when the build succeeds or fails.
-
-<hr>
-<h2><a name="telnet">Telnet</a></h2>
-<h3>Description</h3>
-Task to automate a remote telnet session. The task uses nested &lt;read&gt; to indicate strings to wait for, and  &lt;write&gt; 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>
-<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>No</td>
-  </tr>
-  <tr>
-     <td>password</td>
-     <td>the login password to use on the telnet server.</td>
-     <td>No</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 ("yes"). Defaults to "no".</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>Examples</h3>
-A simple example of connecting to a server and running a command.  This assumes a prompt of "ogin:" for the userid, and a prompt of "assword:" 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>
-<hr>
-<h2><a name="vssget">VssGet</a></h2>
-<h3>Description</h3>
-Task to perform GET commands to Microsoft Visual Source Safe.
-<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>login</td>
-     <td>username,password</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>vsspath</td>
-     <td>SourceSafe path</td>
-     <td>Yes</td>
-  </tr>
-  <tr>
-     <td>localpath</td>
-     <td>Override the working directory and get to the specified path</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>No</td>
-  </tr>
-  <tr>
-     <td>date</td>
-     <td>a date stamp to get at</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>label</td>
-     <td>a label to get for</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>
-</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/aproject</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>
-
-<h2><a name="buildevents">Build Events</a></h2>
-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>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
-<ul>
-<li>Build started
-<li>Build finished
-<li>Target started
-<li>Target finished
-<li>Task started
-<li>Task finished
-<li>Message logged
-</ul>
-
-If you wish to attach a listener from the command line you may use the
-<code>-listener</code> option. For example:
-<blockquote>
-  <pre>ant -listener org.apache.tools.ant.XmlLogger</pre>
-</blockquote>
-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.
-
-<hr>
-<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>.</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. The type of the attribute can be:
-<ul>
-<li>
-<code>String</code>
-</li>
-<li>
-any primitive type (they are converted for you from their String-representation
-in the buildfile)
-</li>
-<li>
-boolean &#150; your method will be passed the value 
-<i>true</i> if the value specified in the buildfile is one of <code>true</code>,
-<code>yes</code>, or <code>on</code>)
-</li>
-<li>
-<code>Class</code>
-<li>
-<code>File</code>
-(in which case the value of the attribute is interpreted relative to the 
-project's basedir)
-</li>
-<li>
-any other type that has a constructor with a single 
-<code>String</code> argument
-</li>
-</ul>
-<li>If your task has enumerated attributes, you should consider using
-a subclass of <code>org.apache.tools.ant.types.EnumeratedAttribute</code>
-as an argument
-to your setter method. See
-<code>org/apache/tools/ant/taskdefs/FixCRLF.java</code> for
-an example.</li>
-<li>If the task should support character data, write a <code>public void 
-addText(String)</code> method.</li>
-<li>For each nested element, write a <i>create</i> or <i>add</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 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 method 
-must begin with <code>add</code>, followed by the element name.
-<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>
-
-<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><code>execute()</code> 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>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>
-<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="faq">FAQ, DTD, External Resources</a></h2>
-<p>There is an on-line FAQ for Ant at <a
-href="http://jakarta.apache.org/jyve-faq/Turbine/screen/DisplayTopics/action/SetAll/project_id/2/faq_id/16">jakarta.apache.org</a>. This
-FAQ is interactive, which means you can ask and answer questions
-on line.</p>
-<p>One of the questions popping up quite often is &quot;Is there a DTD for
-buildfiles?&quot; Please refer to the FAQ for an answer.</p>
-
-<hr>
-<h2><a name="feedback">Feedback</a></h2>
-<p>To provide feedback on this software, please subscribe to the Ant User
-Mail List (<a href="mailto:ant-user-subscribe@jakarta.apache.org">ant-user-subscribe@jakarta.apache.org</a>)</p>
-<p>If you want to contribute to Ant or stay current with the latest
-development, join the Ant Development Mail List (<a
-href="mailto:ant-dev-subscribe@jakarta.apache.org">ant-dev-subscribe@jakarta.apache.org</a>)</p>
-<p>Archives of both lists can be found at <a
-href="http://archive.covalent.net/">http://archive.covalent.net/</a>. Many
-thanks to Covalent Technologies. A searchable archive can be found at <a
-href="http://marc.theaimsgroup.com">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,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/ant.html b/docs/manual/CoreTasks/ant.html
new file mode 100644
index 0000000..3e0d838
--- /dev/null
+++ b/docs/manual/CoreTasks/ant.html
@@ -0,0 +1,69 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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.</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>The properties of the current project will be available in the new project.
+These properties will override the properties that are set in the new project.
+(See also the <a href="property.html">property task</a>). You can set properties
+in the new project from the old project by using nested property tags. This
+allows you to parameterize your subprojects.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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;.</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 directory.</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.</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.
+    </td>
+    <td align="center" valign="top">No</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;
+</pre>
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/antcall.html b/docs/manual/CoreTasks/antcall.html
new file mode 100644
index 0000000..d3057ea
--- /dev/null
+++ b/docs/manual/CoreTasks/antcall.html
@@ -0,0 +1,49 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</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)</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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>
+</table>
+<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>
+<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>
+<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/antstructure.html b/docs/manual/CoreTasks/antstructure.html
new file mode 100644
index 0000000..708edfc
--- /dev/null
+++ b/docs/manual/CoreTasks/antstructure.html
@@ -0,0 +1,43 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="antstructure">AntStructure</a></h2>
+<h3>Description</h3> 
+<p>Generates a DTD for Ant buildfiles which contains information
+about all tasks currently known to Ant.</p> 
+<p>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>. 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,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/apply.html b/docs/manual/CoreTasks/apply.html
new file mode 100644
index 0000000..f4daa05
--- /dev/null
+++ b/docs/manual/CoreTasks/apply.html
@@ -0,0 +1,131 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="apply">Apply</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>The files and/or directories of a number of <a
+href="../CoreTypes/fileset.html">FileSet</a>s are passed as arguments to the system
+command. The timestamp of each source file is compared to the
+timestamp of a target file which is defined by a nested <a
+href="../CoreTypes/mapper.html">mapper</a> element. At least one fileset and exactly
+one mapper element are required.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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 target files will be placed.</td>
+    <td align="center" valign="top">Yes</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.</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.</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">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.</td>
+    <td align="center" valign="top">No, default is <i>file</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>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. 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.</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>
+<p>Please note that the environment of the current Ant process is
+<b>not</b> passed to the system command if you specify variables using
+<code>&lt;env&gt;</code>.</p>
+<h3>Examples</h3>
+<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>
+<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/available.html b/docs/manual/CoreTasks/available.html
new file mode 100644
index 0000000..b487bf8
--- /dev/null
+++ b/docs/manual/CoreTasks/available.html
@@ -0,0 +1,91 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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 resource, a class in 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 specific by using the value 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 classpath.</td>
+    <td valign="middle" align="center" rowspan="3">Yes</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">file</td>
+    <td valign="top">the file to look for.</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>
+  
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>classpath</h4>
+<p><code>Available</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;available classname=&quot;org.whatever.Myclass&quot; property=&quot;Myclass.present&quot;/&gt;</pre>
+<p>sets the property <code><i>Myclass.present</i></code> to the value &quot;true&quot;
+if the class <i>org.whatever.Myclass</i> 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 property <code><i>jaxp.jar.present</i></code> to the value &quot;true&quot;
+if the file <i>./lib/jaxp11/jaxp.jar</i> 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 property <code><i>jaxp11.present</i></code> to the value &quot;true&quot;
+if the class <i>javax.xml.transform.Transformer</i> is found in the classpath referenced by <code>jaxp</code> (in this case, it is <code>./lib/jaxp11/jaxp.jar</code>).
+</p>
+<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/chmod.html b/docs/manual/CoreTasks/chmod.html
new file mode 100644
index 0000000..918cd2d
--- /dev/null
+++ b/docs/manual/CoreTasks/chmod.html
@@ -0,0 +1,122 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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.
+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 FileSets can be specified using nested
+<code>&lt;fileset&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 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&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 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 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">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.</td>
+    <td align="center" valign="top">No, default is <i>file</i></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>
+<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>
+<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/copy.html b/docs/manual/CoreTasks/copy.html
new file mode 100644
index 0000000..65a2a8d
--- /dev/null
+++ b/docs/manual/CoreTasks/copy.html
@@ -0,0 +1,121 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="copy">Copy</a></h2>
+<h3>Description</h3>
+<p>Copies a file or Fileset to a new file or directory.  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 <var>overwrite</var> attribute.</p>
+<p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select files to copy.  
+To use a fileset, the <var>todir</var> attribute must be set.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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">One of either <var>file</var> or 
+    at least one nested fileset element.</td>
+  </tr>
+  <tr>
+    <td valign="top">preservelastmodified</td>
+    <td valign="top">Give the copied files the same last modified
+      time as the original files. Defaults to &quot;no&quot;.</td>
+    <td valign="top" align="center">No</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 <var>file</var> attribute, 
+    either <var>tofile</var> or <var>todir</var> can be used.  With nested filesets, 
+    only <var>todir</var> 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. Defaults to &quot;no&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 copy. Defaults to &quot;no&quot;.</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. Defaults to &quot;no&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>
+</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>
+<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 file to a directory</b></p>
+<pre>
+  &lt;copy file=&quot;myfile.txt&quot; todir=&quot;../some/dir/tree&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
+&quot;<code>.bak</code>&quot; 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>
+<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/copydir.html b/docs/manual/CoreTasks/copydir.html
new file mode 100644
index 0000000..d57bfeb
--- /dev/null
+++ b/docs/manual/CoreTasks/copydir.html
@@ -0,0 +1,120 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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 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 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,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/copyfile.html b/docs/manual/CoreTasks/copyfile.html
new file mode 100644
index 0000000..129cfad
--- /dev/null
+++ b/docs/manual/CoreTasks/copyfile.html
@@ -0,0 +1,59 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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>
+<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/cvs.html b/docs/manual/CoreTasks/cvs.html
new file mode 100644
index 0000000..8b26e86
--- /dev/null
+++ b/docs/manual/CoreTasks/cvs.html
@@ -0,0 +1,97 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</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>When doing automated builds, the <a href="get.html">get task</a> should be
+preferred over the <i>checkout</i> command, because of speed.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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">cvsRoot</td>
+    <td valign="top">the CVSROOT 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.</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.</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 &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 MSG_INFO.</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 MSG_WARN.</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;cvs cvsRoot=&quot;:pserver:anoncvs@jakarta.apache.org:/home/cvspublic&quot;
+       package=&quot;jakarta-tools&quot;
+       dest=&quot;${ws.dir}&quot;
+  /&gt;</pre>
+<p>checks out the package/module &quot;jakarta-tools&quot; from the CVS
+repository pointed to by the cvsRoot attribute, and stores the files in &quot;${ws.dir}&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;${ws.dir}&quot;.</p>
+<pre>  &lt;cvs command=&quot;-q diff -u -N&quot; output=&quot;patch.txt&quot;/&gt;</pre>
+<p>silently (-q) creates a file called patch.txt which contains a unified (-u) diff which includes new files added via &quot;cvs add&quot; (-N) and can be used as input to patch.</p>
+<pre>  &lt;cvs command=&quot;update -A -d&quot;/&gt;</pre>
+<p>Updates from the head of repository ignoring sticky bits (-A) and creating any new directories as necessary (-d).</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/index.html" target="_top">the cvs manual</a> for details, 
+specifically the <a href="http://www.cvshome.org/docs/manual/cvs_16.html" target="_top">Guide to CVS commands</a></p>
+<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/delete.html b/docs/manual/CoreTasks/delete.html
new file mode 100644
index 0000000..5633251
--- /dev/null
+++ b/docs/manual/CoreTasks/delete.html
@@ -0,0 +1,110 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="delete">Delete</a></h2>
+<h3>Description</h3>
+<p>Deletes either a single file, all files in a specified directory and its 
+sub-directories, 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 <em>includeEmptyDirs</em> atribute.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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.</td>
+    <td align="center" valign="middle" rowspan="2">at least one of the two</td>
+  </tr>
+  <tr>
+    <td valign="top">dir</td>
+    <td valign="top">The directory to delete files from.</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">Show 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 file does not exist, do not display a diagnostic 
+     message or modify the exit status to reflect an error.
+     This means that if a file or directory cannot be deleted,
+     then no error is reported. This setting emulates the 
+     -f option to the Unix &quot;rm&quot; command.
+    (&quot;true&quot;/&quot;false&quot;).
+	 Default is &quot;false&quot; meaning things are &quot;noisy&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"><i>Deprecated.</i>  Comma separated list of patterns of files that must be
+      deleted. All files are in the current directory 
+      and any sub-directories are deleted when omitted.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includesfile</td>
+    <td valign="top"><i>Deprecated.</i>  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"><i>Deprecated.</i>  Comma separated list of patterns of files that must be
+      excluded from the deletion list. 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"><i>Deprecated.</i>  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"><i>Deprecated.</i>  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;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 &quot;<code>.bak</code>&quot from the current directory 
+and any sub-directories.</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>, but not
+<code>build</code> itself.</p>
+<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/deltree.html b/docs/manual/CoreTasks/deltree.html
new file mode 100644
index 0000000..576b769
--- /dev/null
+++ b/docs/manual/CoreTasks/deltree.html
@@ -0,0 +1,40 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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>
+<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/echo.html b/docs/manual/CoreTasks/echo.html
new file mode 100644
index 0000000..49510f7
--- /dev/null
+++ b/docs/manual/CoreTasks/echo.html
@@ -0,0 +1,51 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="echo">Echo</a></h2>
+<h3>Description</h3>
+<p>Echoes a message to System.out or a 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">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 &#150; default is false.</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;echo message=&quot;Hello world&quot;/&gt;</pre>
+<pre>  
+&lt;echo&gt;
+This is a longer message stretching over
+two lines.
+&lt;/echo&gt;
+</pre>
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/exec.html b/docs/manual/CoreTasks/exec.html
new file mode 100644
index 0000000..1f029ef
--- /dev/null
+++ b/docs/manual/CoreTasks/exec.html
@@ -0,0 +1,144 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</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>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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.</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.</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">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>
+</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>
+<p>Please note that the environment of the current Ant process is
+<b>not</b> passed to the system command if you specify variables using
+<code>&lt;env&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">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>
+<h5>Examples</h5>
+<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>
+<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>
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/execon.html b/docs/manual/CoreTasks/execon.html
new file mode 100644
index 0000000..124097e
--- /dev/null
+++ b/docs/manual/CoreTasks/execon.html
@@ -0,0 +1,138 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="execon">ExecOn</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>The files and/or directories of a number of <a
+href="../CoreTypes/fileset.html">FileSet</a>s are passed as arguments to the system
+command. At least one nested <code>&lt;fileset&gt;</code> is required.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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">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.</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.</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">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">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.</td>
+    <td align="center" valign="top">No, default is <i>file</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>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. 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>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>
+<p>Please note that the environment of the current Ant process is
+<b>not</b> passed to the system command if you specify variables using
+<code>&lt;env&gt;</code>.</p>
+<h3>Examples</h3>
+<blockquote><pre>
+&lt;execon 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;/execon&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;execon executable=&quot;somecommand&quot; parallel=&quot;false&quot; &gt;
+  &lt;arg value=&quot;arg1&quot;/&gt;
+  &lt;srfile/&gt;
+  &lt;arg value=&quot;arg2&quot;/&gt;
+  &lt;fileset dir=&quot;/tmp&quot;/&gt;
+&lt;/execon&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>
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/fail.html b/docs/manual/CoreTasks/fail.html
new file mode 100644
index 0000000..3fc7681
--- /dev/null
+++ b/docs/manual/CoreTasks/fail.html
@@ -0,0 +1,50 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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>
+</table>
+<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>
+
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/filter.html b/docs/manual/CoreTasks/filter.html
new file mode 100644
index 0000000..52e66d4
--- /dev/null
+++ b/docs/manual/CoreTasks/filter.html
@@ -0,0 +1,63 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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.</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
+filterfile 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;&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 occurences of the string <i>@year@</i>
+with <i>2000.</i></p>
+<pre>  &lt;filter filterfile=&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,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/fixcrlf.html b/docs/manual/CoreTasks/fixcrlf.html
new file mode 100644
index 0000000..287ad0e
--- /dev/null
+++ b/docs/manual/CoreTasks/fixcrlf.html
@@ -0,0 +1,168 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="fixcrlf">FixCRLF</a></h2>
+<h3>Description</h3>
+<p>Adjusts a text file to local.</p>
+<p>It is possible to refine the set of files that are being adjusted. 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>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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 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 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">cr</td>
+    <td valign="top">Specifies how carriage return (CR) characters are to
+      be handled.  Valid values for this property are:
+      <ul>
+      <li>add: ensure that there is a CR before every LF</li>
+      <li>asis: leave CR characters alone</li>
+      <li>remove: remove all CR characters</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 add.
+      <p>
+      Note: Unless this property is specified as &quot;asis&quot;, extra CR characters
+      which do not precede a LF will be removed.</p>
+      </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>
+      Note: Unless this property is specified as &quot;asis&quot;, extra spaces and
+      tabs after the last non-whitespace character on the line will be removed.</p>
+      </td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">tablength</td>
+    <td valign="top">The number of characters a TAB stop corresponds to. 
+      Must be a positive power of 2, 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>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;fixcrlf srcdir=&quot;${src}&quot;
+       cr=&quot;remove&quot; eof=&quot;remove&quot;
+       includes=&quot;**/*.sh&quot;
+  /&gt;</pre>
+<p>Removes carriage return and eof characters from the shell scripts.  Tabs and
+spaces are left as is.</p>
+<pre>  &lt;fixcrlf srcdir=&quot;${src}&quot;
+       cr=&quot;add&quot;
+       includes=&quot;**/*.bat&quot;
+  /&gt;</pre>
+<p>Ensures that there are carriage return characters prior to evey line feed.
+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;
+       tabs=&quot;add&quot;
+       includes=&quot;**/Makefile&quot;
+  /&gt;</pre>
+<p>Adds or removes CR characters to match local OS conventions, and
+converts spaces to tabs when appropriate.  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;
+       tabs=&quot;remove&quot;
+       includes=&quot;**/README*&quot;
+  /&gt;</pre>
+<p>Adds or removes CR characters to match local OS conventions, and
+converts all tabs to spaces.  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,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/genkey.html b/docs/manual/CoreTasks/genkey.html
new file mode 100644
index 0000000..8559834
--- /dev/null
+++ b/docs/manual/CoreTasks/genkey.html
@@ -0,0 +1,103 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="genkey">GenKey</a></h2>
+<h3>Description</h3>
+<p>Generates a key in 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.</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 , are replace</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 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/get.html b/docs/manual/CoreTasks/get.html
new file mode 100644
index 0000000..7337de5
--- /dev/null
+++ b/docs/manual/CoreTasks/get.html
@@ -0,0 +1,77 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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.</p>
+<p>This task should be preferred above the <a href="cvs.html">CVS task</a> when
+doing automated builds. CVS is significantly slower than loading a compressed
+archive with 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. 
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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</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</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</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;get src=&quot;http://jakarta.apache.org/&quot; dest=&quot;help/index.html&quot;/&gt;</pre>
+<p>Gets the index page of http://jakarta.apache.org/, and stores it in the file <code>help/index.html</code>.</p>
+
+<pre>  &lt;get src=&quot;http://jakarta.apache.org/builds/tomcat/nightly/ant.zip&quot; 
+	dest=&quot;optional.jar&quot; 
+	verbose=&quot;true&quot;
+	usetimestamp=&quot;true&quot;/&gt;</pre>
+<p>
+Gets the nightly ant build from the tomcat distribution, if the local copy
+is missing or out of date. Uses the verbose option 
+for progress information.
+</p>
+
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/gunzip.html b/docs/manual/CoreTasks/gunzip.html
new file mode 100644
index 0000000..b18fcd6
--- /dev/null
+++ b/docs/manual/CoreTasks/gunzip.html
@@ -0,0 +1,59 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="gunzip">GUnzip</a></h2>
+<h3>Description</h3>
+<p>Expands a GZip file.</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; 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;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 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/gzip.html b/docs/manual/CoreTasks/gzip.html
new file mode 100644
index 0000000..9baf72b
--- /dev/null
+++ b/docs/manual/CoreTasks/gzip.html
@@ -0,0 +1,42 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="gzip">GZip</a></h2>
+<h3>Description</h3>
+<p>GZips a 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">the file to gzip.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">zipfile</td>
+    <td valign="top">the destination file.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<blockquote>
+  <p><code>&lt;gzip src=&quot;test.tar&quot; zipfile=&quot;test.tar.gz&quot;
+  /&gt;</code></p>
+</blockquote>
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/jar.html b/docs/manual/CoreTasks/jar.html
new file mode 100644
index 0000000..516eb77
--- /dev/null
+++ b/docs/manual/CoreTasks/jar.html
@@ -0,0 +1,150 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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 attributes 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.
+You should not include <samp>META-INF/MANIFEST.MF</samp> in your set of files.</p>
+<p>The <code>whenempty</code> parameter controls what happens when no files match.
+If <code>create</code> (the default), the JAR is created anyway with only a manifest.
+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.</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>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">jarfile</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</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma 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 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">whenempty</td>
+    <td valign="top">Behavior to use if no files match.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+<h3>Examples</h3>
+<pre>  &lt;jar jarfile=&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 jarfile=&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 jarfile=&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 jarfile=&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>
+
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/java.html b/docs/manual/CoreTasks/java.html
new file mode 100644
index 0000000..93ffe00
--- /dev/null
+++ b/docs/manual/CoreTasks/java.html
@@ -0,0 +1,135 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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>Be careful that the executed class doesn't call System.exit(), because it
+will terminate the VM and thus Ant. In case this happens, it's highly suggested
+that you set the fork attribute so that System.exit() stops the other VM and not
+the one that is currently running Ant.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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">Yes</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">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. Only available if fork is 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 write the output to.</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 or the forked VM. 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>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>
+<h5>Example</h5>
+<pre>  
+       &lt;java classname=&quot;test.Main&quot; &gt;
+         &lt;arg value=&quot;-h&quot;/&gt; 
+         &lt;classpath&gt;
+           &lt;pathelement location=&quot;\test.jar&quot;/&gt;
+           &lt;pathelement path=&quot;${java.class.path}&quot;/&gt;
+         &lt;/classpath&gt;
+       &lt;/java&gt;
+</pre>
+<h3>Examples</h3>
+<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>
+
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/javac.html b/docs/manual/CoreTasks/javac.html
new file mode 100644
index 0000000..3c3abff
--- /dev/null
+++ b/docs/manual/CoreTasks/javac.html
@@ -0,0 +1,255 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="javac">Javac</a></h2>
+<h3>Description</h3>
+<p>Compiles a source tree within the running (Ant) VM.</p>
+<p>The source and destination directory will be recursively scanned for Java
+source files to compile. Only Java files that have no corresponding class file
+or where the class file is older than the java file will be compiled.</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>It is possible to use different compilers. This can be selected with the
+&quot;build.compiler&quot; property. There are four choices:</p>
+<ul>
+  <li>classic (the standard compiler of JDK 1.1/1.2)</li>
+  <li>modern (the new compiler of JDK 1.3)</li>
+  <li>jikes (the <a
+    href="http://oss.software.ibm.com/developerworks/opensource/jikes/project" target="_top">Jikes</a>
+    compiler)</li>
+  <li>jvc (the Command-Line Compiler from Microsoft's SDK for Java /
+    Visual J++)</li>
+</ul>
+<p>For JDK 1.1/1.2, classic is the default. For JDK 1.3, modern is the default.
+If you wish to use a different compiler interface than one of the four
+supplied, write a class that implements the CompilerAdapter interface
+(package org.apache.tools.ant.taskdefs.compilers). Supply the full
+classname in the &quot;build.compiler&quot; property.
+</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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 Notes at the end)</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-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 that contains
+      include patterns.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma-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 that contains
+      exclude patterns.</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 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 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">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.</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>.</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>).</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">verbose</td>
+    <td valign="top">asks the compiler for verbose output.</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 (jikes and classic)</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">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>
+</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>bootclasspath</code> and <code>extdirs</code></h4>
+<p><code>Javac</code>'s <i>srcdir</i>, <i>classpath</i>,
+<i>bootclasspath</i> and <i>extdirs</i> 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;bootclasspath&gt</code> and
+<code>&lt;extdirs&gt</code> elements, respectively.</p>
+
+<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 contains <code>xyz.jar</code>, and debug information is on.</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 contains <code>xyz.jar</code>, and debug information is on.
+Only files under <code>mypackage/p1</code> and <code>mypackage/p2</code> are
+used. Files in 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><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>
+
+<p><b>Note:</b> If you wish to compile only source-files located in some packages below a
+common root you should not include these packages in the srcdir-attribute. Use include/exclude-attributes
+or elements to filter for these packages. If you include part of your package-structure inside the srcdir-attribute 
+(or nested src-elements) Ant will start to recompile your sources everytime you call it.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/javadoc.html b/docs/manual/CoreTasks/javadoc.html
new file mode 100644
index 0000000..5f91071
--- /dev/null
+++ b/docs/manual/CoreTasks/javadoc.html
@@ -0,0 +1,464 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="javadoc">Javadoc/Javadoc2</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 and 1.2),
+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>DEPRECATION: 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.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="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="2">At least one of the two or nested
+      <code>&lt;sourcepath&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">destdir</td>
+    <td valign="top">Destination directory for output files</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="top">Yes</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">sourcefiles</td>
+    <td valign="top">Comma separated list of source files</td>
+    <td align="center" valign="top">all</td>
+    <td align="center" valign="middle" rowspan="2">at least one of the two</td>
+  </tr>
+  <tr>
+    <td valign="top">packagenames</td>
+    <td valign="top">Comma separated list of package files (with terminating
+      wildcard)</td>
+    <td align="center" valign="top">all</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">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">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</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;</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</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">FUTURE: 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">FUTURE: 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">FUTURE: 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">1.1</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.</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</td>
+    <td align="center" valign="top">1.2</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>
+</table>
+
+<h3>Parameters specified as nested elements</h3>
+<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>
+<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">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>
+  
+<h4>groups</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>
+
+<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</td>
+  </tr>
+  <tr>
+    <td valign="top">packages</td>
+    <td valign="top">List of packages to include in that group</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<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 paramaters 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>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>
+
+<h3>Example</h3>
+<pre>  &lt;javadoc packagenames=&quot;com.dummy.test.*&quot;
+           sourcepath=&quot;src&quot;
+           destdir=&quot;docs/api&quot;
+           author=&quot;true&quot;
+           version=&quot;true&quot;
+           use=&quot;true&quot;
+           windowtitle=&quot;Test API&quot;
+           doctitle=&quot;&lt;h1&gt;Test&lt;/h1&gt;&quot;
+           bottom=&quot;&lt;i&gt;Copyright &amp;#169; 2000 Dummy Corp. All Rights Reserved.&lt;/i&gt;&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*&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,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/mail.html b/docs/manual/CoreTasks/mail.html
new file mode 100644
index 0000000..61da405
--- /dev/null
+++ b/docs/manual/CoreTasks/mail.html
@@ -0,0 +1,64 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="mail">Mail</a></h2>
+<h3>Description</h3>
+<p>A task to send SMTP email.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">tolist</td>
+    <td valign="top">Comma-separated list of recipients.</td>
+    <td align="center" valign="top">Yes</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">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">files</td>
+    <td valign="top">Filename(s) of text to send in the body of the email. 
+	Multiple files are comma-separated.</td>
+  </tr>
+  <tr>
+    <td valign="top">mailhost</td>
+    <td valign="top">Host name of the mail server.</td>
+    <td align="center" valign="top">No, default to &quot;localhost&quot;</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>Examples</h3>
+<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>
+<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 <i>build.log</i>
+in the body of the message.</p>
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/mkdir.html b/docs/manual/CoreTasks/mkdir.html
new file mode 100644
index 0000000..76ae61f
--- /dev/null
+++ b/docs/manual/CoreTasks/mkdir.html
@@ -0,0 +1,38 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/move.html b/docs/manual/CoreTasks/move.html
new file mode 100644
index 0000000..cafd04e
--- /dev/null
+++ b/docs/manual/CoreTasks/move.html
@@ -0,0 +1,117 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</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">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 a nested fileset, 
+	 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>
+</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>
+<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; &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,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/patch.html b/docs/manual/CoreTasks/patch.html
new file mode 100644
index 0000000..aa84ce9
--- /dev/null
+++ b/docs/manual/CoreTasks/patch.html
@@ -0,0 +1,77 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="patch">Patch</a></h2>
+<h3>Description</h3>
+<p>Applies a diff file to originals.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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">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>
+</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,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/property.html b/docs/manual/CoreTasks/property.html
new file mode 100644
index 0000000..a8635fc
--- /dev/null
+++ b/docs/manual/CoreTasks/property.html
@@ -0,0 +1,129 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</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.</p>
+<p>When a property was set by the user, or was a property in a parent project
+(that started this project with the <a href="ant.html">ant task</a>), then this
+property cannot be set, and will be ignored. This means that properties set
+outside the current project always override the properties of the current
+project.</p>
+<p>There are five 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.</li>
+  <li>By setting the <i>resource</i> attribute with the resource name of the
+    property file to load. This property file has the format as defined by the
+    file used in the class java.util.Properties.</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 the three 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>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">value</td>
+    <td valign="top">the value of the property.</td>
+    <td valign="middle" align="center" rowspan="6">Yes</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>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">the filename of the property file .</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">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 ;)</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 PATH defined
+      elsewhere..</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 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.  This technique is more appropriate for Unix than 
+Windows since the notion of a home directory doesn't exist on Windows.  On the
+JVM that I tested, the home directory on Windows is &quot;C:\&quot;.  Different JVM
+implementations may use other values for the home directory on Windows.</p>
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/rename.html b/docs/manual/CoreTasks/rename.html
new file mode 100644
index 0000000..6c2d133
--- /dev/null
+++ b/docs/manual/CoreTasks/rename.html
@@ -0,0 +1,49 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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>
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/replace.html b/docs/manual/CoreTasks/replace.html
new file mode 100644
index 0000000..e84336b
--- /dev/null
+++ b/docs/manual/CoreTasks/replace.html
@@ -0,0 +1,164 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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">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 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">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">includes</td>
+    <td valign="top">comma 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 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]]>&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]]>&lt;/replacetoken&gt;
+  &lt;replacevalue&gt;&lt;![CDATA[two line
+token]]>&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,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/rmic.html b/docs/manual/CoreTasks/rmic.html
new file mode 100644
index 0000000..80f5395
--- /dev/null
+++ b/docs/manual/CoreTasks/rmic.html
@@ -0,0 +1,158 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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).</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>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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 base 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 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 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>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>classpath</h4>
+<p><code>Rmic</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> elements.</p>
+<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,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/signjar.html b/docs/manual/CoreTasks/signjar.html
new file mode 100644
index 0000000..c093e14
--- /dev/null
+++ b/docs/manual/CoreTasks/signjar.html
@@ -0,0 +1,91 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="signjar">SignJar</a></h2>
+<h3>Description</h3>
+<p>Signs a jar or zip file with the javasign command line 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 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.</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</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</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</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,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/sql.html b/docs/manual/CoreTasks/sql.html
similarity index 72%
rename from docs/sql.html
rename to docs/manual/CoreTasks/sql.html
index ec12391..579bc38 100644
--- a/docs/sql.html
+++ b/docs/manual/CoreTasks/sql.html
@@ -1,5 +1,7 @@
 <html>
 <head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
 </head>
 <body>
 
@@ -9,12 +11,12 @@
 
 <p>Multiple statements can be set and each statement is delimited from the next use a semi-colon. Individual lines within the statements can be commented using either -- or // at the start of the line.</p>
 
-<p>The auto-commit 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 commited. If it is turned off the statements will all be executed as one transaction.</p>
+<p>The auto-commit 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 preceed when an error occurs during the execution of one of the statements. 
+<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.
+and <b>abort</b> execution and transaction and fail task.</p>
 
 <h3>Parameters</h3>
 <table border="1" cellpadding="2" cellspacing="0">
@@ -51,17 +53,17 @@
 <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 "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 "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 "true"</td>
+  <td width="10%" valign="top">No, default &quot;true&quot;</td>
 </tr>
 <tr>
   <td width="12%" valign="top">output</td>
@@ -76,7 +78,7 @@
 <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 "abort"</td>
+  <td width="10%" valign="top">No, default &quot;abort&quot;</td>
 </tr>
 <tr>
   <td width="12%" valign="top">rdbms</td>
@@ -95,7 +97,7 @@
 <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 usefull when there are multiple files to execute
+is particularly useful when there are multiple files to execute
 on the same schema.</p>
 <table border="1" cellpadding="2" cellspacing="0">
   <tr>
@@ -111,29 +113,29 @@
 </table>
 <h4>classpath</h4>
 <p><code>Sql</code>'s <em>classpath</em> attribute is a <a
-href="#path">PATH like structure</a> and can also be set via a nested
+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>
 <p>
 The 
 </p>
 
 <h3>Examples</h3>
-<pre><blockquote>&lt;sql
-    driver="org.database.jdbcDriver"
-    url="jdbc:database-url"
-    userid="sa"
-    password="pass"
-    src="data.sql"
+<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 url 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="org.database.jdbcDriver"
-    url="jdbc:database-url"
-    userid="sa"
-    password="pass"
+    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
@@ -151,10 +153,10 @@
 or other special characters. For example:</p>
 
 <blockquote><pre>&lt;sql
-    driver="org.database.jdbcDriver"
-    url="jdbc:database-url"
-    userid="sa"
-    password="pass"
+    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;
@@ -164,14 +166,14 @@
 
 <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>
 
-<pre><blockquote>&lt;sql
-    driver="org.database.jdbcDriver"
-    url="jdbc:database-url"
-    userid="sa"
-    password="pass" &gt;
-  &lt;transaction  src="data1.sql" /&gt;
-  &lt;transaction  src="data2.sql" /&gt;
-  &lt;transaction  src="data3.sql" /&gt;
+<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;
@@ -180,31 +182,32 @@
 
 <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>
 
-<pre><blockquote>&lt;sql
-    driver="org.database.jdbcDriver"
-    url="jdbc:database-url"
-    userid="sa"
-    password="pass"
-    src="data.sql"
-    print="yes"
-    output="outputfile.txt"
+<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="/some/jdbc.jar"&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 "oracle" and the version starts with "8.1."</p>
+<p>The following will only execute if the RDBMS is &quot;oracle&quot; and the version 
+starts with &quot;8.1.&quot;</p>
 
-<pre><blockquote>&lt;sql
-    driver="org.database.jdbcDriver"
-    url="jdbc:database-url"
-    userid="sa"
-    password="pass"
-    src="data.sql"
-    rdbms="oracle"
-    version="8.1."
+<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
diff --git a/docs/manual/CoreTasks/style.html b/docs/manual/CoreTasks/style.html
new file mode 100644
index 0000000..8dab1e6
--- /dev/null
+++ b/docs/manual/CoreTasks/style.html
@@ -0,0 +1,152 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="style">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 in generating code.</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>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>Style supports the use of a &lt;param&gt; element which is use to pass values 
+  to an &lt;xsl:param&gt; declaration.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">destdir</td>
+    <td valign="top">directory where to store the results.</td>
+    <td align="center" valign="top">Yes</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;.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">style</td>
+    <td valign="top">name of the stylesheet to use.</td>
+    <td align="center" valign="top">Yes</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, &quot;xslp&quot; for the 
+      XSL:P processor, &quot;xalan&quot; for the Apache XML Xalan (version 1) 
+      processor, or the name of an arbitrary XSLTLiaison class. Defaults to trax, 
+      followed by xslp then xalan (in that order). The first one found in your 
+      class path is the one that is used.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma 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 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>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<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">XSL expression to be placed into the param. To pass a text 
+      value into the style sheet it needs to be escaped using single quotes.</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+<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 XSL parameters</h4>
+  <pre>&lt;style 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;/style&gt;</pre>
+  <p>This will replace an xsl:param definition&lt;xsl:param name=&quot;date&quot;&gt;&lt;/xsl:param&gt; 
+    with the text value 07-01-2000 </p>
+  </blockquote>
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/tar.html b/docs/manual/CoreTasks/tar.html
new file mode 100644
index 0000000..dfce644
--- /dev/null
+++ b/docs/manual/CoreTasks/tar.html
@@ -0,0 +1,178 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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 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>Note that this task does not perform compression. You might want to use the 
+<a href="gzip.html">GZip</a> task to prepare a .tar.gz package.</p>
+
+<h3>Parameters</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">tarfile</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 zip 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;omil&quot; and &quot;gnu&quot;.  Default is 
+       &quot;warn&quot;.
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma 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 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>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">An 3 digit octal string, specify the user, group and other modes in 
+                     the standard Unix fashion</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, which is 
+                     not currently set by the tar task.</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">groupname</td>
+    <td valign="top">The username for the tar entry. This is not the same as the GID, which is 
+                     not currently set by the tar task.</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 tarfile=&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 longfile=&quot;gnu&quot;
+     tarfile=&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;/fileset&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;/fileset&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>
+
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/taskdef.html b/docs/manual/CoreTasks/taskdef.html
new file mode 100644
index 0000000..ec6250a
--- /dev/null
+++ b/docs/manual/CoreTasks/taskdef.html
@@ -0,0 +1,56 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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. Two attributes are needed, the name that identifies
+this task uniquely, and the full name of the class (including the packages) that
+implements this task.</p>
+<p>Taskdef should be used to add your own tasks to the system. See also &quot;<a
+href="../develop.html#writingowntask">Writing your own task</a>&quot;.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the full class name implementing the task</td>
+    <td valign="top" align="center">Yes</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>
+</table>
+<h3>Parameters specified as nested elements</h3>
+<h4>classpath</h4>
+<p><code>Taskdef</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;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,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/touch.html b/docs/manual/CoreTasks/touch.html
new file mode 100644
index 0000000..7bb503d
--- /dev/null
+++ b/docs/manual/CoreTasks/touch.html
@@ -0,0 +1,57 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</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.</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">Yes</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.</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>
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/tstamp.html b/docs/manual/CoreTasks/tstamp.html
new file mode 100644
index 0000000..14fe4f2
--- /dev/null
+++ b/docs/manual/CoreTasks/tstamp.html
@@ -0,0 +1,75 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="tstamp">Tstamp</a></h2>
+<h3>Description</h3>
+<p>Sets the DSTAMP, TSTAMP and TODAY properties in the current project. The
+DSTAMP is in the &quot;yyyymmdd&quot; format, the TSTAMP is in the &quot;hhmm&quot;
+format and TODAY is &quot;month day year&quot;.</p>
+<p>These properties can be used in the buildfile, for instance, to create
+timestamped filenames or used to replace placeholder tags inside documents to
+indicate, for example, the release date. The best place for this task is in your
+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 colspan="3"> No parameters</td>
+  </tr>
+</table>
+
+<h3>Nested Elements</h3>
+The tstamp task supports a format nested element which allows a property to be
+given the current date and time in a given format. The date/time patterns are as defined in the Java 
+SimpleDateFormat class. 
+
+
+<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 which is 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 defined by the Java
+                     SimpleDateFormat class</td>
+    <td align="center" valign="top">Yes</td>
+  </tr>
+</table>
+
+<h3>Examples</h3>
+<p> Set the standard DSTAMP, TSTAMP and TODAY properties according to the formats above</p>
+<pre>  &lt;tstamp/&gt;</pre>
+
+<p> As for the above example, set the standard properties and also set the property 
+&quot;TODAY_UK&quot; with the date/time pattern &quot;d MMM yyyy&quot;</p>
+
+<pre>  &lt;tstamp&gt;
+    &lt;format property=&quot;TODAY_UK&quot; pattern=&quot;d MMMM yyyy&quot;&gt;
+  &lt;/tstamp&gt;
+</pre>
+
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/untar.html b/docs/manual/CoreTasks/untar.html
new file mode 100644
index 0000000..6f978c6
--- /dev/null
+++ b/docs/manual/CoreTasks/untar.html
@@ -0,0 +1,52 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="untar">Untar</a></h2>
+<h3>Description</h3>
+<p>Untars a tarfile.</p>
+
+<p><strong>Note: </strong>File permissions will not be restored on extracted files.</p>
+
+<p>For JDK 1.1 &quot;last modified time&quot; field is set to current time instead of being 
+carried from tarfile.</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">tarfile to expand.</td>
+    <td align="center" valign="top">Yes</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>
+</table>
+<h3>Examples</h3>
+<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>
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/unzip.html b/docs/manual/CoreTasks/unzip.html
new file mode 100644
index 0000000..918acb7
--- /dev/null
+++ b/docs/manual/CoreTasks/unzip.html
@@ -0,0 +1,45 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="unzip">Unjar/Unwar/Unzip</a></h2>
+<h3>Description</h3>
+<p>Unzips a zip-, war- or jarfile.</p>
+<p>For JDK 1.1 &quot;last modified time&quot; field is set to current time instead of being 
+carried from zipfile.</p>
+<p>File permissions will not be restored on extracted 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">src</td>
+    <td valign="top">zipfile to expand.</td>
+    <td align="center" valign="top">Yes</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>
+</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>
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/uptodate.html b/docs/manual/CoreTasks/uptodate.html
new file mode 100644
index 0000000..658cdaf
--- /dev/null
+++ b/docs/manual/CoreTasks/uptodate.html
@@ -0,0 +1,62 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="uptodate">Uptodate</a></h2>
+<h3>Description</h3>
+<p>Sets a property if a target files are more up to date than a set of
+Source files. Source files are specified by nested &lt;srcfiles&gt;
+elements, these are <a href="../CoreTypes/fileset.html">FileSet</a>s, while target
+files are specified using a nested <a href="../CoreTypes/mapper.html">mapper</a>
+element.</p>
+<p>The value part of the property being set is <i>true</i> if the
+timestamp of the target files is more recent than the timestamp of
+every corresponding source file.</p>
+<p>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
+targetfile 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">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 mapper element is 
+      present.</td>
+  </tr>
+</table>
+<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><i>xmlBuild.notRequired</i></code> to the value &quot;true&quot;
+if the <i>${deploy}/xmlClasses.jar</i> is more up to date than any of the DTD files in the <i>${src}/xml</i> 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>
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/war.html b/docs/manual/CoreTasks/war.html
new file mode 100644
index 0000000..dff6c6f
--- /dev/null
+++ b/docs/manual/CoreTasks/war.html
@@ -0,0 +1,149 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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.</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">warfile</td>
+    <td valign="top">the war-file to create.</td>
+    <td valign="top" align="center">Yes</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</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</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma 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 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">whenempty</td>
+    <td valign="top">Behavior to use if no files match.</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>
+<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 warfile=&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>.
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTasks/zip.html b/docs/manual/CoreTasks/zip.html
new file mode 100644
index 0000000..5b89b48
--- /dev/null
+++ b/docs/manual/CoreTasks/zip.html
@@ -0,0 +1,161 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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 <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>
+<h3>Parameters</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">zipfile</td>
+    <td valign="top">the zip-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 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</td>
+    <td align="center" valign="top">No</td>
+  </tr>
+  <tr>
+    <td valign="top">includes</td>
+    <td valign="top">comma 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 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">whenempty</td>
+    <td valign="top">Behavior when no files match.</td>
+    <td valign="top" align="center">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>A <code>&lt;zipfileset&gt;</code> has three additional attributes: <i>prefix</i>, <i>fullpath</i>, and <i>src</i>.  The 
+<i>prefix</i> and <i>fullpath</i> attributes modify the location of the files when they are placed 
+inside the archive. If the <i>prefix</i> attribute is set, all files in the fileset are prefixed
+with that path in the archive. If the <i>fullpath</i> attribute is set, the file described by the fileset is placed at that 
+exact location in the archive. (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.)  The <i>src</i> attribute
+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.  As with directories, include and exclude patterns may be used to specify a subset of the zip file
+for inclusion in the archive.</p>
+
+<h3>Examples</h3>
+<pre>  &lt;zip zipfile=&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 zipfile=&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 zipfile=&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 zipfile=&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 zipfile=&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>
+
+
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTypes/fileset.html b/docs/manual/CoreTypes/fileset.html
new file mode 100644
index 0000000..531615f
--- /dev/null
+++ b/docs/manual/CoreTypes/fileset.html
@@ -0,0 +1,92 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</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>. FileSets can appear inside tasks
+that support this feature or at the same level as <code>target</code>
+&#150; 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> and
+<code>&lt;exclude&gt;</code> elements of PatternSet directly, as well
+as PatternSet'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 FileSet.</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">defaultexcludes</td>
+    <td valign="top">indicates whether default excludes 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-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-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>
+</table>
+
+<h4>Examples</h4>
+<blockquote><pre>
+&lt;fileset dir=&quot;${server.src}&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 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;${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 example above.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTypes/mapper.html b/docs/manual/CoreTypes/mapper.html
new file mode 100644
index 0000000..f002234
--- /dev/null
+++ b/docs/manual/CoreTypes/mapper.html
@@ -0,0 +1,335 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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) &#150; 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 &#150;
+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 &#150; 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 both</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>The classpath can be specified via a nested
+<code>&lt;classpath&gt;</code>, as well &#150; that is,
+a <a href="../using.html#path">path</a>-like structure.</p>
+<p>The built-in mapper types are:</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;
+</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;
+</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> &#150; <code>from</code> will be ignored.</p>
+<h5>Examples:</h5>
+<blockquote><pre>
+&lt;mapper type=&quot;merge&quot; 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;
+</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;
+</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://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>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 jakarta-ORO; if that
+cannot be found, 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;
+</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;
+</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;
+</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>
+
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/CoreTypes/patternset.html b/docs/manual/CoreTypes/patternset.html
new file mode 100644
index 0000000..491a62f
--- /dev/null
+++ b/docs/manual/CoreTypes/patternset.html
@@ -0,0 +1,84 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="patternset">PatternSet</a></h2>
+<p>Patterns 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 at the same level as
+<code>target</code> &#151; i.e., as children of <code>project</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-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.</td>
+  </tr>
+  <tr>
+    <td valign="top">excludes</td>
+    <td valign="top">comma-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.</td>
+  </tr>
+</table>
+
+<h4>Examples</h4>
+<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 &lt;include&gt; and &lt;exclude&gt; 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>
+
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/Integration/Antidote.html b/docs/manual/Integration/Antidote.html
new file mode 100644
index 0000000..5a73d82
--- /dev/null
+++ b/docs/manual/Integration/Antidote.html
@@ -0,0 +1,111 @@
+<!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://jakarta.apache.org/ant/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, particularlyl 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:
+    <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>
+
+    <P>Current development tasks include:
+    <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>
+
+    <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 included with the <A
+    HREF="http://jakarta.apache.org/site/cvsindex.html">CVS</A>
+    version of <A
+    HREF="http://jakarta.apache.org/cvsweb/index.cgi/jakarta-ant">Ant</A>,
+    starting in the directory <A
+    HREF="http://jakarta.apache.org/cvsweb/index.cgi/jakarta-ant/src/antidote">
+    jakarta-ant/src/antidote</A>. All the existing documentation can
+    be found there where new contributors should read:
+    <UL>
+      <LI><A
+      HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/design-overview.html">Design
+      Overview</A></LI> 
+      <LI><A HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/gui-requirements.html">Feature List</A></LI>
+      <LI><A
+      HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/gui-ideas.txt">Idea Refinement</A></LI>
+      <LI><A
+      HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/new-module-howto.html">New Module HOWTO</A></LI>
+      <LI><A
+      HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/uml/index.html">Static
+      Class Diagrams</A></LI>
+    </UL>
+
+
+    <P>Online discussions about Antidote occur on the <A
+    HREF="http://jakarta.apache.org/site/mail.html">jakarta-ant
+    mailing list</A>. The application infrastructure is fairly
+    complete, but there are almost unlimited oppotunities for feature
+    contributions.
+
+    <P>Asipring contributors new to the Jakarta Project should
+    (carefully) read the following for details on the contribution
+    process:
+    <UL>
+      <LI><A
+      HREF="http://jakarta.apache.org/site/getinvolved.html">Get
+      Involved</A></LI>
+      <LI><A
+      HREF="http://jakarta.apache.org/site/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; 2000 Apache Software Foundation. All
+    rights Reserved.</P>
+
+  </BODY>
+</HTML>
diff --git a/docs/manual/Integration/VAJAntTool.html b/docs/manual/Integration/VAJAntTool.html
new file mode 100644
index 0000000..f64cbeb
--- /dev/null
+++ b/docs/manual/Integration/VAJAntTool.html
@@ -0,0 +1,621 @@
+<!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>
+</head>
+<body>
+
+<h1>Visual Age for Java Tasks and Plugin User Manual</h1>
+ <a name="authors"></a>by
+<ul>
+  <li>Wolf Siberski
+      (<a href="mailto:wolf.siberski@tui.de"> wolf.siberski@tui.de</a> )</li>
+  <li>Christoph Wilhelms
+      (<a href="mailto:christoph.wilhelms@tui.de"> christoph.wilhelms@tui.de</a>)</li>
+</ul>
+Version 1.1 - 2001/02/14<br>
+<hr>
+<h2>Table of Contents</h2>
+<ul>
+  <li><a href="#introduction">Introduction</a></li>
+  <li><a href="#tasks">The Tasks</a><a href="#introduction"></a></li>
+  <ul>
+    <li><a href="#vajload">VAJLoad</a></li>
+    <li><a href="#vajexport">VAJExport</a></li>
+    <li><a href="#vajimport">VAJImport</a></li>
+  </ul>
+  <li><a href="#sample_buildfile">A sample build file</a><br></li>
+  <li><a href="#plugin">The Plugin</a></li>
+  <ul>
+    <li><a href="#installation">Installation</a></li>
+    <li><a href="#usage">Usage</a></li>
+  </ul>
+  <li><a href="#faq">Frequently Asked Questions</a></li>
+  <li><a href="#va_versions">Visual Age Versions</a></li>
+  <li><a href="#history">History</a><a href="#history"></a></li>
+</ul>
+
+<hr>
+<h2><a name="introduction"></a>Introduction</h2>
+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 defined  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).<br>
+
+<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 cellpadding="2" cellspacing="2" border="0" width="500">
+   <tbody>
+     <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>
+  </tbody>
+</table>
+These tasks are described in detail below.
+
+<hr>
+<h2><a name="vajload"></a>VAJLoad</h2>
+<h3>Description:</h3>
+<p>Loads a specified VAJ project version into the workspace.</p>
+
+<h3>Parameters</h3>
+<p>none</p>
+
+<h3>Parameters specified as nested elements</h3>
+<h4>vajproject</h4>
+<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">name</td>
+       <td valign="Top">name of the VAJ project to load into the workspace</td>
+       <td valign="Top" align="Center">yes</td>
+     </tr>
+     <tr>
+       <td valign="Top">version</td>
+       <td valign="Top">name of the requested version</td>
+       <td valign="Top" align="Center">yes</td>
+     </tr>
+
+  </tbody>
+</table>
+
+<h3>Example</h3>
+<pre>
+&lt;vajload&gt;
+    &lt;vajproject name="My Testcases" version="1.7beta" /&gt;
+    &lt;vajproject name="JUnit" version="3.2" /&gt;
+&lt;/vajload&gt;
+</pre>
+
+<hr>
+<h2><a name="vajexport"></a>VAJExport</h2>
+
+<h3>Description:</h3>
+<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="index.html#fileset">
+FileSets</a>. </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">destdir</td>
+       <td valign="Top">location to store the exported files</td>
+       <td valign="Top" align="Center">yes</td>
+     </tr>
+     <tr>
+       <td valign="Top">exportSources</td>
+       <td valign="Top">export source files (default: "yes")</td>
+       <td valign="Top" align="Center">no</td>
+     </tr>
+     <tr valign="Top">
+       <td valign="Top">exportResources</td>
+       <td valign="Top">export resource files (default: "yes")</td>
+       <td valign="Top" align="Center">no</td>
+     </tr>
+     <tr valign="Top">
+       <td valign="Top">exportClasses</td>
+       <td valign="Top">export class files (default: "no")</td>
+       <td valign="Top" align="Center">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="Center">no</td>
+     </tr>
+     <tr valign="Top">
+       <td valign="Top">defaultexcludes       </td>
+       <td valign="Top">use default excludes when exporting (default: "yes")
+       <td valign="Top" align="Center">no</td>
+     </tr>
+  </tbody>
+</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">
+   <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">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>
+  </tbody>
+</table>
+
+<h4>exclude</h4>
+specifies the packages to exclude from the export<br>
+
+<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">name</td>
+       <td valign="Top">name of the VAJ project/package not to export</td>
+       <td valign="Top" align="Center">yes</td>
+     </tr>
+  </tbody>
+</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'.
+<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">
+   <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">vajProject</td>
+       <td valign="Top">imported files are added to this VAJ project</td>
+       <td valign="Top" align="Center">yes</td>
+     </tr>
+     <tr>
+       <td valign="Top">importSources</td>
+       <td valign="Top">export source files (default: "yes")</td>
+       <td valign="Top" align="Center">no</td>
+     </tr>
+     <tr valign="Top">
+       <td valign="Top">importResources</td>
+       <td valign="Top">export resource files (default: "yes")</td>
+       <td valign="Top" align="Center">no</td>
+     </tr>
+     <tr valign="Top">
+       <td valign="Top">importClasses</td>
+       <td valign="Top">export class files (default: "no")</td>
+       <td valign="Top" align="Center">no</td>
+     </tr>
+  </tbody>
+</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>A sample build file</h2>
+This is a sample build file which builds a zip file useful for distribution
+of the VAJ plugin. The build file exports a specific version of Ant, compiles
+it, extracts necessary helper classes and zips everything together. This
+is useful as complete example as well as to deploy Ant in a team where all
+developers use VAJ. The resulting zip file must be unzipped in
+<tt>&lt;VAJInstallDir&gt;\ide\tools\org-apache-tools-ant</tt>.
+For more information see the <a href="#installation">installation</a> section.<br>
+<br>
+<pre>
+&lt;?xml version="1.0"?&gt;
+&lt;!-- ======================================================================= --&gt;
+&lt;!-- Builds a binary distribution of the VAJ Ant Plugin                      --&gt;
+&lt;!-- ======================================================================= --&gt;
+&lt;project name="anttool" default="buildall" basedir="c:\temp\anttool"&gt;
+
+  &lt;property name="src.dir" value="${basedir}/src"/&gt;
+  &lt;property name="zip.dir" value="${basedir}/dist"/&gt;
+  &lt;property name="build.classes" value="${basedir}/classes"/&gt;
+
+  &lt;!-- location of the unzipped Ant source distribution  --&gt;
+  &lt;property name="antdistribution.dir" value="u:\ant-1.3beta1"/&gt;
+
+  &lt;!-- VAJ install dir --&gt;
+  &lt;property name="vaj.dir" value="C:\IBMVJava2"/&gt;
+
+  &lt;path id="classpath"&gt;
+      &lt;pathelement location="${src.dir}"/&gt;
+      &lt;pathelement location="${vaj.dir}\IDE\project_resources\IBM IDE Utility class libraries" /&gt;
+      &lt;pathelement location="${build.classes}"/&gt;
+  &lt;/path&gt;
+
+
+  &lt;!-- =================================================================== --&gt;
+  &lt;!-- Load Projects into Workspace                                        --&gt;
+  &lt;!-- =================================================================== --&gt;
+  &lt;target name="load" description="load projects"&gt;
+    &lt;vajload&gt;
+      &lt;project name="Ant" version="1.3"/&gt;
+      &lt;project name="Apache Oro RegExp" version="2.0.1"/&gt;
+    &lt;/vajload&gt;
+  &lt;/target&gt;
+
+
+  &lt;!-- =================================================================== --&gt;
+  &lt;!-- Creates the build dirs                                              --&gt;
+  &lt;!-- =================================================================== --&gt;
+  &lt;target name="preparedirs"&gt;
+    &lt;mkdir dir="${basedir}"/&gt;
+    &lt;mkdir dir="${src.dir}"/&gt;
+    &lt;mkdir dir="${zip.dir}"/&gt;
+    &lt;mkdir dir="${build.classes}"/&gt;
+  &lt;/target&gt;
+
+
+  &lt;!-- =================================================================== --&gt;
+  &lt;!-- Export from VA                                                      --&gt;
+  &lt;!-- =================================================================== --&gt;
+  &lt;target name="export" depends="preparedirs" description="export projects"&gt;
+    &lt;mkdir dir="${src.dir}"/&gt;
+    &lt;!-- Export all Ant sources except optional tasks and the Oro sources --&gt;
+    &lt;vajexport destdir="${src.dir}"&gt;
+      &lt;include name="Ant/**"/&gt;
+      &lt;exclude name="Ant/**/optional/**"/&gt;
+      &lt;exclude name="Ant/org/apache/tools/ant/gui/**"/&gt;
+      &lt;include name="Apache Oro*/**"/&gt;
+    &lt;/vajexport&gt;
+    &lt;!-- Export selected optional tasks --&gt;
+    &lt;vajexport destdir="${src.dir}"&gt;
+      &lt;include name="Ant/org/apache/tools/ant/taskdefs/optional/ide/**"/&gt;
+    &lt;/vajexport&gt;
+  &lt;/target&gt;
+
+  &lt;!-- =================================================================== --&gt;
+  &lt;!-- Unzip necessary libraries                                           --&gt;
+  &lt;!-- =================================================================== --&gt;
+  &lt;target name="expand"&gt;
+    &lt;mkdir dir="${build.classes}"/&gt;
+    &lt;unzip src="${antdistribution.dir}\lib\parser.jar"
+           dest="${build.classes}"
+    /&gt;
+    &lt;unzip src="${antdistribution.dir}\lib\jaxp.jar"
+           dest="${build.classes}"
+    /&gt;
+    &lt;delete dir="${build.classes}\META-INF" /&gt;
+  &lt;/target&gt;
+
+  &lt;!-- =================================================================== --&gt;
+  &lt;!-- Compile the source code                                            --&gt;
+  &lt;!-- =================================================================== --&gt;
+  &lt;target name="compile" depends="expand" description="compile java sources"&gt;
+    &lt;mkdir dir="${build.classes}"/&gt;
+    &lt;javac srcdir="${src.dir}"
+           destdir="${build.classes}"
+           debug="on"
+           deprecation="off"
+           optimize="on" &gt;
+      &lt;classpath refid="classpath" /&gt;
+      &lt;include name="org/apache/**"/&gt;
+      &lt;exclude name="**/JakartaRegexpMatcher.java"/&gt;
+    &lt;/javac&gt;
+  &lt;/target&gt;
+
+  &lt;!-- =================================================================== --&gt;
+  &lt;!-- Copy resources and zip everything together                           --&gt;
+  &lt;!-- =================================================================== --&gt;
+  &lt;target name="zip" depends="compile" description="creates zip distribution"&gt;
+    &lt;copy todir="${build.classes}"&gt;
+      &lt;fileset dir="${src.dir}"&gt;
+          &lt;include name="org/apache/**"/&gt;
+          &lt;exclude name="**/*.java"/&gt;
+      &lt;/fileset&gt;
+    &lt;/copy&gt;
+    &lt;mkdir dir="${build.classes}/doc"/&gt;
+    &lt;copy todir="${build.classes}/doc" overwrite="yes"&gt;
+      &lt;fileset dir="${antdistribution.dir}/docs"&gt;
+          &lt;include name="VAJAnttool.html, toolmenu.gif, anttool1.gif"/&gt;
+      &lt;/fileset&gt;
+    &lt;/copy&gt;
+    &lt;copy file="${antdistribution.dir}/src/main/org/apache/tools/ant/taskdefs/optional/ide/default.ini" todir="${build.classes}" overwrite="yes"/&gt;
+    &lt;mkdir dir="${zip.dir}"/&gt;
+    &lt;zip basedir="${build.classes}" zipfile="${zip.dir}/anttool.zip" /&gt;
+  &lt;/target&gt;
+
+  &lt;!-- =================================================================== --&gt;
+  &lt;!-- Cleans source and class dirs                                        --&gt;
+  &lt;!-- =================================================================== --&gt;
+  &lt;target name="clean" depends="preparedirs" description="removes all files from src and build tree"&gt;
+    &lt;delete&gt;
+      &lt;fileset dir="${src.dir}"/&gt;
+    &lt;/delete&gt;
+    &lt;delete&gt;
+      &lt;fileset dir="${build.classes}"/&gt;
+    &lt;/delete&gt;
+    &lt;delete&gt;
+      &lt;fileset dir="${zip.dir}"/&gt;
+    &lt;/delete&gt;
+  &lt;/target&gt;
+
+  &lt;!-- =================================================================== --&gt;
+  &lt;!-- Cleans the build dir, loads required project versions, exports,     --&gt;
+  &lt;!-- compiles and zips the Plugin                                        --&gt;
+  &lt;!-- =================================================================== --&gt;
+  &lt;target name="buildall" depends="clean, load, export, zip" description="build all"&gt;
+  &lt;/target&gt;
+&lt;/project&gt;
+</pre>
+
+<hr>
+<h2><a name="plugin"></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>
+At the moment the installation has it's rough edges. If something
+described below doesn't work for You, it's probably not Your fault
+but incomplete/wrong instructions. In this case, please contact one
+of the <a href="#authors">authors</a>.
+We assume <font face="Courier">C:\IBMVJava</font> as VAJ install
+directory. If You have installed it elsewhere, adapt the pathes below.
+Execute following steps to get the PlugIn up and running:
+<ul>
+  <li>install the Visual Age IDE Tools (via File-&gt;Quick Start-&gt;
+      Add feature-&gt;'IBM IDE Utility class libraries'
+  </li>
+  <li>import an appropriate XML parser to VAJ (we use Xerces 1.2.0 and are
+      happy with it). Unfortunately the XML parser delivered with VAJ (in
+      the project 'IBM XML Parser for Java') doesn't work with Ant. You have to
+      remove that project (temporarily) from the workspace before importing another
+      XML implementation.
+  </li>
+
+  <li>import the Ant sources into VAJ.</li>
+  <li>Create the directory <font face="Courier">
+      C:\IBMVJava\ide\tools\org-apache-tools-ant</font>.
+  </li>
+  <li>export the Ant and XML parser class files into this directory. Be sure
+      to select class files and resources. Sources don't have to be exported.
+      Some optional tasks have errors and can't be exported when You
+      don't have the necessary packages in Your workspace (e.g. junit
+      task, ejbc task). If You need this tasks either import these packages
+      into VAJ, too, or copy the .class files directly from the binary
+      distribution.
+  </li>
+  <li>copy <font face="Courier">default.ini</font> (in <font face="Courier">
+      jakarta-ant\src\...\taskdefs\optional\ide</font>)     to <font face="Courier">
+      C:\IBMVJava\ide\tools\org-apache-tools-ant\default.ini</font>.
+  </li>
+  <li>if you want to access this help from the Workbench, create the
+      directory <font face="Courier"> C:\IBMVJava\ide\tools\org-apache-tools-ant\doc</font>
+      and copy the files     <font face="Courier">VAJAntTool.html</font>,
+      <font face="Courier">toolmenu.gif</font> and     <font face="Courier">
+      anttool1.gif</font> to it.
+  </li>
+  <li>VAJ has to be restarted to recognize the new tool.</li>
+  <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>
+  <li>Make sure the tool works as expected. Now You can remove Ant and the
+      imported XML parser from Your workspace (and optionally add the
+      IBM parser again).
+  </li>
+</ul>
+
+<hr>
+<h2><a name="usage"></a>Usage</h2>
+Beeing sure 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!
+
+<center><img src="toolmenu.gif" border="0" height="246" width="393"></center>
+           After a short time this frame should pop up:
+<center><img src="anttool1.gif" border="0" height="222" width="389"></center>
+           This frame contains the following elements:
+<ul>
+  <li>A menubar with some options described later</li>
+  <li>The name of your selected VAJ project</li>
+  <li>An entry field for the Ant XML buildfile with a browse [...] button.
+      The full qualified filename, including the directory is needed here.
+  </li>
+  <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 <i>Reload Project</i> 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
+      <i> Execute Task</i> button.
+  </li>
+  <li>A pulldown box for specifying the log level.</li>
+  <li>Three buttons. Two of them I have already described and the third one
+      is just the <i>Close </i>button to exit our small tool!
+  </li>
+</ul>
+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.
+<hr>
+<h2><a name="faq"></a>Frequently Asked Questions</h2>
+
+<p><b>Q: I want to load, export and build more then one Visual Age project
+to one jar! How to?</b><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><b>Q: When I load my build file, the list of targets is empty. Why?</b><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><b>Q: Is there a sample build file available? </b><br>
+A: Now You can find an <a href="#sample_buildfile">example</a> in this manual
+</p>
+
+<p><b>Q: Why does it export my entire workspace when I've already implicitly
+selected a project when starting the Tool?</b><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><b>Q: When I import Ant into my Workspace, I get Problems reported. Can I
+ignore them?</b><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>
+  <li>Classes from com.ibm.ivj.util missing - install the Visual Age IDE
+      Utility feature  (see <a href="#installation">installation</a>).
+  </li>
+</ul>
+</p>
+
+<p><b>Q: Why is the task name vajload when the class is called VAJLoadProjects?</b><br>
+A: At the moment this task can load only project versions. This is reflected
+by the class name. It may be extended to load package and class versions,
+too, and we didn't want to let these extensions affect the build files. Therefore
+we chose the more general name vajload as task name.
+</p>
+<p><b>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?</b><br>
+A: The three Visual Age Tasks won't work when executing Ant from the command
+line.
+</p>
+<p><b>Q: How do I control the import/export of sourcefiles, compiled files and
+project resources explicity?</b><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.
+</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 build with AWT so it is
+JDK independent by now.
+<hr>
+
+<h2><a name="history"></a>History</h2>
+<table cellpadding="2" cellspacing="2" border="1" width="400">
+   <tbody>
+     <tr valign="Top">
+       <td valign="Top">1.0</td>
+       <td valign="Top">2000/09/11</td>
+       <td valign="Top">Initial Version</td>
+     </tr>
+     <tr valign="Top">
+       <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>
+  </tbody>
+</table>
+<hr>
+<center>Copyright &copy; 2001 Apache Software Foundation. All rights Reserved.</center>
+</body>
+</html>
+
diff --git a/docs/anttool1.gif b/docs/manual/Integration/anttool1.gif
similarity index 100%
rename from docs/anttool1.gif
rename to docs/manual/Integration/anttool1.gif
Binary files differ
diff --git a/docs/toolmenu.gif b/docs/manual/Integration/toolmenu.gif
similarity index 100%
rename from docs/toolmenu.gif
rename to docs/manual/Integration/toolmenu.gif
Binary files differ
diff --git a/docs/manual/LICENSE b/docs/manual/LICENSE
new file mode 100644
index 0000000..032be14
--- /dev/null
+++ b/docs/manual/LICENSE
@@ -0,0 +1,48 @@
+/*
+ * ============================================================================
+ *                   The Apache Software License, Version 1.1
+ * ============================================================================
+ * 
+ *    Copyright (C) 1999 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:  "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 "Ant" 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 (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 <http://www.apache.org/>.
+ *
+ */
diff --git a/docs/antlr.html b/docs/manual/OptionalTasks/antlr.html
similarity index 86%
rename from docs/antlr.html
rename to docs/manual/OptionalTasks/antlr.html
index de10bb8..4762424 100644
--- a/docs/antlr.html
+++ b/docs/manual/OptionalTasks/antlr.html
@@ -10,7 +10,7 @@
 <h2><a name="antlr">ANTLR</a></h2>
 <h3>Description</h3>
 <p>
-  Invokes the <a HREF="http://www.antlr.org/">ANTLR</a> Translator generator
+  Invokes the <a HREF="http://www.antlr.org/" target="_top">ANTLR</a> Translator generator
   on a grammar file.
 </p>
 <p>
@@ -48,7 +48,7 @@
   <tr>
     <td valign="top">fork</td>
     <td valign="top">Run ANTLR in a separate VM.</td>
-    <td align="center" valign="top">No, default is "off"</td>
+    <td align="center" valign="top">No, default is &quot;off&quot;</td>
   </tr>
   <tr>
     <td valign="top">dir</td>
@@ -70,3 +70,9 @@
 </p>
 <hr>
 
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/OptionalTasks/cab.html b/docs/manual/OptionalTasks/cab.html
new file mode 100644
index 0000000..ddd974b
--- /dev/null
+++ b/docs/manual/OptionalTasks/cab.html
@@ -0,0 +1,130 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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">Yes</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 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 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>
+<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>
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/clearcase.html b/docs/manual/OptionalTasks/clearcase.html
similarity index 93%
rename from docs/clearcase.html
rename to docs/manual/OptionalTasks/clearcase.html
index 706929b..82fb7e3 100644
--- a/docs/clearcase.html
+++ b/docs/manual/OptionalTasks/clearcase.html
@@ -7,8 +7,7 @@
 
 <body>
 
-<hr>
-<h2><a name="optionaltasks">Optional tasks</a></h2>
+<h1>ClearCase Support</h1>
 <ul>
   <li><a href="#cccheckin">CCCheckin</a></li>
   <li><a href="#cccheckout">CCCheckout</a></li>
@@ -32,39 +31,39 @@
     <td>Path to the ClearCase view file or directory that the command 
         will operate on</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>comment</td>
-    <td>Specify a comment. Only one of comment or cfile may be used.</td>
+    <td>Specify a comment. Only one of comment or commentfile may be used.</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>commentfile</td>
-    <td>Specify a file containing a comment. Only one of comment or cfile 
+    <td>Specify a file containing a comment. Only one of comment or commentfile 
         may be used.</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>nowarn</td>
     <td>Suppress warning messages</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>preservetime</td>
     <td>Preserve the modification time</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>keepcopy</td>
     <td>Keeps a copy of the file with a .keep extension</td>
     <td>No</td>
-  <tr>
+  </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>
 </table>
 <h3>Examples</h3>
 <blockquote>
@@ -95,49 +94,49 @@
     <td>Path to the ClearCase view file or directory that the command 
         will operate on</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>reserved</td>
     <td>Specifies whether to check out the file as reserved or not</td>
     <td>Yes</td>
-  <tr>
+  </tr>
   <tr>
     <td>out</td>
     <td>Creates a writable file under a different filename</td>
     <td>No</td>
-  <tr>
+  </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>
   <tr>
     <td>branch</td>
     <td>Specify a branch to check out the file to</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>version</td>
     <td>Allows checkout of a version other than main latest</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>nowarn</td>
     <td>Suppress warning messages</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>comment</td>
-    <td>Specify a comment. Only one of comment or cfile may be used.</td>
+    <td>Specify a comment. Only one of comment or commentfile may be used.</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>commentfile</td>
     <td>Specify a file containing a comment. Only one of comment or 
-        cfile may be used.</td>
+        commentfile may be used.</td>
     <td>No</td>
- <tr>
+ </tr>
 </table>
 <h3>Examples</h3>
 <blockquote>
@@ -169,13 +168,13 @@
     <td>Path to the ClearCase view file or directory that the command 
         will operate on</td>
     <td>No</td>
-  <tr>
+  </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>
 </table>
 <h3>Examples</h3>
 <blockquote>
@@ -202,41 +201,41 @@
     <td>Path to the ClearCase view file or directory that the command 
         will operate on</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>graphical</td>
     <td>Displays a graphical dialog during the update</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>log</td>
     <td>Specifies a log file for ClearCase to write to</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>overwrite</td>
     <td>Specifies whether to overwrite hijacked files or not</td>
     <td>No</td>
-  <tr>
+  </tr>
   <tr>
     <td>rename</td>
     <td>Specifies that hijacked files should be renamed with a .keep extension</td>
     <td>No</td>
-  <tr>
+  </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>
   <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>
 </table>
 <h3>Examples</h3>
 <blockquote>
diff --git a/docs/manual/OptionalTasks/depend.html b/docs/manual/OptionalTasks/depend.html
new file mode 100644
index 0000000..d8d4293
--- /dev/null
+++ b/docs/manual/OptionalTasks/depend.html
@@ -0,0 +1,163 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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>
+
+<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 following tests have been run when build Ant itself, on the 
+author's machine using JDK1.3 </p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td>Building Ant from clean using Javac</td>
+    <td>11 seconds</td>
+  </tr>
+  <tr>
+    <td>Building Ant from clean using Jikes</td>
+    <td>5 seconds</td>
+  </tr>
+  <tr>
+    <td>Running &lt;depend&gt; when up-to-date and no cache</td>
+    <td>4 seconds (Depend takes 2 seconds)</td>
+  </tr>
+  <tr>
+    <td>Running &lt;depend&gt; when up-to-date and with a cache</td>
+    <td>2 seconds (Depend takes 1 seconds)</td>
+  </tr>
+</table>
+
+<p> This involves compiling 177 files. The above figures are indicative only. 
+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 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>
+
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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. If you use multiple
+source directories you can pass this 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>
+</table>
+
+<h3>Examples</h3>
+<blockquote>
+  <pre>    &lt;depend srcdir=&quot;${java.dir}&quot;
+    destdir=&quot;${build.classes}&quot;
+    cache=&quot;depcache&quot;
+    closure=&quot;yes&quot;/&gt;</pre>
+</blockquote>
+
+<p> In this example classes in the ${build.classes} directory will be removed if 
+they depend on out-of-date classes. Classes are considered out of date with 
+respect to the source in the ${java.dir} directory using the same mechanism as 
+the javac task. In this instance the depend task caches its dependency 
+information in the depcache directory. </p>
+
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation.
+All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/dotnet.html b/docs/manual/OptionalTasks/dotnet.html
similarity index 65%
rename from docs/dotnet.html
rename to docs/manual/OptionalTasks/dotnet.html
index b81bfa1..2a82945 100644
--- a/docs/dotnet.html
+++ b/docs/manual/OptionalTasks/dotnet.html
@@ -2,17 +2,21 @@
 <head>
 <title> .NET classes for Ant
 </title>
+</head>
+
 <body bgcolor="#ffffff">
-<h1>dotnet classes for Ant</h1>
+<h1>.NET classes for Ant</h1>
+<p>By Steve Loughran; steve_l@iseran.com</p>
 
-<h3>Steve Loughran; steve_l@iseran.com</h3>
 <h2>Vision</h2>
-Make ant the definative build tool for .NET projects, just
-as it is becoming for java projects
 <p>
+Make ant the definitive build tool for .NET projects, just
+as it is becoming for java projects
+</p>
 
-<h2>Detail. </h2>
+<h2>Detail</h2>
 
+<p>
 The emergent policy in big java projects is 'IDE for code and debug';
 Ant for builds, test and deployment. While IDEs are great for an 
 individual development task, Ant not only rebuilds everything insanely
@@ -21,7 +25,7 @@
 XML declaration of what you want done. Also in a large project 
 (especially open source) there is no means of dictating which IDE to use.
 Ant gives IDE independence, cross platform portability and ease of 
-extensibility. 
+extensibility. </p>
  
 <p>
 
@@ -29,28 +33,28 @@
 avoid everyone being dependent on Visual Studio.net (if they have it) 
 supplemented with makefiles and batch files. Anyone doing mixed java/dotnet
 development will be particulary grateful, as they can have a unified build 
-process. 
+process. </p>
 
 <p>
 
 If at sometime in the future bits of .net do appear on different platforms 
 then ant based build files will migrate -once the ant tasks have been 
 migrated and any hard codings of DOS-descendant file system conventions 
-removed from the build.xml files
+removed from the build.xml files.</p>
 
 <h2>Key .net Tasks</h2>
 
 <ol>
-<li>csc - csharp compiler - *.csc -&gt; output
-<li>ilasm - IL assembler - *.il -&gt;.exe or .dll
-<li>ResX - ResXToResources.exe .resx -&gt; .resources
-<li>al - assembly linker (.dll) -&gt;
-<li>Signcode - .exe + keys -&gt; .exe
-<li>Resgen - .properties -&gt; .resources
-<li>Type Library Exporter (TlbExp.exe) .dll -&gt; .tlb
-<li>TlbImp.exe Type Library Importer 
-<li>RegAsm.exe Assembly Registration Tool .dll -&gt; .reg | registration
-<li>WebServiceUtil -SOAP proxy import, SDL generation tool
+<li>csc - csharp compiler - *.csc -&gt; output</li>
+<li>ilasm - IL assembler - *.il -&gt;.exe or .dll</li>
+<li>ResX - ResXToResources.exe .resx -&gt; .resources</li>
+<li>al - assembly linker (.dll) -&gt;</li>
+<li>Signcode - .exe + keys -&gt; .exe</li>
+<li>Resgen - .properties -&gt; .resources</li>
+<li>Type Library Exporter (TlbExp.exe) .dll -&gt; .tlb</li>
+<li>TlbImp.exe Type Library Importer </li>
+<li>RegAsm.exe Assembly Registration Tool .dll -&gt; .reg | registration</li>
+<li>WebServiceUtil -SOAP proxy import, SDL generation tool</li>
 </ol>
 
 <h2>Ant Wrapper for net tasks</h2>
@@ -63,27 +67,27 @@
 
 The esoteric tasks can then supported on demand by those who need them. 
 The initial .net tasks should provide a foundation for that demand creation 
-to be simple. 
+to be simple. </p>
 
 <h2>Plan</h2>
 
 <ol>
 
 <li>code up C sharp task and distribute for feedback &amp; identify possible
-aid
-<li>Use for a real end to end development task
-<li>Add the next task I need (whatever that is)
-<li>Refactor to produce a base class for .net tasks
-<li>Leave it other people write all the other tasks
+aid</li>
+<li>Use for a real end to end development task</li>
+<li>Add the next task I need (whatever that is)</li>
+<li>Refactor to produce a base class for .net tasks</li>
+<li>Leave it other people write all the other tasks</li>
 </ol>
 
 <h2>Risks</h2>
 <ul>
 <li>
 The .net SDK is unstable; the next builds will change the commands, arguments 
-and behaviours. Probability: 100%. Impact: 2 days.
+and behaviours. Probability: 100%. Impact: 2 days.</li>
 <li>Portable tasks turn out to be harder than envisaged 
- (=reworking if/when non Win32 .net build tools appear)
+ (=reworking if/when non Win32 .net build tools appear)</li>
 
 </ul>
 
@@ -93,22 +97,22 @@
 To use the net tasks one needs
 <ul>
 
-<li> A Win2K box (or any other platform which supports the .net build tools)
+<li> A Win2K box (or any other platform which supports the .net build tools)</li>
 
-<li> JavaVM - Java1.1 or later; Java1.3 recommended.
+<li> JavaVM - Java1.1 or later; Java1.3 recommended.</li>
 
 <li> Ant downloaded and the environment and path variables set up so 
-that typing 'ant' invokes ant via a batch file.
+that typing 'ant' invokes ant via a batch file.</li>
 
 <li> An XML parser for ant. The usual distributions include an appropriate 
-version parser.jar and jaxp.jar.
+version parser.jar and jaxp.jar.</li>
 
 <li> the .net tasks archive (dotnettasks.jar) included in the
- ant\lib directory
+ ant\lib directory</li>
 
-<li> The .net sdk installed with the binaries on the path. (Test: type CSC)
+<li> The .net sdk installed with the binaries on the path. (Test: type CSC)</li>
 
-<li> A build.xml file to describe the build process
+<li> A build.xml file to describe the build process</li>
 </ul>
 
 <hr>
@@ -121,31 +125,30 @@
 primarily because the automatic reference feature references libraries
 only found in the new SDK version.  
 <p>
-External changes
+External changes</p>
 <ul>
-<li>Recursive inclusion of .cs and .il files
+<li>Recursive inclusion of .cs and .il files</li>
 
-<li>Documentation enhanced, includes examples and details of all parameters
+<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. 
+ 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> An 'extraoptions' attribute enables the build file to include any CSC options
-which are not explicitly supported in the CSC task. 
+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>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>Removed throws clause from methods which can't throw exceptions 
+effort was required to revert some (but not all) changes.</li>
+<li>Removed throws clause from methods which can't throw exceptions </li>
 </ul>
 
 The test harness has been expanded to include unicode source file  
@@ -173,18 +176,17 @@
 <p>
 All parameters are optional: &lt;csc/&gt; should suffice to produce a debug
 build of all *.cs files. References to external files do require explicit 
-enumeration, so are one of the first attributes to consider adding. 
+enumeration, so are one of the first attributes to consider adding. </p>
 
 <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, 
+The task is a directory based task, so attributes like <b>includes=&quot;**/*.cs&quot;</b> and 
+<b>excludes=&quot;broken.cs&quot;</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 <b>'outfile'</b> seems prudent. 
+Specifying the output file with <b>'outfile'</b> seems prudent. </p>
 
-<p>
 
 <table border="1" cellpadding="2" cellspacing="0">
   <tr>
@@ -194,30 +196,30 @@
   </tr>
 
 <tr>
-    <td valign="top">additionalModules
-    <td valign="top">Semicolon separated list of modules to refer to
+    <td valign="top">additionalModules</td>
+    <td valign="top">Semicolon separated list of modules to refer to</td>
     </tr>
   <tr>
     <td valign="top">defaultexcludes</td>
     <td valign="top">indicates whether default excludes should be used or not
       </td>
-    <td valign="top">"true"(default) or "false"
+    <td valign="top">&quot;true&quot;(default) or &quot;false&quot;</td>
 	</tr>
 <tr>
-    <td valign="top">definitions
-    <td valign="top">defined constants
-    <td valign="top"> "RELEASE;BETA1"
+    <td valign="top">definitions</td>
+    <td valign="top">defined constants</td>
+    <td valign="top"> &quot;RELEASE;BETA1&quot;</td>
     </tr>
 <tr>
-    <td valign="top">debug
-    <td valign="top">include debug information
-    <td valign="top">"true"(default) or "false"
+    <td valign="top">debug</td>
+    <td valign="top">include debug information</td>
+    <td valign="top">&quot;true&quot;(default) or &quot;false&quot;</td>
     </tr>
 
 <tr>
-    <td valign="top">docFile
-    <td valign="top">name of file for documentation
-    <td valign="top">"doc.xml"
+    <td valign="top">docFile</td>
+    <td valign="top">name of file for documentation</td>
+    <td valign="top">&quot;doc.xml&quot;</td>
     </tr>
   <tr>
     <td valign="top">excludes</td>
@@ -233,14 +235,14 @@
     <td valign="top">extraOptions</td>
     <td valign="top">Any extra options which aren't explicitly 
 		supported by the CSharp task </td>
-	<td>"/warnaserror+ /baseaddress:0x12840000"
+	<td>&quot;/warnaserror+ /baseaddress:0x12840000&quot;</td>
   </tr>
 
   
 <tr>
-    <td valign="top">failOnError
-    <td valign="top">Should a failed compile halt the build?
-    <td valign="top">"true"(default) or "false"
+    <td valign="top">failOnError</td>
+    <td valign="top">Should a failed compile halt the build?</td>
+    <td valign="top">&quot;true&quot;(default) or &quot;false&quot;</td>
     </tr>
   <tr>
     <td valign="top">includes</td>
@@ -253,7 +255,7 @@
 	the common assemblies in dotnet beta1, and tells the compiler to link in
 	mscore.dll
 	</td>
-    <td valign="top">"true"(default) or "false"
+    <td valign="top">&quot;true&quot;(default) or &quot;false&quot;</td>
   </tr>
 
   <tr>
@@ -263,67 +265,68 @@
   </tr>
 
 <tr>
-    <td valign="top">incremental
-    <td valign="top">Incremental build flag. Avoid till it works
-    <td valign="top">"true" or "false"(default)
+    <td valign="top">incremental</td>
+    <td valign="top">Incremental build flag. Avoid till it works</td>
+    <td valign="top">&quot;true&quot; or &quot;false&quot;(default)</td>
     </tr>
 <tr>
-    <td valign="top">mainClass
-    <td valign="top">name of main class for executables
-    <td valign="top">"com.example.project.entrypoint"
+    <td valign="top">mainClass</td>
+    <td valign="top">name of main class for executables</td>
+    <td valign="top">&quot;com.example.project.entrypoint&quot;</td>
     </tr>
 <tr>
-    <td valign="top">optimize
-    <td valign="top">optimisation flag
-    <td valign="top">"true" or "false"(default)
+    <td valign="top">optimize</td>
+    <td valign="top">optimisation flag</td>
+    <td valign="top">&quot;true&quot; or &quot;false&quot;(default)</td>
     </tr>
 <tr>
-    <td valign="top">outputFile
-    <td valign="top">filename of output
-    <td valign="top">"example.exe"
+    <td valign="top">outputFile</td>
+    <td valign="top">filename of output</td>
+    <td valign="top">&quot;example.exe&quot;</td>
     </tr>
 <tr>
-    <td valign="top">references
-    <td valign="top">Semicolon separated list of dlls to refer to
-	<td valign="top">"mylib.dll;nunit.dll"</td>
+    <td valign="top">references</td>
+    <td valign="top">Semicolon separated list of dlls to refer to</td>
+	<td valign="top">&quot;mylib.dll;nunit.dll&quot;</td>
     </tr>
 <tr>
     <td valign="top">referenceFiles </td>
     <td valign="top">Ant Path descriptioon of references to include. 
-	Wildcards should work. 
+	Wildcards should work. </td>
 	<td valign="top"></td>
     </tr>
 	
 <tr>
-    <td valign="top">srcDir
-    <td valign="top">source directory (default = project directory)
-    <td valign="top">"."</td>
+    <td valign="top">srcDir</td>
+    <td valign="top">source directory (default = project directory)</td>
+    <td valign="top">&quot;.&quot;</td>
     </tr>
 <tr>
-    <td valign="top">targetType
-    <td valign="top">Type of target
-    <td valign="top">"exe","module","winexe" or "library"
+    <td valign="top">targetType</td>
+    <td valign="top">Type of target</td>
+    <td valign="top">&quot;exe&quot;, &quot;module&quot;, &quot;winexe&quot; or &quot;library&quot;</td>
     </tr>
 <tr>
-    <td valign="top">unsafe
-    <td valign="top">enable unsafe code
-    <td valign="top">"true" or "false"(default)
+    <td valign="top">unsafe</td>
+    <td valign="top">enable unsafe code</td>
+    <td valign="top">&quot;true&quot; or &quot;false&quot;(default)</td>
     </tr>
 <tr>
-    <td valign="top">warnLevel
+    <td valign="top">warnLevel</td>
     <td valign="top">level of warning currently between 1 and 4 with 4
-	being the strictest. 
-    <td valign="top">"1"-"4"
+	being the strictest. </td>
+    <td valign="top">&quot;1&quot;-&quot;4&quot;</td>
     </tr>
 <tr>
-    <td valign="top">win32Icon
-    <td valign="top">filename of icon to include
- 	<td valign="top">"res/myicon.ico"</td>
+    <td valign="top">win32Icon</td>
+    <td valign="top">filename of icon to include</td>
+ 	<td valign="top">&quot;res/myicon.ico&quot;</td>
    </tr>
 
 </table>
 <p>
 Example
+</p>
 <pre>&lt;csc
         optimize=&quot;true&quot;
         debug=&quot;false&quot;
@@ -340,11 +343,10 @@
 </pre>
 <hr>
 <h2> Task: ilasm </h2>
-Task to assemble .net 'Intermediate Language' files.
+<p>Task to assemble .net 'Intermediate Language' files.
 The task will only work on win2K until other platforms support csc.exe or 
 an equivalent. ilasm.exe must be on the execute path too.
-<p>
-
+</p>
 <p>
 All parameters are optional: &lt;il/&gt; should suffice to produce a debug
 build of all *.il files.
@@ -354,16 +356,16 @@
 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. 
+The task is a directory based task, so attributes like <b>includes=&quot;*.il&quot;</b> and 
+<b>excludes=&quot;broken.il&quot;</b> can be used to control the files pulled in. 
 Each file is built on its own, producing an appropriately named output file unless
 manually specified with <b>outfile</b>
+</p>
 
-<p>
 
 <table border="1" cellpadding="2" cellspacing="0">
   <tr>
@@ -372,20 +374,18 @@
     <td align="center" valign="top"><b>Example</b></td>
   </tr>
 
-
-<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>
   </tr>
 
-<tr>
-    <td valign="top">debug
-    <td valign="top">include debug information
-    <td valign="top">true (default)
+  <tr>
+    <td valign="top">debug</td>
+    <td valign="top">include debug information</td>
+    <td valign="top">true (default)</td>
     </tr>
-<tr>
+
   <tr>
     <td valign="top">excludes</td>
     <td valign="top">comma separated list of patterns of files that must be
@@ -400,13 +400,13 @@
     <td valign="top">extraOptions</td>
     <td valign="top">Any extra options which aren't explicitly 
 		supported by the ilasm task </td>
-	<td>
+	<td></td>
   </tr>
   
 <tr>
-    <td valign="top">failOnError
-    <td valign="top">Should a failed compile halt the build?
-    <td valign="top">"true"(default)
+    <td valign="top">failOnError</td>
+    <td valign="top">Should a failed compile halt the build?</td>
+    <td valign="top">&quot;true&quot;(default)</td>
     </tr>
   <tr>
     <td valign="top">includes</td>
@@ -419,45 +419,45 @@
       taken to be an include pattern</td>
   </tr>
 <tr>
-    <td valign="top">listing
+    <td valign="top">listing</td>
     <td valign="top">Produce a listing (off by default). Listings go to the
-	current output stream
-    <td valign="top">"on", "off" (default)
+	current output stream</td>
+    <td valign="top">&quot;on&quot;, &quot;off&quot; (default)</td>
     </tr>
 <tr>
-    <td valign="top">outputFile
-    <td valign="top">filename of output
-    <td valign="top">"example.exe"
+    <td valign="top">outputFile</td>
+    <td valign="top">filename of output</td>
+    <td valign="top">&quot;example.exe&quot;</td>
     </tr>
 <tr>
-    <td valign="top">owner
-    <td valign="top">restrict disassembly by setting the 'owner' string
-    <td valign="top">"secret"
+    <td valign="top">owner</td>
+    <td valign="top">restrict disassembly by setting the 'owner' string</td>
+    <td valign="top">&quot;secret&quot;</td>
     </tr>
 <tr>
-    <td valign="top">resourceFile
-    <td valign="top">name of resource file to include
-    <td valign="top">"resources.res"
+    <td valign="top">resourceFile</td>
+    <td valign="top">name of resource file to include</td>
+    <td valign="top">&quot;resources.res&quot;</td>
     </tr>
 <tr>
-    <td valign="top">srcDir
-    <td valign="top">source directory (default = project directory)
-    <td valign="top">
+    <td valign="top">srcDir</td>
+    <td valign="top">source directory (default = project directory)</td>
+    <td valign="top"></td>
     </tr>
 <tr>
-    <td valign="top">targetType
-    <td valign="top">Type of target. library means DLL is output. 
-    <td valign="top">"exe"(default),"library"
+    <td valign="top">targetType</td>
+    <td valign="top">Type of target. library means DLL is output. </td>
+    <td valign="top">&quot;exe&quot;(default), &quot;library&quot;</td>
     </tr>
 <tr>
-    <td valign="top">verbose
-    <td valign="top">output progress messages
-    <td valign="top">"on", "off" (default)
+    <td valign="top">verbose</td>
+    <td valign="top">output progress messages</td>
+    <td valign="top">&quot;on&quot;, &quot;off&quot; (default)</td>
     </tr>
 
 </table>
 <p>
-Example
+Example</p>
 <pre>&lt;ilasm
         outputFile=&quot;app.exe&quot;
         verbose=&quot;on&quot;
diff --git a/docs/manual/OptionalTasks/ejb.html b/docs/manual/OptionalTasks/ejb.html
new file mode 100644
index 0000000..3527a3e
--- /dev/null
+++ b/docs/manual/OptionalTasks/ejb.html
@@ -0,0 +1,857 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant 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>Tim Fennell (<a href="mailto:tfenne@rcn.com">tfenne@rcn.com</a>)</li>
+  <li>Conor MacNeill (<a href="mailto:conor@cortexebusiness.com.au">conor@cortexebusiness.com.au</a>)</li>
+</ul>
+
+<p>Version 1.1 - 2000/07/18</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. At present the tasks support
+<a href="http://www.bea.com" target="_top">Weblogic</a> 4.5.1 and 5.1 EJB servers. 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>Application Servers</td></tr>
+ <tr><td><a href="#ddcreator">ddcreator</a></td><td>Weblogic 4.5.1</td></tr>
+ <tr><td><a href="#ejbc">ejbc</a></td><td>Weblogic 4.5.1</td></tr>
+ <tr><td><a href="#wlrun">wlrun</a></td><td>Weblogic 4.5.1, 5.1 &amp; 6.0</td></tr>
+ <tr><td><a href="#wlstop">wlstop</a></td><td>Weblogic 4.5.1, 5.1 &amp; 6.0</td></tr>
+ <tr><td><a href="#ejbjar">ejbjar</a></td><td>Weblogic 5.1 &amp; 6.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 serialised 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 serialised 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 serialised 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 serialised 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 serialised 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
+                     classfiles of the bean, home interface, remote interface, etc of the bean being
+                     processed.</td>
+    <td valign="top" align="center">No</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="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 qwhere 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">args</td>
+    <td valign="top">Additional argument string passed to the Weblogic instance.</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 comment.</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 welstop 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 EJB1.1 jar files. Support is 
+currently provided for 'vanilla' EJB1.1 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>an element or building Weblogic 5.1/6.0 session/entity beans using the 
+      weblogic.ejbc tool.</li>
+  <li>an element for building TOPLink for WebLogic 2.5.1-enabled entity beans.</li>
+</ul>
+
+<p>This task supports two approaches to creating ejb jar files. The first 
+approach assumes a particular naming convention for deployment descriptor files. 
+For an Account bean, for example, the deployment descriptor would be named 
+<code>Account-ejb-jar.xml</code>. This naming convention allows the task to 
+distinguish deployment descriptors without relying on their positioning within a 
+source tree. It is also used to derive the name of the .jar file which is 
+generated. For the example this would be <code>Account.jar</code>. Vendor 
+specific files are assumed to be named in a similar fashion. The deployment 
+descriptor file which defines additional weblogic specific information for the 
+above bean would be <code>Account-weblogic-ejb-jar.xml</code>. The second 
+approach does not require a naming convention. This approach uses a specified a 
+jar name for the resultant ejb jar. If the jar name is present, then no naming 
+convention is required. If the jar name is not specified, then the default 
+naming convention is expected for the deployment descriptor files.</p>
+
+<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 EJB1.1 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 jarcan 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>
+
+<h3>Parameters:</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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. 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</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>
+</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 
+othe rrespects the behaviour is the same as the classpath attribute.</p>
+
+<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 
+FileSet, so it can either reference a fileset declared elsewehere or it can be 
+defined in-place with the approrpiate &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>Weblogic element</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.</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 the ejbdtd attribute in
+                     preference to this one, anyway.
+                     </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 ne wmethod 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>
+</table>
+
+<p>The weblogic nested element itself supports two nested elements &lt;classpath&gt; and 
+&lt;wlclasspath&gt; which are used to set the respective classpaths. These nested elements
+are useful when setting up class paths using reference Ids.</p>
+
+<h3>TOPLink for Weblogic element</h3>
+
+<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 please 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
+
+<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>
+
+
+</body>
+
+</html>
+
+
diff --git a/docs/manual/OptionalTasks/ftp.html b/docs/manual/OptionalTasks/ftp.html
new file mode 100644
index 0000000..d6e04b9
--- /dev/null
+++ b/docs/manual/OptionalTasks/ftp.html
@@ -0,0 +1,224 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="ftp">FTP</a></h2>
+<h3>Description</h3>
+<p><b>Note:</b> The ftp-task uses the NetComponents-Package which you will need to download from
+<a href="http://www.savarese.org" target="_top">http://www.savarese.org</a> and add to your classpath.</p>
+<p>The ftp task implements a basic FTP client that can send, receive,
+list, and delete files.  See below for descriptions and examples of how
+to perform each task.</p>
+<p>The ftp task makes no attempt to determine what file system syntax is
+required by the remote server, and defaults 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>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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">the directory to which to upload files on the 
+                     ftp server.</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;, and &quot;list&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>.</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">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>
+</table>
+<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>
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/javacc.html b/docs/manual/OptionalTasks/javacc.html
similarity index 96%
rename from docs/javacc.html
rename to docs/manual/OptionalTasks/javacc.html
index 511dd34..4a04afd 100644
--- a/docs/javacc.html
+++ b/docs/manual/OptionalTasks/javacc.html
@@ -10,7 +10,7 @@
 <h2><a name="javacc">JavaCC</a></h2>
 <h3>Description</h3> 
 <p>
-  Invokes the <a HREF="http://www.metamata.com/javacc/">JavaCC</a> compiler 
+  Invokes the <a HREF="http://www.metamata.com/javacc/" target="_top">JavaCC</a> compiler 
   compiler on a grammar file.
 </p>
 <p>
@@ -172,3 +172,11 @@
 </p>
 <hr>
 
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation.
+All rights
+Reserved.</p>
+
+</body>
+</html>
+
+
diff --git a/docs/manual/OptionalTasks/jjtree.html b/docs/manual/OptionalTasks/jjtree.html
new file mode 100644
index 0000000..4e76e9c
--- /dev/null
+++ b/docs/manual/OptionalTasks/jjtree.html
@@ -0,0 +1,178 @@
+<!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>
+</head>
+<body>
+
+<h2>
+<a NAME="jjtree"></a>JJTree</h2>
+
+<h3>
+Description</h3>
+Invokes the <a href="http://www.metamata.com/javacc/">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 file to a specific directory. Otherwise jjtree writes
+the generated JavaCC grammar file to the directory containing the JJTree
+grammar file.
+<p>This task only invokes JJTree if the grammar file is newer than the
+generated JavaCC file.
+<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 file 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>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"
+/></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>
+<hr>
+</body>
+</html>
+
diff --git a/docs/jlink.html b/docs/manual/OptionalTasks/jlink.html
similarity index 96%
rename from docs/jlink.html
rename to docs/manual/OptionalTasks/jlink.html
index 7da42aa..ce26a07 100644
--- a/docs/jlink.html
+++ b/docs/manual/OptionalTasks/jlink.html
@@ -54,7 +54,7 @@
 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="#directorybasedtasks">directory based tasks</a>, on how the
+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>
 
@@ -83,7 +83,7 @@
    <tr>
      <td valign="top">mergefiles</td>
      <td valign="top">files to be merged into the output, if possible.</td>
-     <td valign="middle" align="middle" rowspan="2">At least one of 
+     <td valign="middle" align="center" rowspan="2">At least one of 
 mergefiles or addfiles</td>
    </tr>
    <tr>
diff --git a/docs/junit.html b/docs/manual/OptionalTasks/junit.html
similarity index 93%
rename from docs/junit.html
rename to docs/manual/OptionalTasks/junit.html
index 17c8a70..b5efdf8 100644
--- a/docs/junit.html
+++ b/docs/manual/OptionalTasks/junit.html
@@ -75,38 +75,40 @@
 <h3><a name="nested">Nested Elements</a></h3>
 
 <p><code>junit</code> supports a nested <code>&lt;classpath&gt;</code>
-element, that represents a <a href="index.html#path">PATH like
+element, that represents a <a href="../using.html#path">PATH like
 structure</a>.</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>
+VM via nested <code>&lt;jvmarg&gt;</code> attributes, for example:
 
-<pre><blockquote>
+<pre>
 &lt;junit fork=&quot;yes&quot;&gt;
   &lt;jvmarg value=&quot;-Djava.compiler=NONE&quot;/&gt;
   ...
 &lt;/junit&gt;
-</blockquote></pre>
+</pre>
+
 would run the test in a VM without JIT.</p>
 
 <p><code>&lt;jvmarg&gt;</code> allows all attributes described in <a
-href="index.html#arg">Command line arguments</a>.</p>
+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).
-The attributes for this element are the same as for <a href="index.html#env">environment variables</a>.
+The attributes for this element are the same as for <a href="../CoreTasks/exec.html#env">environment variables</a>.
 
-<pre><blockquote>
+<pre>
 &lt;junit fork=&quot;no&quot;&gt;
   &lt;sysproperty key=&quot;basedir&quot; value=&quot;${basedir}&quot;/&gt;
   ...
 &lt;/junit&gt;
-</blockquote></pre>
+</pre>
+
 would run the test in ANT's VM and make the <code>basedir</code> property
 available to the test.</p>
 
@@ -221,7 +223,7 @@
 
 <p><code>batchtest</code> collects the included files from any number
 of nested <a
-href="index.html#fileset"><code>&lt;fileset&gt;</code></a>s. It then
+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>
 
@@ -271,29 +273,30 @@
 <code>&lt;formatter&gt;</code> elements.</p>
 
 <h3>Examples</h3>
-<pre><blockquote>
+
+<p><pre>
 &lt;junit&gt;
   &lt;test name="my.test.TestCase" /&gt;
 &lt;/junit&gt;
-</pre></blockquote>
+</pre>
 
-<p>Runs the test defined in <code>my.test.TestCase</code> in the same
+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><blockquote>
+<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></blockquote>
+</pre>
 
-<p>Runs the test defined in <code>my.test.TestCase</code> in a
+Runs the test defined in <code>my.test.TestCase</code> in a
 separate VM.  At the end of the test a single 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><blockquote>
+<p><pre>
 &lt;junit printsummary="yes" haltonfailure="yes"&gt;
   &lt;classpath&gt;
     &lt;pathelement location="${build.tests}" /&gt;
@@ -309,13 +312,13 @@
   &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" /&lt;
+      &lt;exclude name="**/AllTests.java" /&gt;
     &lt;/fileset&gt;
   &lt;/batchtest&gt;
 &lt;/junit&gt;
-</pre></blockquote>
+</pre>
 
-<p>Runs <code>my.test.TestCase</code> in the same VM (ignoring the
+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>.</p>
diff --git a/docs/manual/OptionalTasks/junitreport.html b/docs/manual/OptionalTasks/junitreport.html
new file mode 100644
index 0000000..435dc90
--- /dev/null
+++ b/docs/manual/OptionalTasks/junitreport.html
@@ -0,0 +1,118 @@
+<html>
+<head>
+<title>JUnitReport</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.
+<h3>Requirements</h3>
+<p>You need&nbsp; <a href="http://xml.apache.org/xalan/">Xalan 1</a> to use this
+task or use the Xalan1 compatibility jar of <a href="http://xml.apache.org/xalan-j/">Xalan2</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">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="index.html#fileset"><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:
+      <p>For the noframes format, only the stylesheet overview-summary.xsl is
+      used.</p>
+      <p>For the frames format, the result will be javadoc-like. List of package
+      will be in top left frame, the list of classes in bottom left frame and
+      the details/summary in the main window.&nbsp; It uses the following XSLs:</p>
+      <ul>
+        <li><tt>all-packages.xsl</tt> - creates an <i>all-packages.html</i> file that
+          contains the list of all packages (top-left frame) with links to their
+          corresponding <i>package-summary.html</i> files in their respective
+          location (package name matches path name)</li>
+        <li><tt>all-classes.xsl</tt> - creates an <i> all-classes.html</i> file that contains the
+          whole list of classes in all packages with links to their
+          corresponding <i>&lt;classname&gt;-details.html</i> in their
+          respective package directory.</li>
+        <li><tt>overview-packages.xsl</tt> - creates an <i>overview-packages.html</i>
+          that makes a summary of all packages and classes not belonging to a
+          package.</li>
+        <li><tt>class-details.xsl</tt> - creates a detailed page about the testcases of a
+          testsuite. This this xsl will be applied on all testsuites and written
+          to the <i>&lt;classname&gt;-details.html</i> file located in their
+          respective package directory. </li>
+        <li><tt>package-summary.xsl</tt> - create a testsuite summary for a package. This
+          will be written to <i> package-summary.html</i> in its corresponding package
+          directory. </li>
+        <li><tt>classes-list.xsl</tt> - creates the list of classes belonging to a
+          specific package. This will be written to classes-list.html&nbsp; in
+          its corresponding package directory.</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>
+  <tr>
+    <td valign="top">extension</td>
+    <td valign="top">The extension of the generated files, they must include the
+      dot (ex: .html)</td>
+    <td align="center" valign="top">No. Default to .html</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>
+
+</body>
+
+</html>
diff --git a/docs/manual/OptionalTasks/mparse.html b/docs/manual/OptionalTasks/mparse.html
new file mode 100644
index 0000000..49436b0
--- /dev/null
+++ b/docs/manual/OptionalTasks/mparse.html
@@ -0,0 +1,117 @@
+<!-- saved from url=(0022)http://internet.e-mail -->
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>MParse Task</title>
+</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="index.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="index.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="index.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>
+
+
diff --git a/docs/native2ascii.html b/docs/manual/OptionalTasks/native2ascii.html
similarity index 91%
rename from docs/native2ascii.html
rename to docs/manual/OptionalTasks/native2ascii.html
index e711b62..816fa54 100644
--- a/docs/native2ascii.html
+++ b/docs/manual/OptionalTasks/native2ascii.html
@@ -19,32 +19,32 @@
       <em>includes</em> and <em>excludes</em> attributes.
       For more information on file matching patterns,
       see the section on
-      <a href="index.html#directorybasedtasks">directory based tasks</a>.
+      <a href="index.html../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="index.html#identity-mapper">identity mapper</a> will be used.
+      <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="index.html#fileset">File Set</a>,
+      This task forms an implicit <a href="index.html../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" cellpading="2" cellspacing="0">
+    <table border="1" cellpadding="2" cellspacing="0">
       <tr>
         <td><b>Attribute</b></td>
         <td><b>Description</b></td>
-        <td><b>Required<b></td>
+        <td><b>Required</b></td>
       </tr>
       <tr>
         <td>reverse</td>
diff --git a/docs/manual/OptionalTasks/netrexxc.html b/docs/manual/OptionalTasks/netrexxc.html
new file mode 100644
index 0000000..cc4530d
--- /dev/null
+++ b/docs/manual/OptionalTasks/netrexxc.html
@@ -0,0 +1,277 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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</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 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 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">Yes</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,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/perforce.html b/docs/manual/OptionalTasks/perforce.html
similarity index 92%
rename from docs/perforce.html
rename to docs/manual/OptionalTasks/perforce.html
index 11b68fa..ba66244 100644
--- a/docs/perforce.html
+++ b/docs/manual/OptionalTasks/perforce.html
@@ -18,14 +18,14 @@
 </ul>
 <br>
 <h2><a name="intro">Introduction</a></h2>
-<p>These tasks provide an interface to the <a href="http://www.perforce.com">Perforce</a> SCM.
+<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">oro 2.0</a> regular
+<p><b>Note:</b> These tasks require the <a href="http://jakarta.apache.org/oro" target="_top">oro 2.0</a> regular
 expression package. Simply download this package and copy the jakarta-oro-2.0.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>
@@ -33,7 +33,7 @@
 
 
 <h2><a name="tasks">The Tasks</a></h2>
-<ul>
+
 <table border="0" cellspacing="0" cellpadding="3">
     <tr>
         <td><a href="#p4sync">P4Sync</a></td>
@@ -42,21 +42,24 @@
     <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>
 </table>
-</ul>
 
 <h3>General P4 Properties</h3>
 <p>Each p4 task requires a number of settings, either through build-wide properties, individual attributes 
@@ -107,9 +110,9 @@
 <h3>Examples</h3>
 <p>Setting in the environment:-</p>
 <p>
-(Unix csh)
+(Unix csh)</p>
 <pre>setenv P4PORT myperforcebox:1666</pre>
-(Unix sh et al)
+<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>
@@ -124,14 +127,14 @@
 	.
 /&gt;
 </pre>
-</p>
+
 <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/">Perforce website</a>.
+available from the <a href="http://www.perforce.com/" target="_top">Perforce website</a>.
 </p>
 
 <h3>Taskdefs</h3>
-<p>Standard taskdefs (for you to copy'n'paste)
+<p>Standard taskdefs (for you to copy'n'paste)</p>
 <pre>
     &lt;taskdef name=&quot;p4sync&quot; classname=&quot;org.apache.tools.ant.taskdefs.optional.perforce.P4Sync&quot; /&gt;
     &lt;taskdef name=&quot;p4change&quot; classname=&quot;org.apache.tools.ant.taskdefs.optional.perforce.P4Change&quot; /&gt;
@@ -143,10 +146,10 @@
 
 <hr>
 <h2>Task Descriptions</h2>
-<h2><a name="#p4sync">P4Sync</a></h2>
+<h2><a name="p4sync">P4Sync</a></h2>
 <h3>Description:</h3>
-<p>Synchronise the current workspace with the depot.</p>
-</p>
+<p>Synchronize the current workspace with the depot.</p>
+
 <h3>Parameters</h3>
 <table border="1" cellpadding="2" cellspacing="0">
   <tr>
@@ -174,7 +177,7 @@
 
 
 
-<h2><a name="#p4change">P4Change</a></h2>
+<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 P4Submit or P4Edit.
@@ -201,7 +204,7 @@
 
 
 
-<h2><a name="#p4edit">P4Edit</a></h2>
+<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.
@@ -237,7 +240,7 @@
 
 
 
-<h2><a name="#p4submit">P4Submit</a></h2>
+<h2><a name="p4submit">P4Submit</a></h2>
 <h3>Description:</h3>
 <p>Submit a changelist, usually obtained from P4Change.
 </p>
@@ -263,7 +266,7 @@
 
 
 
-<h2><a name="#p4have">P4Have</a></h2>
+<h2><a name="p4have">P4Have</a></h2>
 <h3>Description:</h3>
 <p>List handy file info reflecting the current client contents.
 </p>
@@ -289,7 +292,7 @@
 
 
 
-<h2><a name="#p4label">P4Label</a></h2>
+<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>
@@ -329,18 +332,18 @@
 <hr>
 
 
-<h2><a name="#changes">Change History</a></h2>
+<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>
+    <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>
+    <td valign="top">Initial Release donated to ASF :-)</td>
 </tr>
 <tr>
     <td valign="top">Jan 2001</td>
diff --git a/docs/propertyfile.html b/docs/manual/OptionalTasks/propertyfile.html
similarity index 60%
rename from docs/propertyfile.html
rename to docs/manual/OptionalTasks/propertyfile.html
index 37bab1d..786f37f 100644
--- a/docs/propertyfile.html
+++ b/docs/manual/OptionalTasks/propertyfile.html
@@ -1,3 +1,4 @@
+<html>
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Ant PropertyFile Task</title>
@@ -20,19 +21,19 @@
 <ul>
   <li><a href="#introduction">Introduction</a></li>
   <li><a href="#proptask">PropertyFile Task</a></li>
-  <li><a href="#entrytask">Entry 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.  Thes is very useful
+<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.  Work is being done to make this task a bit more "human friendly".
+are lost.  Work is being done to make this task a bit more &quot;human friendly&quot;.</p>
 
 <hr>
-<h2><a name="tasks">PropertyFile Task</a></h2>
+<h2><a name="proptask">PropertyFile Task</a></h2>
 <h3>Parameters</h3>
 <table border="1" cellpadding="2" cellspacing="0">
 <tr>
@@ -53,9 +54,9 @@
 </table>
 
 <h3>Parameters specified as nested elements</h3>
-<h4>Entry</h4>
+<h4><a name="entryElement">Entry</a></h4>
 <p>Use nested <code>&lt;entry&gt;</code>
-elements to specify actual modifcations to the property file itself
+elements to specify actual modifcations to the property file itself</p>
 <table border="1" cellpadding="2" cellspacing="0">
   <tr>
     <td valign="top"><b>Attribute</b></td>
@@ -79,7 +80,7 @@
   </tr>
   <tr>
     <td valign="top">operation</td>
-    <td valign="top">"+" or "=" (default) for all datatypes<br>"-" (for date and int only).<br>
+    <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>
@@ -87,68 +88,69 @@
     <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, two additional keywordsw are allowed: "now" or "never".</td>
+                     For type date, two additional keywords are allowed: &quot;now&quot; or &quot;never&quot;.</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 paresed and formated accordingly.</td>
+                     be parsed and formatted accordingly.</td>
     <td valign="top" align="center">No</td>
   </tr>
 </table>
 <h3>Examples</h3>
 
-<p>The following changes the my.properties file.  Assume my.properties look like:<br>
-<p>
-<ul># A comment<br>
-akey=novalue<br></ul>
+<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>
-After running, the file would now look like
+<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>
-<ul>#Thu Nov 02 23:41:47 EST 2000<br>
-akey=avalue<br>
-adate=2000/11/02 23\:41<br>
-anint=1<br>
-formated.int=0014<br>
-formated.date=028 17\:34<br></ul>
-</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>
 
-<pre><blockquote>&lt;propertyfile
-    file="my.properties"
-    comment"My properties" &gt;
-  &lt;entry  key="akey" value="avalue" /&gt;
-  &lt;entry  key="adate" type="date" value="now"/&gt;
-  &lt;entry  key="anint" type="int" operation="+"/&gt;
-  &lt;entry  key="formated.int" type="int" default="0013" operation="+" pattern="0000"/&gt;
-  &lt;entry  key="formated.date" type="date" value="now" pattern="DDD HH:mm"/&gt;
+<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;
-</blockquote></pre>
+</pre></blockquote>
 <p>
-To produce dates relative from today :
-<pre><blockquote>&lt;propertyfile
-    file="my.properties"
-    comment"My properties" &gt;
-  &lt;entry  key="formated.date-1"
-      type="date" default="now" pattern="DDD"
-      operation="-" value="1"/&gt;
-  &lt;entry  key="formated.tomorrow"
-      type="date" default="now" pattern="DDD"
-      operation="+" value="1"/&gt;
+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;
-</blockquote></pre>
-</p>
+</pre></blockquote>
+
 <p>
-Concatenation of strings :
-<pre><blockquote>&lt;propertyfile
-    file="my.properties"
-    comment"My properties" &gt;
-  &lt;entry  key="progress" default="" operation="+" value="."/&gt;
+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;
-</blockquote></pre>
-Each time called, a "." will be appended to "progress"
+</pre></blockquote>
+<p>Each time called, a &quot;.&quot; will be appended to &quot;progress&quot;
 </p>
 </body>
 </html>
diff --git a/docs/manual/OptionalTasks/renameextensions.html b/docs/manual/OptionalTasks/renameextensions.html
new file mode 100644
index 0000000..430b311
--- /dev/null
+++ b/docs/manual/OptionalTasks/renameextensions.html
@@ -0,0 +1,108 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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 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 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,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/OptionalTasks/script.html b/docs/manual/OptionalTasks/script.html
new file mode 100644
index 0000000..fdb8a26
--- /dev/null
+++ b/docs/manual/OptionalTasks/script.html
@@ -0,0 +1,121 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="script">Script</a></h2>
+<h3>Description</h3>
+<p>Execute a script in a 
+  <a href="http://oss.software.ibm.com/developerworks/opensource/bsf/" target="_top">BSF</a> supported language.</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.</p>
+<p>Scripts can do almost anything a task written in Java could do.</p>
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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 BSF language</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>
+</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>
+
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/OptionalTasks/sound.html b/docs/manual/OptionalTasks/sound.html
new file mode 100644
index 0000000..1e35997
--- /dev/null
+++ b/docs/manual/OptionalTasks/sound.html
@@ -0,0 +1,95 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></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>
+<p>
+To specify the sound-files or the sound-file directories, use the
+nested <code>&lt;success&gt;</code> and <code>&lt;fail&gt;</code> 
+elements:</p>
+<blockquote>
+<pre>
+&lt;success&gt;     the path to a sound-file directory, or the name of a
+              specific sound-file, to be played if the build succeeded.
+&lt;fail&gt;        the path to a sound-file directory, or the name of a
+              specific sound-file, to be played if the build succeeded.
+</pre>
+</blockquote>
+
+<h3>Examples</h3>
+<blockquote>
+<pre>
+&lt;target name=&quot;fun&quot; if=&quot;fun&quot; unless=&quot;fun.done&quot;&gt;
+  &lt;sound loops=&quot;2&quot;&gt;
+    &lt;success source=&quot;${user.home}/sounds/bell.wav&quot;/&gt;
+    &lt;fail source=&quot;${user.home}/sounds/ohno.wav&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>
+    &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; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/OptionalTasks/stylebook.html b/docs/manual/OptionalTasks/stylebook.html
new file mode 100644
index 0000000..e1d39f2
--- /dev/null
+++ b/docs/manual/OptionalTasks/stylebook.html
@@ -0,0 +1,63 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</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>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/OptionalTasks/telnet.html b/docs/manual/OptionalTasks/telnet.html
new file mode 100644
index 0000000..9633777
--- /dev/null
+++ b/docs/manual/OptionalTasks/telnet.html
@@ -0,0 +1,100 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="telnet">Telnet</a></h2>
+<h3>Description</h3>
+Task to automate a remote telnet session. The task uses nested &lt;read&gt; to indicate strings to wait for, and  &lt;write&gt; 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>
+<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>No</td>
+  </tr>
+  <tr>
+     <td>password</td>
+     <td>the login password to use on the telnet server.</td>
+     <td>No</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>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>
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/OptionalTasks/test.html b/docs/manual/OptionalTasks/test.html
new file mode 100644
index 0000000..880be1f
--- /dev/null
+++ b/docs/manual/OptionalTasks/test.html
@@ -0,0 +1,72 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</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>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>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; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/OptionalTasks/vssget.html b/docs/manual/OptionalTasks/vssget.html
new file mode 100644
index 0000000..b639c2e
--- /dev/null
+++ b/docs/manual/OptionalTasks/vssget.html
@@ -0,0 +1,91 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="vssget">VssGet</a></h2>
+<h3>Description</h3>
+Task to perform GET commands to Microsoft Visual Source Safe.
+<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>login</td>
+     <td>username,password</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>vsspath</td>
+     <td>SourceSafe path</td>
+     <td>Yes</td>
+  </tr>
+  <tr>
+     <td>localpath</td>
+     <td>Override the working directory and get to the specified path</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>No</td>
+  </tr>
+  <tr>
+     <td>date</td>
+     <td>a date stamp to get at</td>
+     <td>No</td>
+  </tr>
+  <tr>
+     <td>label</td>
+     <td>a label to get for</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>
+</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/aproject</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>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/coretasklist.html b/docs/manual/coretasklist.html
new file mode 100644
index 0000000..92c1d6a
--- /dev/null
+++ b/docs/manual/coretasklist.html
@@ -0,0 +1,70 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Concepts and Types</h3>
+<a href="dirtasks.html">Directory Based Tasks</a><br>
+<a href="CoreTypes/patternset.html">Patternset</a><br>
+<a href="CoreTypes/fileset.html">Fileset</a><br>
+<a href="CoreTypes/mapper.html">File Mappers</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</a><br>
+<a href="CoreTasks/available.html">Available</a><br>
+<a href="CoreTasks/chmod.html">Chmod</a><br>
+<a href="CoreTasks/copy.html">Copy</a><br>
+<a href="CoreTasks/copydir.html">Copydir</a><br>
+<a href="CoreTasks/copyfile.html">Copyfile</a><br>
+<a href="CoreTasks/cvs.html">Cvs</a><br>
+<a href="CoreTasks/delete.html">Delete</a><br>
+<a href="CoreTasks/deltree.html">Deltree</a><br>
+<a href="CoreTasks/echo.html">Echo</a><br>
+<a href="CoreTasks/exec.html">Exec</a><br>
+<a href="CoreTasks/execon.html">ExecOn</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/gunzip.html">GUnzip</a><br>
+<a href="CoreTasks/gzip.html">GZip</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/Javadoc2</a><br>
+<a href="CoreTasks/mail.html">Mail</a><br>
+<a href="CoreTasks/mkdir.html">Mkdir</a><br>
+<a href="CoreTasks/move.html">Move</a><br>
+<a href="CoreTasks/patch.html">Patch</a><br>
+<a href="CoreTasks/property.html">Property</a><br>
+<a href="CoreTasks/rename.html">Rename</a><br>
+<a href="CoreTasks/replace.html">Replace</a><br>
+<a href="CoreTasks/rmic.html">Rmic</a><br>
+<a href="CoreTasks/signjar.html">SignJar</a><br>
+<a href="CoreTasks/sql.html">Sql</a><br>
+<a href="CoreTasks/style.html">Style</a><br>
+<a href="CoreTasks/tar.html">Tar</a><br>
+<a href="CoreTasks/taskdef.html">Taskdef</a><br>
+<a href="CoreTasks/touch.html">Touch</a><br>
+<a href="CoreTasks/tstamp.html">Tstamp</a><br>
+<a href="CoreTasks/unzip.html">Unjar</a><br>
+<a href="CoreTasks/untar.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/war.html">War</a><br>
+<a href="CoreTasks/zip.html">Zip</a><br>
+</body>
+</html>
+
diff --git a/docs/manual/credits.html b/docs/manual/credits.html
new file mode 100644
index 0000000..3faa792
--- /dev/null
+++ b/docs/manual/credits.html
@@ -0,0 +1,46 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<div align="center">
+<h1>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>Jacques Bergeron (<a href="mailto:jacques.bergeron@dogico.com">jacques.bergeron@dogico.com</a>)</li>
+  <li>Stefan Bodewig (<a href="mailto:stefan.bodewig@epost.de">stefan.bodewig@epost.de</a>)</li>
+  <li>Patrick Chanezon (<a href="mailto:chanezon@netscape.com">chanezon@netscape.com</a>)</li>
+  <li>James Duncan Davison (<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>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>Conor MacNeill (<a href="mailto:conor@cortexebusiness.com.au">conor@cortexebusiness.com.au</a>)</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>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>
+</ul>
+
+<center>
+<p>Version: @VERSION@<br>
+$Id$</p>
+</center>
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/develop.html b/docs/manual/develop.html
new file mode 100644
index 0000000..d767fa1
--- /dev/null
+++ b/docs/manual/develop.html
@@ -0,0 +1,204 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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>.</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. The type of the attribute can be:
+<ul>
+<li>
+<code>String</code>
+</li>
+<li>
+any primitive type (they are converted for you from their String-representation
+in the buildfile)
+</li>
+<li>
+boolean &#150; your method will be passed the value 
+<i>true</i> if the value specified in the buildfile is one of <code>true</code>,
+<code>yes</code>, or <code>on</code>)
+</li>
+<li>
+<code>Class</code>
+</li>
+<li>
+<code>File</code>
+(in which case the value of the attribute is interpreted relative to the 
+project's basedir)
+</li>
+<li>
+any other type that has a constructor with a single 
+<code>String</code> argument
+</li>
+</ul>
+</li>
+<li>If your task has enumerated attributes, you should consider using
+a subclass of <code>org.apache.tools.ant.types.EnumeratedAttribute</code>
+as an argument
+to your setter method. See
+<code>org/apache/tools/ant/taskdefs/FixCRLF.java</code> for
+an example.</li>
+<li>If the task should support character data, write a <code>public void 
+addText(String)</code> method.</li>
+<li>For each nested element, write a <i>create</i> or <i>add</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 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 method 
+must begin with <code>add</code>, followed by the element name.</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>
+
+<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><code>execute()</code> 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>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>
+<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 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>
+
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/dirtasks.html b/docs/manual/dirtasks.html
new file mode 100644
index 0000000..83cc0ce
--- /dev/null
+++ b/docs/manual/dirtasks.html
@@ -0,0 +1,168 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h2><a name="directorybasedtasks">Directory-based Tasks</a></h2>
+<p>Some tasks use directory trees for the task they perform.
+For example, the <a
+href="CoreTasks/javac.html">javac</a> task, which works upon a directory tree
+with <code>.java</code> files.
+Sometimes it can be very useful to work on a subset of that directory tree. This
+section describes how you can select a subset of such a directory tree.</p>
+<p>Ant gives you two ways to create a subset, both of which can be used at the same
+time:</p>
+<ul>
+  <li>Only include files/directories that match at least one pattern of a set of
+    patterns.</li>
+  <li>Exclude files/directories that match at least one pattern a set of
+    patterns.</li>
+</ul>
+<p>When both inclusion and exclusion are used, only files/directories that match
+the include patterns, and don't match the exclude patterns, are used.</p>
+<p>Patterns can be specified inside the buildfile via task attributes or
+nested elements and via external files. Each line of the external file
+is taken as a pattern that is added to the list of include or exclude 
+patterns.</p>
+<h3>Patterns</h3>
+<p>As described earlier, patterns are used for the inclusion and exclusion.
+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; &#150; 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>Examples</h3>
+<pre>  
+&lt;copy todir=&quot;${dist}&quot;>
+  &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>
+<p> This example can also be expressed using nested elements:</p>
+<pre>
+&lt;copy todir=&quot;${dist}&quot;>
+  &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>
+
+<h3>Default Excludes</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
+</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>
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/feedback.html b/docs/manual/feedback.html
new file mode 100644
index 0000000..fe2f251
--- /dev/null
+++ b/docs/manual/feedback.html
@@ -0,0 +1,31 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+
+<h1><a name="feedback">Feedback</a></h1>
+<p>To provide feedback on this software, please subscribe to the 
+<a href="http://jakarta.apache.org/site/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://jakarta.apache.org/site/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,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/ide.html b/docs/manual/ide.html
new file mode 100644
index 0000000..0411b16
--- /dev/null
+++ b/docs/manual/ide.html
@@ -0,0 +1,23 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>IDE Integration</h3>
+<a href="Integration/Antidote.html">
+         Antidote<br>(in development)</a><br><br>
+<a href="http://www.dieter-bogdoll.de/java/AntRunner/">
+         AntRunner For JBuilder <br>(unbundled)</a><br><br>
+<a href="http://ant.netbeans.org/">NetBeans <br>Forte for Java <br>(unbundled)</a><br><br>
+<a href="Integration/VAJAntTool.html">VisualAge for Java</a><br><br>
+
+</body>
+</html>
+
diff --git a/docs/manual/index.html b/docs/manual/index.html
new file mode 100644
index 0000000..3b17dba
--- /dev/null
+++ b/docs/manual/index.html
@@ -0,0 +1,17 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<frameset cols="20%,80%">
+<frame src="toc.html" name="navFrame">
+<frame src="credits.html" name="mainFrame">
+</frameset>
+<noframes>
+<H2>Ant User Manual</H2>
+
+<a href="toc.html">Ant User Manual</a></noframes>
+
+</html>
diff --git a/docs/manual/install.html b/docs/manual/install.html
new file mode 100644
index 0000000..1ba7de0
--- /dev/null
+++ b/docs/manual/install.html
@@ -0,0 +1,378 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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 can be downloaded from <a
+href="http://jakarta.apache.org/builds/ant/release/v1.3/bin/">
+http://jakarta.apache.org/builds/ant/release/v1.3/bin/</a>.
+
+If you like living on the edge, you can download the latest version from <a
+href="http://jakarta.apache.org/builds/ant/nightly/">http://jakarta.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://jakarta.apache.org/builds/ant/release/v1.3/src/">
+http://jakarta.apache.org/builds/ant/release/v1.3/src/</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 
+jakarta-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://jakarta.apache.org/cvsweb/index.cgi/jakarta-ant/" target="_top">
+Ant CVS repository</a> on-line. </p>
+
+<hr>
+<h2><a name="sysrequirements">System Requirements</a></h2>
+<p>
+To build and use Ant, you must have a JAXP-compliant XML parser installed and 
+available on your classpath.</p>
+<p>
+Both the binary and source distributions of Ant include the reference 
+implementation of JAXP 1.0. Please see 
+<a href="http://java.sun.com/xml/" target="_top">http://java.sun.com/xml/</a> 
+for more information. 
+If you wish to use a different JAXP-compliant parser, you should remove
+<code>jaxp.jar</code> and <code>parser.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.1 or later. A future version of Ant will require
+JDK 1.2 or later.
+</p>
+  
+<hr>
+<h2><a name="installing">Installing Ant</a></h2>
+<p>The binary distribution of Ant consists of three directories:
+<code>bin</code>,
+<code>docs</code> and
+<code>lib</code>
+
+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. 
+
+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.</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>
+<li>If you are using Ant's optional tasks then you may need to add additional
+jars to your <code>lib</code> directory or to your CLASSPATH.
+See <a href="#librarydependencies">Library Dependencies</a>
+for for a list of jar requirements for various optional tasks.
+</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>Windows</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><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>
+
+<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 jakarta-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/optional</code>
+directory.
+See <a href="#librarydependencies">Library Dependencies</a>
+for 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.
+</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="running">Running Ant</a></h2>
+<p>Running Ant is simple, when you installed it as described in the previous
+section. Just type <code>ant</code>.</p>
+<p>When nothing is specified, Ant looks for a <code>build.xml</code>
+file in the current directory. If found, it uses that file as the
+buildfile. If you use the <code>-find</code> option,
+Ant will search for a buildfile in 
+the parent directory, and so on, until the root of the filesystem 
+has been reached. To make Ant use
+another buildfile, use the command-line
+option <code>-buildfile <i>file</i></code>,
+where <i>file</i> is the buildfile you want to use.</p>
+
+<p>You can also set properties that override properties specified in the
+buildfile (see the <a href="CoreTasks/property.html">property</a> task). 
+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.
+This can also be used to pass in the value of some environment variables.
+You can also access environment variables using the <a href="CoreTasks/property.html">
+property</a> task.
+
+Just pass <nobr><code>-DMYVAR=%MYVAR%</code></nobr> (Windows) or
+<nobr><code>-DMYVAR=$MYVAR</code></nobr> (Unix)
+to Ant &#150; you can then access
+these variables inside your buildfile as <code>${MYVAR}</code>.</p>
+
+<p>Two more options are: <nobr><code>-quiet</code></nobr>,
+which instructs Ant to print less
+information on the console when running, and
+<nobr><code>-verbose</code></nobr>, which causes Ant to print
+additional information to the console.</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 <code>&lt;project&gt;</code> tag is
+used.</p>
+
+<p>The <nobr><code>-projecthelp</code></nobr>
+option gives a list of this project's
+targets. First those with a description, then those without one.</p>
+
+<p>Command-line option summary:</p>
+<pre>ant [options] [target [target2 [target3] ...]]
+Options:
+-help                  print this message
+-projecthelp           print project help information
+-version               print the version information and exit
+-quiet                 be extra quiet
+-verbose               be extra verbose
+-debug                 print debugging information
+-emacs                 produce logging information without adornments
+-logfile <i>file</i>          use given file for log output
+-logger <i>classname</i>      the class that is to perform logging
+-listener <i>classname</i>    add an instance of class as a project listener
+-buildfile <i>file</i>        use specified buildfile
+-find <i>file</i>             search for buildfile towards the root of the filesystem and use the first one found
+-D<i>property</i>=<i>value</i>       set <i>property</i> to <i>value</i>
+</pre>
+<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 a
+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 a
+target called <code>dist</code>, setting the <code>build</code> property to the
+value <code>build/classes</code>.</p>
+
+<h3>Running Ant by Hand</h3>
+<p>If you have installed Ant in the do-it-yourself way, Ant can be started
+with:</p>
+<blockquote>
+  <pre>java -Dant.home=c:\ant org.apache.tools.ant.Main [options] [target]</pre>
+</blockquote>
+
+<p>These instructions actually do exactly the same as the <code>ant</code>
+command. The options and target are the same as when running Ant with the <code>ant</code>
+command. This example assumes you have set your classpath to include:</p>
+<ul>
+<li><code>ant.jar</code></li>
+<li>jars/classes for your XML parser</li>
+<li>the JDK's required jar/zip files</li>
+</ul>
+<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.</p>
+<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>jakarta-regexp-1.2.jar</td>
+    <td>regexp type with mappers</td>
+    <td><a href="http://jakarta.apache.org/regexp/" target="_top">jakarta.apache.org/regexp/</a></td>
+  </tr>
+  <tr>
+    <td>jakarta-oro-2.0.1.jar</td>
+    <td>regexp type with mappers and the perforce tasks</td>
+    <td><a href="http://jakarta.apache.org/oro/" target="_top">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">www.junit.org</a></td>
+  </tr>
+  <tr>
+    <td>stylebook.jar</td>
+    <td>stylebook task</td>
+    <td>CVS repository of <a href="http://xml.apache.org" target="_top">xml.apache.org</a></td>
+  </tr>
+  <tr>
+    <td>testlet.jar</td>
+    <td>test task</td>
+    <td><a href="http://java.apache.org/framework" target="_top">java.apache.org/framework</a></td>
+  </tr>
+  <tr>
+    <td>antlr.jar</td>
+    <td>antlr task</td>
+    <td><a href="http://www.antlr.org/" target="_top">www.antlr.org</a></td>
+  </tr>
+  <tr>
+    <td >bsf.jar</td>
+    <td>script task</td>
+    <td><a href="http://oss.software.ibm.com/developerworks/projects/bsf" target="_top">
+        oss.software.ibm.com/developerworks/projects/bsf</a></td>
+  </tr>
+  <tr>
+    <td>netrexx.jar</td>
+    <td>netrexx task</td>
+    <td><a href="http://www2.hursley.ibm.com/netrexx" target="_top">
+        www2.hursley.ibm.com/netrexx</a></td>
+  </tr>
+  <tr>
+    <td>rhino.jar</td>
+    <td>javascript with script task</td>
+    <td><a href="http://www.mozilla.org/" target="_top">www.mozilla.org</a></td>
+  </tr>
+  <tr>
+    <td>jpython.jar</td>
+    <td>python with script task</td>
+    <td><a href="http://www.jpython.org/" target="_top">www.jpython.org</a></td>
+  </tr>
+  <tr>
+    <td>netcomponents.jar</td>
+    <td>ftp and telnet tasks</td>
+    <td><a href="http://www.savarese.org/oro/downloads/index.html#NetComponents"
+           target="_top">www.savarese.org/oro/downloads</a></td>
+  </tr>
+</table>
+<br>
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/intro.html b/docs/manual/intro.html
new file mode 100644
index 0000000..859a8f2
--- /dev/null
+++ b/docs/manual/intro.html
@@ -0,0 +1,54 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+<h1><a name="introduction">Introduction</a></h1>
+<p>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 &#150; 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,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/optionaltasklist.html b/docs/manual/optionaltasklist.html
new file mode 100644
index 0000000..9cfbf83
--- /dev/null
+++ b/docs/manual/optionaltasklist.html
@@ -0,0 +1,42 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
+
+<h3>Optional Tasks</h3>
+<a href="OptionalTasks/dotnet.html">.NET Tasks</a><br>
+<a href="OptionalTasks/antlr.html">ANTLR</a><br>
+<a href="OptionalTasks/cab.html">Cab</a><br>
+<a href="OptionalTasks/clearcase.html">Clearcase Tasks</a><br>
+<a href="OptionalTasks/ejb.html">EJB Tasks</a><br>
+<a href="OptionalTasks/ftp.html">FTP</a><br>
+<a href="OptionalTasks/javacc.html">JavaCC</a><br>
+<a href="OptionalTasks/jjtree.html">JJTree</a><br>
+<a href="OptionalTasks/jlink.html">Jlink</a><br>
+<a href="OptionalTasks/junit.html">JUnit</a><br>
+<a href="OptionalTasks/junitreport.html">JUnitReport</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/propertyfile.html">PropertyFile</a><br>
+<a href="OptionalTasks/perforce.html">Perforce Tasks</a><br>
+<a href="OptionalTasks/renameextensions.html">RenameExtensions</a><br>
+<a href="OptionalTasks/script.html">Script</a><br>
+<a href="OptionalTasks/sound.html">Sound</a><br>
+<a href="OptionalTasks/stylebook.html">Stylebook</a><br>
+<a href="OptionalTasks/test.html">Test</a><br>
+<a href="OptionalTasks/telnet.html">Telnet</a><br>
+<a href="Integration/VAJAntTool.html#tasks">Visual Age for Java Tasks</a><br>
+<a href="OptionalTasks/vssget.html">VssGet</a><br>
+<a href="OptionalTasks/vsslabel.html">VssLabel</a><br>
+
+</body>
+</html>
+
diff --git a/docs/manual/resources.html b/docs/manual/resources.html
new file mode 100644
index 0000000..1d7b241
--- /dev/null
+++ b/docs/manual/resources.html
@@ -0,0 +1,25 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+</head>
+
+<body>
+<h1>Ant Resources</h1>
+
+<h2><a name="faq">FAQ</a></h2>
+<p>There is an on-line FAQ for Ant at <a target="_top"
+href="http://jakarta.apache.org/jyve-faq/Turbine/screen/DisplayTopics/action/SetAll/project_id/2/faq_id/16">jakarta.apache.org</a>. This
+FAQ is interactive, which means you can ask and answer questions
+on line.</p>
+<p>One of the questions popping up quite often is &quot;Is there a DTD for
+buildfiles?&quot; Please refer to the FAQ for an answer.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/docs/manual/toc.html b/docs/manual/toc.html
new file mode 100644
index 0000000..418e4b7
--- /dev/null
+++ b/docs/manual/toc.html
@@ -0,0 +1,26 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</title>
+<base target="mainFrame">
+</head>
+
+<body>
+
+<h2>Table of Contents</h2>
+<a href="intro.html">Introduction</a><br>
+<a href="install.html">Installing Ant</a><br>
+<a href="using.html">Using Ant</a><br>
+<a href="coretasklist.html" target="navFrame">Built-in Tasks</a><br>
+<a href="optionaltasklist.html" target="navFrame">Optional Tasks</a><br>
+<a href="ide.html" target="navFrame">IDE Integration</a><br>
+<a href="develop.html">Developing with Ant</a><br>
+<a href="resources.html">Ant Resources</a><br>
+<a href="LICENSE">License</a><br>
+<a href="feedback.html">Feedback</a><br><br>
+<a href="credits.html">Authors</a><br>
+
+</body>
+</html>
+
diff --git a/docs/manual/using.html b/docs/manual/using.html
new file mode 100644
index 0000000..bc74fc4
--- /dev/null
+++ b/docs/manual/using.html
@@ -0,0 +1,468 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Ant User Manual</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.</p>
+<p>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>Projects</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">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>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>Targets</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 &#150; 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>A target gets executed only once, even when more than one target
+depends on it (see the previous example).</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. 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>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.</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 &quot;init&quot;.</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>
+
+<a name="tasks">
+<h3>Tasks</h3>
+</a>
+<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 name 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 "task1" 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>Properties</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 task</a>, or might be set outside Ant. A
+property has a name and a value. 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 as <code>build/classes</code>.</p>
+
+<h3>Built-in Properties</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>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.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; and &quot;1.3&quot;.
+</pre>
+
+<h3>Example</h3>
+<pre>
+&lt;project name=&quot;MyProject&quot; default=&quot;dist&quot; basedir=&quot;.&quot;&gt;
+
+  &lt;!-- set global properties for this build --&gt;
+  &lt;property name=&quot;src&quot; value=&quot;.&quot;/&gt;
+  &lt;property name=&quot;build&quot; value=&quot;build&quot;/&gt;
+  &lt;property name=&quot;dist&quot;  value=&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;&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;&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;&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>
+
+<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 task</a>.&nbsp;</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 filter 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 &#150; 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 &#150; 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 abreviated to:</p>
+<pre>
+    &lt;classpath path=&quot;${classpath}&quot;/&gt;
+</pre>
+<p>In addition, <a href="CoreTypes/fileset.html">FileSet</a>s can be specified via
+nested <code>&lt;fileset&gt;</code> elements. 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;/classpath&gt;
+</pre>
+<p>Builds a path that holds the value of <code>${classpath}</code>,
+followed by all jar files in the <code>lib</code> directory, followed
+by the <code>classes</code> directory.</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 &#150; 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="4">Exactly one of these.</td>
+  </tr>
+  <tr>
+    <td valign="top">line</td> 
+    <td valign="top">a space-delimited list of command-line arguments.</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>
+</table>
+<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 useful if you are going to replicate
+the same snippet of XML over and over again &#150; 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 or
+<a href="#path">path-like structures</a> accept references to these
+structures as well.</p>
+
+<hr>
+<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
+
diff --git a/lib/optional/README b/lib/optional/README
index 906a1d2..c7a66ac 100644
--- a/lib/optional/README
+++ b/lib/optional/README
@@ -1,15 +1,2 @@
-The required libraries should be placed here.
-
-The dependencies are:
-
-junit.jar      - required for junit tasks, available at www.junit.org
-stylebook.jar  - required by stylebook task, available in CVS repository of xml.apache.org
-testlet.jar    - required for test task, available with Avalon via java.apache.org/framework
-jakarta-regexp-1.2.jar - required by some mappers, available at http://jakarta.apache.org/regexp/
-jakarta-oro-2.0.1.jar  - required for some mappers and the perforce tasks, available at http://jakarta.apache.org/oro/
-???antlr.jar???- required for antlr task, available at www.antlr.org
-bsf.jar        - required for script task, available at http://oss.software.ibm.com/developerworks/opensource/bsf/
-netrexx.jar    - required for netrexx task, available at http://www2.hursley.ibm.com/netrexx
-rhino.jar      - required for script task if you want to use javascript, available at www.mozilla.org
-jpython.jar    - required for script task if you want to use python, available at www.jpython.org
-netcomponents.jar - required by ftp and telnet tasks, available at http://www.savarese.org/oro/downloads/index.html#NetComponents
+Please refer to the Ant manual under Installing Ant / Library Dependencies for a list
+of the jar requirements for various optional tasks and features.
diff --git a/src/antidote/org/apache/tools/ant/gui/modules/TargetMonitor.java b/src/antidote/org/apache/tools/ant/gui/modules/TargetMonitor.java
index c2fa754..f3d582c 100644
--- a/src/antidote/org/apache/tools/ant/gui/modules/TargetMonitor.java
+++ b/src/antidote/org/apache/tools/ant/gui/modules/TargetMonitor.java
@@ -144,13 +144,17 @@
 
             if(selected != null && selected.length > 0) {
                 StringBuffer buf = new StringBuffer();
+                String name = null;
 
                 for(int i = 0; i < selected.length; i++) {
                     if(selected[i] instanceof ACSTargetElement) {
-                        if(buf.length() > 0) {
-                            buf.append(", ");
+                        name = ((ACSTargetElement)selected[i]).getName();
+                        if( buf.toString().indexOf( name ) < 0 ) {
+                            if(buf.length() > 0) {
+                                buf.append(", ");
+                            }
+                            buf.append( name );
                         }
-                        buf.append(((ACSTargetElement)selected[i]).getName());
                     }
                 }
 
diff --git a/src/antidote/org/apache/tools/ant/gui/modules/console/BuildConsole.java b/src/antidote/org/apache/tools/ant/gui/modules/console/BuildConsole.java
index 6b73535..30c926a 100644
--- a/src/antidote/org/apache/tools/ant/gui/modules/console/BuildConsole.java
+++ b/src/antidote/org/apache/tools/ant/gui/modules/console/BuildConsole.java
@@ -64,6 +64,7 @@
 import java.awt.Dimension;
 import java.awt.Color;
 import java.util.EventObject;
+import java.util.Date;
 
 /**
  * Logging console display.
@@ -78,6 +79,8 @@
     private JComboBox _logLevel = null;
     /** Display styles. */
     private ConsoleStyleContext _styles = null;
+	/** ClearLog Button. */
+	private JButton _clearLog = null;
     
 	/** 
 	 * Default ctor.
@@ -112,11 +115,33 @@
         _logLevel.setSelectedItem(LogLevelEnum.INFO);
         controls.add(_logLevel);
         
+        // Padding.
+        controls.add(Box.createHorizontalStrut(10));
+		_clearLog = new JButton(
+            context.getResources().getString(
+                getClass(), "clearLog"));
+		_clearLog.addActionListener(new ActionHandler());
+		controls.add(_clearLog);
+
         add(BorderLayout.NORTH, controls);
 
     }
 
 
+    /** 
+     * Clear the contents of the console.
+     * 
+     */
+    private void clearDisplay() {
+        Document doc = _text.getDocument();
+        try {
+            doc.remove(0, doc.getLength());
+        }
+        catch(Exception ex) {
+            // Intentionally ignored.
+        }
+    }
+
     /** Class for handling project events. */
     private class Handler implements BusMember {
         private final Filter _filter = new Filter();
@@ -132,20 +157,6 @@
         }
         
         /** 
-         * Clear the contents of the console.
-         * 
-         */
-        private void clearDisplay() {
-            Document doc = _text.getDocument();
-            try {
-                doc.remove(0, doc.getLength());
-            }
-            catch(Exception ex) {
-                // Intentionally ignored.
-            }
-        }
-
-        /** 
          * Called when an event is to be posed to the member.
          * 
          * @param event Event to post.
@@ -154,7 +165,6 @@
          */
         public boolean eventPosted(EventObject event) {
             if(event instanceof ProjectSelectedEvent) {
-                clearDisplay();
                 return true;
             }
 
@@ -164,9 +174,10 @@
 
             switch(buildEvent.getType().getValue()) {
               case BuildEventType.BUILD_STARTED_VAL:
-                  clearDisplay();
+
               case BuildEventType.BUILD_FINISHED_VAL:
-                  text = buildEvent.getType().toString();
+                  text = buildEvent.getType().toString() + 
+                      " (" + new Date().toString() + ")";
                   style = _styles.getHeadingStyle();
                   break;
               case BuildEventType.TARGET_STARTED_VAL:
@@ -205,6 +216,14 @@
             return true;
         }
     }
+
+	/** Handles press of the ClearLog button. */
+	private class ActionHandler implements java.awt.event.ActionListener {
+		public void actionPerformed(java.awt.event.ActionEvent e) {
+			if (e.getSource() == _clearLog)	clearDisplay();
+		}
+	}
+
     /** Class providing filtering for project events. */
     private static class Filter implements BusFilter {
         /** 
diff --git a/src/main/org/apache/tools/ant/DefaultLogger.java b/src/main/org/apache/tools/ant/DefaultLogger.java
index aedf2a8..4ceabcc 100644
--- a/src/main/org/apache/tools/ant/DefaultLogger.java
+++ b/src/main/org/apache/tools/ant/DefaultLogger.java
@@ -138,17 +138,7 @@
         else {
             err.println(lSep + "BUILD FAILED" + lSep);
 
-            if (error instanceof BuildException) {
-                err.println(error.toString());
-
-                Throwable nested = ((BuildException)error).getException();
-                if (nested != null) {
-                    nested.printStackTrace(err);
-                }
-            }
-            else {
-                error.printStackTrace(err);
-            }
+            error.printStackTrace(err);
         }
 
         out.println(lSep + "Total time: " + formatTime(System.currentTimeMillis() - startTime));
diff --git a/src/main/org/apache/tools/ant/taskdefs/Available.java b/src/main/org/apache/tools/ant/taskdefs/Available.java
index 642868a..0ff188a 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Available.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Available.java
@@ -129,9 +129,20 @@
             this.loader = new AntClassLoader(project, classpath, false);
         }
 
-        if ((classname != null) && !checkClass(classname)) return;
-        if ((file != null) && !checkFile(file)) return;
-        if ((resource != null) && !checkResource(resource)) return;
+        if ((classname != null) && !checkClass(classname)) {
+            log("Unable to load class " + classname + " to set property " + property, Project.MSG_VERBOSE);
+            return;
+        }
+        
+        if ((file != null) && !checkFile(file)) {
+            log("Unable to find file " + file + " to set property " + property, Project.MSG_VERBOSE);
+            return;
+        }
+        
+        if ((resource != null) && !checkResource(resource)) {
+            log("Unable to load resource " + resource + " to set property " + property, Project.MSG_VERBOSE);
+            return;
+        }
 
         this.project.setProperty(property, value);
     }
@@ -170,10 +181,8 @@
             }
             return true;
         } catch (ClassNotFoundException e) {
-            log("Class not found: " + classname, Project.MSG_VERBOSE);
             return false;
         } catch (NoClassDefFoundError e) {
-            log("Class cound not be loaded: " + classname, Project.MSG_VERBOSE);
             return false;
         }
     }
diff --git a/src/main/org/apache/tools/ant/taskdefs/Execute.java b/src/main/org/apache/tools/ant/taskdefs/Execute.java
index be2a73b..a4e2a0d 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Execute.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Execute.java
@@ -428,6 +428,8 @@
          */
         public Process exec(Project project, String[] cmd, String[] env) throws IOException
         {
+            project.log("Execute:CommandLauncher: " +
+                        Commandline.toString(cmd), Project.MSG_DEBUG);
             return Runtime.getRuntime().exec(cmd, env);
         }
 
@@ -469,6 +471,8 @@
             for ( int i = 0; i < cmd.length; i++ ) {
                 newcmd[i] = Commandline.quoteArgument(cmd[i]);
             }
+            project.log("Execute:Java11CommandLauncher: " +
+                        Commandline.toString(newcmd), Project.MSG_DEBUG);
             return Runtime.getRuntime().exec(newcmd, env);
         }
     }
@@ -493,6 +497,8 @@
             throws IOException
         {
             try {
+                project.log("Execute:Java13CommandLauncher: " +
+                            Commandline.toString(cmd), Project.MSG_DEBUG);
                 Object[] arguments = { cmd, env, workingDir };
                 return (Process)_execWithCWD.invoke(Runtime.getRuntime(), arguments);
             } 
@@ -565,13 +571,16 @@
 
             // Use cmd.exe to change to the specified directory before running
             // the command
-            String[] newcmd = new String[cmd.length+5];
+            final int preCmdLength = 6;
+            String[] newcmd = new String[cmd.length + preCmdLength];
             newcmd[0] = "cmd";
             newcmd[1] = "/c";
             newcmd[2] = "cd";
-            newcmd[3] = workingDir.getAbsolutePath();
-            newcmd[4] = "&&";
-            System.arraycopy(cmd, 0, newcmd, 5, cmd.length);
+            newcmd[3] = "/d";
+            newcmd[4] = workingDir.getAbsolutePath();
+            newcmd[5] = "&&";
+            System.arraycopy(cmd, 0, newcmd, preCmdLength, cmd.length);
+
             return exec(project, newcmd, env);
         }
     }
diff --git a/src/main/org/apache/tools/ant/taskdefs/Javadoc.java b/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
index 6cec5ca..51b71d7 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
@@ -193,6 +193,7 @@
     private File destDir = null;
     private String sourceFiles = null;
     private String packageNames = null;
+	private String excludePackageNames = null;
     private boolean author = true;
     private boolean version = true;
     private DocletInfo doclet = null;
@@ -260,6 +261,11 @@
     public void setPackagenames(String src) {
         packageNames = src;
     }
+
+	public void setExcludePackageNames(String src) {
+		excludePackageNames = src;
+	}
+
     public void setOverview(File f) {
         if (!javadoc1) {
             cmd.createArgument().setValue("-overview");
@@ -722,8 +728,16 @@
                     toExecute.createArgument().setValue(name);
                 }
             }
+
+			Vector excludePackages = new Vector();
+			if ((excludePackageNames != null) && (excludePackageNames.length() > 0)) {
+				StringTokenizer exTok = new StringTokenizer(excludePackageNames, ",", false);
+				while (exTok.hasMoreTokens()) {
+					excludePackages.addElement(exTok.nextToken().trim());
+				}
+			}
             if (packages.size() > 0) {
-                evaluatePackages(toExecute, sourcePath, packages);
+                evaluatePackages(toExecute, sourcePath, packages, excludePackages);
             }
         }
 
@@ -770,9 +784,10 @@
      * patterns.
      */
     private void evaluatePackages(Commandline toExecute, Path sourcePath, 
-                                  Vector packages) {
+                                  Vector packages, Vector excludePackages) {
         log("Source path = " + sourcePath.toString(), Project.MSG_VERBOSE);
         log("Packages = " + packages, Project.MSG_VERBOSE);
+		log("Exclude Packages = " + excludePackages, Project.MSG_VERBOSE);
 
         Vector addedPackages = new Vector();
 
@@ -793,6 +808,17 @@
             fs.createInclude().setName(pkg);
         } // while
 
+		e = excludePackages.elements();
+		while (e.hasMoreElements()) {
+			String pkg = (String)e.nextElement();
+			pkg = pkg.replace('.','/');
+			if (pkg.endsWith("*")) {
+				pkg += "*";
+			}
+
+			fs.createExclude().setName(pkg);
+		}
+
         for (int j=0; j<list.length; j++) {
             File source = project.resolveFile(list[j]);
             fs.setDir(source);
diff --git a/src/main/org/apache/tools/ant/taskdefs/Tar.java b/src/main/org/apache/tools/ant/taskdefs/Tar.java
index b8db73a..4f1615f 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Tar.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Tar.java
@@ -70,18 +70,29 @@
 
 public class Tar extends MatchingTask {
 
+    // permissable values for longfile attribute
+    static public final String WARN = "warn";
+    static public final String FAIL = "fail";
     static public final String TRUNCATE = "truncate";
     static public final String GNU = "gnu";
+    static public final String OMIT = "omit";
+
+    private String[] validModes = new String[] {WARN, FAIL, TRUNCATE, GNU, OMIT};
 
     File tarFile;
     File baseDir;
     
-    String longFileMode = null;
+    String longFileMode = WARN;
     
     Vector filesets = new Vector();
     Vector fileSetFiles = new Vector();
+    
+    /**
+     * Indicates whether the user has been warned about long files already.
+     */
+    private boolean longWarningGiven = false;
 
-    public TarFileSet createFileSet() {
+    public TarFileSet createTarFileSet() {
         TarFileSet fileset = new TarFileSet();
         filesets.addElement(fileset);
         return fileset;
@@ -106,11 +117,20 @@
      * Set how to handle long files.
      *
      * Allowable values are
-     *   truncate
-     *   gnu
+     *   truncate - paths are truncated to the maximum length
+     *   fail - patsh greater than the maximim cause a build exception
+     *   warn - paths greater than the maximum cause a warning and GNU is used
+     *   gnu - GNU extensions are used for any paths greater than the maximum.
+     *   omit - paths greater than the maximum are omitted from the archive
      */
-    public void setLongfile(String method) {
-        this.longFileMode = method;
+    public void setLongfile(String mode) {
+        for (int i = 0; i < validModes.length; ++i) {
+            if (mode.equalsIgnoreCase(validModes[i])) {
+                this.longFileMode = mode;
+                return;
+            }
+        }
+        throw new BuildException("The longfile value " + mode + " is not a valid value");
     }
 
     public void execute() throws BuildException {
@@ -119,6 +139,16 @@
                                      location);
         }
 
+        if (tarFile.exists() && tarFile.isDirectory()) {
+            throw new BuildException("tarfile is a directory!", 
+                                     location);
+        }
+
+        if (tarFile.exists() && !tarFile.canWrite()) {
+            throw new BuildException("Can not write to the specified tarfile!", 
+                                     location);
+        }
+
         if (baseDir != null) {
             if (!baseDir.exists()) {
                 throw new BuildException("basedir does not exist!", location);
@@ -130,7 +160,12 @@
             mainFileSet.setDefaultexcludes(useDefaultExcludes);
             filesets.addElement(mainFileSet);
         }
-
+        
+        if (filesets.size() == 0) {
+            throw new BuildException("You must supply either a basdir attribute or some nested filesets.", 
+                                     location);
+        }
+        
         // check if tr is out of date with respect to each
         // fileset
         boolean upToDate = true;
@@ -156,16 +191,19 @@
         try {
             tOut = new TarOutputStream(new FileOutputStream(tarFile));
             tOut.setDebug(true);
-            if (longFileMode == null) {
-                tOut.setLongFileMode(TarOutputStream.LONGFILE_ERROR);
-            }
-            else if (longFileMode.equalsIgnoreCase(TRUNCATE)) {
+            if (longFileMode.equalsIgnoreCase(TRUNCATE)) {
                 tOut.setLongFileMode(TarOutputStream.LONGFILE_TRUNCATE);
             }
-            else if (longFileMode.equalsIgnoreCase(GNU)) {
+            else if (longFileMode.equalsIgnoreCase(FAIL) ||
+                     longFileMode.equalsIgnoreCase(OMIT)) {
+                tOut.setLongFileMode(TarOutputStream.LONGFILE_ERROR);
+            }
+            else {
+                // warn or GNU
                 tOut.setLongFileMode(TarOutputStream.LONGFILE_GNU);
             }
         
+            longWarningGiven = false;
             for (Enumeration e = filesets.elements(); e.hasMoreElements();) {
                 TarFileSet fs = (TarFileSet)e.nextElement();
                 String[] files = fs.getFiles(project);
@@ -196,6 +234,25 @@
         FileInputStream fIn = new FileInputStream(file);
 
         try {
+            if (vPath.length() >= TarConstants.NAMELEN) {
+                if (longFileMode.equalsIgnoreCase(OMIT)) {
+                    log("Omitting: "+ vPath, Project.MSG_INFO);
+                    return;
+                } else if (longFileMode.equalsIgnoreCase(WARN)) {
+                    log("Entry: "+ vPath + " longer than " + 
+                        TarConstants.NAMELEN + " characters.", Project.MSG_WARN);
+                    if (!longWarningGiven) {                        
+                        log("Resulting tar file can only be processed successfully"
+                            + " by GNU compatible tar commands", Project.MSG_WARN);
+                        longWarningGiven = true;
+                    }
+                } else if (longFileMode.equalsIgnoreCase(FAIL)) {
+                    throw new BuildException(
+                        "Entry: "+ vPath + " longer than " + 
+                        TarConstants.NAMELEN + "characters.", location);
+                }
+            }
+
             TarEntry te = new TarEntry(vPath);
             te.setSize(file.length());
             te.setModTime(file.lastModified());
diff --git a/src/main/org/apache/tools/ant/taskdefs/defaults.properties b/src/main/org/apache/tools/ant/taskdefs/defaults.properties
index c2d950d..02f9758 100644
--- a/src/main/org/apache/tools/ant/taskdefs/defaults.properties
+++ b/src/main/org/apache/tools/ant/taskdefs/defaults.properties
@@ -88,6 +88,7 @@
 ccuncheckout=org.apache.tools.ant.taskdefs.optional.clearcase.CCUnCheckout
 sound=org.apache.tools.ant.taskdefs.optional.sound.SoundTask
 junitreport=org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator
+vsslabel=org.apache.tools.ant.taskdefs.optional.vss.MSVSSLABEL
 
 # deprecated ant tasks (kept for back compatibility)
 javadoc2=org.apache.tools.ant.taskdefs.Javadoc
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/Test.java b/src/main/org/apache/tools/ant/taskdefs/optional/Test.java
index d7a72aa..2e68a9e 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/Test.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/Test.java
@@ -97,11 +97,11 @@
         createArg().setValue( "-b=" + showBanner );
     } 
  
-    public void setShowTrace( final String showTrace ) {
+    public void setShowTrace( final boolean showTrace ) {
          createArg().setValue( "-t=" + showTrace );
     } 
  
-    public void setForceShowTrace( final String forceShowTrace ) { 
+    public void setForceShowTrace( final boolean forceShowTrace ) { 
         createArg().setValue( "-f=" + forceShowTrace );
     } 
  
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java b/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java
index accfa85..84c48097 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java
@@ -110,7 +110,7 @@
      * beyond direct dependencies to include all classes. So if A directly
      * affects B abd B directly affects C, then A indirectly affects C.
      */
-    private boolean closure;
+    private boolean closure = false;
 
     private void writeDependencyList(File depFile, Vector dependencyList) throws IOException {
         // new dependencies so need to write them out to the cache
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EJBDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EJBDeploymentTool.java
index 6600311..978abf0 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EJBDeploymentTool.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EJBDeploymentTool.java
@@ -69,8 +69,6 @@
      *
      * @param descriptorFilename the name of the deployment descriptor
      * @param saxParser a SAX parser which can be used to parse the deployment descriptor. 
-     * @param supportFileSet a fileset containing all the files to be included in the 
-     * `                     generated jarfile as support classes.
      */
     public void processDescriptor(String descriptorFilename, SAXParser saxParser) 
         throws BuildException;
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java
index 5c5265a..c8b85de 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/EjbJar.java
@@ -103,7 +103,7 @@
  */
 public class EjbJar extends MatchingTask {
     
-    static class DTDLocation {
+    public static class DTDLocation {
         private String publicId;
         private String location;
         
@@ -155,7 +155,7 @@
         /**
          * A Fileset of support classes
          */
-        public FileSet supportFileSet = null;
+        public List supportFileSets = new ArrayList();
         
         /**
          * The list of configured DTD locations
@@ -238,8 +238,9 @@
      * @return a fileset which can be populated with support files.
      */
     public FileSet createSupport() {
-        config.supportFileSet = new FileSet();
-        return config.supportFileSet;
+        FileSet supportFileSet = new FileSet();
+        config.supportFileSets.add(supportFileSet);
+        return supportFileSet;
     }
     
 
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java
index ebbeb57..4ca0373 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/GenericDeploymentTool.java
@@ -289,14 +289,15 @@
             Hashtable ejbFiles = handler.getFiles();
                     
             // add in support classes if any
-            if (config.supportFileSet != null) {
-                Project project = task.getProject();
-                File supportBaseDir = config.supportFileSet.getDir(project);
-                DirectoryScanner supportScanner = config.supportFileSet.getDirectoryScanner(project);
+            Project project = task.getProject();
+            for (Iterator i = config.supportFileSets.iterator(); i.hasNext();) {
+                FileSet supportFileSet = (FileSet)i.next();
+                File supportBaseDir = supportFileSet.getDir(project);
+                DirectoryScanner supportScanner = supportFileSet.getDirectoryScanner(project);
                 supportScanner.scan();
                 String[] supportFiles = supportScanner.getIncludedFiles();
-                for (int i = 0; i < supportFiles.length; ++i) {
-                    ejbFiles.put(supportFiles[i], new File(supportBaseDir, supportFiles[i]));
+                for (int j = 0; j < supportFiles.length; ++j) {
+                    ejbFiles.put(supportFiles[j], new File(supportBaseDir, supportFiles[j]));
                 }
             }            
 
@@ -455,9 +456,16 @@
             jarfile.getParentFile().mkdirs();
             jarfile.createNewFile();
             
+            String defaultManifest = "/org/apache/tools/ant/defaultManifest.mf";
+            InputStream in = this.getClass().getResourceAsStream(defaultManifest);
+            if ( in == null ) {
+                throw new BuildException ( "Could not find: " + defaultManifest );
+            }
+            
+            Manifest manifest = new Manifest(in);
             // Create the streams necessary to write the jarfile
             
-            jarStream = new JarOutputStream(new FileOutputStream(jarfile));
+            jarStream = new JarOutputStream(new FileOutputStream(jarfile), manifest);
             jarStream.setMethod(JarOutputStream.DEFLATED);
             
             // Loop through all the class files found and add them to the jar
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WLStop.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WLStop.java
index 9db3ee6..f25fe40 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WLStop.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WLStop.java
@@ -72,7 +72,7 @@
     /**
      * The classpath to be used. It must contains the weblogic.Admin class.
      */
-    private String classpath;
+    private Path classpath;
 
     /**
      * The weblogic username to use to request the shutdown.
@@ -116,8 +116,6 @@
         if (serverURL == null) {
             throw new BuildException("The url of the weblogic server must be provided.");
         }
-
-        String execClassPath = project.translatePath(classpath);
         
         Java weblogicAdmin = (Java)project.createTask("java");
         weblogicAdmin.setFork(true);
@@ -135,7 +133,7 @@
         }            
 
         weblogicAdmin.setArgs(args);
-        weblogicAdmin.setClasspath(new Path(project, execClassPath));                         
+        weblogicAdmin.setClasspath(classpath);                         
         weblogicAdmin.execute();
     }
     
@@ -144,11 +142,21 @@
      *
      * @param s the classpath to use when executing the weblogic admin task.
      */
-    public void setClasspath(String s) {
-        this.classpath = project.translatePath(s);
+    public void setClasspath(Path path) {
+        this.classpath = path;
     }
     
     /**
+     * Add the classpath for the user classes
+     */
+    public Path createClasspath() {
+        if (classpath == null) {
+            classpath = new Path(project);
+        }
+        return classpath.createPath();
+    }
+
+    /**
      * Set the username to use to request shutdown of the server.
      *
      * @param s the username.
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java
index ef47671..36baaae 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java
@@ -112,10 +112,10 @@
     /**
      * Indicates if the old CMP location convention is to be used.
      */
-    private boolean oldCMP = true;
+    private boolean newCMP = false;
 
     /** The classpath to the weblogic classes. */
-    private Path wlClasspath;
+    private Path wlClasspath = null;
 
     /**
      * Get the classpath to the weblogic classpaths
@@ -126,6 +126,10 @@
         }
         return wlClasspath.createPath();
     }
+    
+    public void setWLClasspath(Path wlClasspath) {
+        this.wlClasspath = wlClasspath;
+    }
 
     /**
      * The compiler (switch <code>-compiler</code>) to use
@@ -204,7 +208,15 @@
     }
 
     /**
-     * Set the value of the oldCMP scheme. The oldCMP scheme locates the 
+     * Set the value of the oldCMP scheme. This is an antonym for
+     * newCMP
+     */
+    public void setOldCMP(boolean oldCMP) {
+        this.newCMP = !oldCMP;
+    }
+    
+    /**
+     * Set the value of the newCMP scheme. The old CMP scheme locates the 
      * weblogic CMP descriptor based on the naming convention where the 
      * weblogic CMP file is expected to be named with the bean name as the prefix.
      * 
@@ -212,10 +224,9 @@
      * actually used in the main weblogic EJB descriptor. Also, descriptors which 
      * contain multiple CMP references could not be used.
      *
-     * The old scheme is currently the default, but is also deprecated.
      */
-    public void setOldCMP(boolean oldCMP) {
-        this.oldCMP = oldCMP;
+    public void setNewCMP(boolean newCMP) {
+        this.newCMP = newCMP;
     }
     
 
@@ -237,7 +248,7 @@
         return handler;                                    
     }
 
-    protected DescriptorHandler getWeblogicDescriptorHandler(File srcDir) {
+    protected DescriptorHandler getWeblogicDescriptorHandler(final File srcDir) {
         DescriptorHandler handler = 
             new DescriptorHandler(srcDir) {        
                 protected void processElement() {
@@ -247,7 +258,8 @@
                         //trim the META_INF\ off of the file name
                         String fileName = fileNameWithMETA.substring(META_DIR.length(), 
                                                                      fileNameWithMETA.length() );
-                        File descriptorFile = new File(getConfig().descriptorDir, fileName);
+                        File descriptorFile = new File(srcDir, fileName);
+                        
                         ejbFiles.put(fileNameWithMETA, descriptorFile);
                     }
                 }
@@ -255,6 +267,11 @@
 
         handler.registerDTD(PUBLICID_WEBLOGIC_EJB, 
                             weblogicDTD == null ? DEFAULT_WL_DTD_LOCATION : weblogicDTD);
+                            
+        for (Iterator i = getConfig().dtdLocations.iterator(); i.hasNext();) {
+            EjbJar.DTDLocation dtdLocation = (EjbJar.DTDLocation)i.next();
+            handler.registerDTD(dtdLocation.getPublicId(), dtdLocation.getLocation());
+        }
         return handler;                                    
     }
 
@@ -277,9 +294,9 @@
             return;
         }
 
-        if (oldCMP) {
+        if (!newCMP) {
             log("The old method for locating CMP files has been DEPRECATED.", Project.MSG_VERBOSE);
-            log("Please adjust your weblogic descriptor and set oldCMP=\"false\" " +
+            log("Please adjust your weblogic descriptor and set newCMP=\"true\" " +
                 "to use the new CMP descriptor inclusion mechanism. ", Project.MSG_VERBOSE);
             // The the weblogic cmp deployment descriptor
             File weblogicCMPDD = new File(getConfig().descriptorDir, ddPrefix + WL_CMP_DD);
@@ -504,9 +521,12 @@
                             }
                             else
                             {
-                                //File other then class changed   rebuild
-                                log("Non class file " + genericEntry.getName() + " has changed",Project.MSG_VERBOSE);
-                                rebuild = true;
+                                // is it the manifest. If so ignore it
+                                if (!genericEntry.getName().equals("META-INF/MANIFEST.MF")) {
+                                    //File other then class changed   rebuild
+                                    log("Non class file " + genericEntry.getName() + " has changed",Project.MSG_VERBOSE);
+                                    rebuild = true;
+                                }
                                 break;
                             }
                         }
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ide/VAJImport.java b/src/main/org/apache/tools/ant/taskdefs/optional/ide/VAJImport.java
index a045365..6f414c3 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ide/VAJImport.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ide/VAJImport.java
@@ -95,7 +95,7 @@
  *   <td align="center" valign="top"><b>Required</b></td>
  * </tr>
  * <tr>
- *   <td valign="top">project</td>
+ *   <td valign="top">vajproject</td>
  *   <td valign="top">the name of the Project to import to</td>
  *   <td align="center" valign="top">Yes</td>
  * </tr>
@@ -130,7 +130,7 @@
     /**
      * The VisualAge for Java Project name to import into.
      */
-    public void setProject(String projectName) {
+    public void setVajproject(String projectName) {
         this.importProject = projectName;
     }
 
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ide/VAJLoadProjects.java b/src/main/org/apache/tools/ant/taskdefs/optional/ide/VAJLoadProjects.java
index 664ad26..4f0fc37 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ide/VAJLoadProjects.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ide/VAJLoadProjects.java
@@ -130,7 +130,7 @@
     /**
      * Add a project description entry on the project list.
      */
-    public VAJProjectDescription createProject() {
+    public VAJProjectDescription createVAJProject() {
         VAJProjectDescription d = new VAJProjectDescription();
         projectDescriptions.addElement(d);
         return d;
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java
index b605cc0..9cc9283 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java
@@ -68,13 +68,10 @@
 import java.util.Enumeration;
 import java.util.Hashtable;
 
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamSource;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
+import org.apache.xalan.xslt.XSLTProcessorFactory;
+import org.apache.xalan.xslt.XSLTProcessor;
+import org.apache.xalan.xslt.XSLTInputSource;
+import org.apache.xalan.xslt.XSLTResultTarget;
 
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.DocumentBuilder;
@@ -169,9 +166,6 @@
     /** XML Parser factory */
     protected static final DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
 
-    /** XSL Parser factory */
-    protected static final TransformerFactory tfactory = TransformerFactory.newInstance();
-
     public AggregateTransformer(Task task){
         this.task = task;
     }
@@ -268,7 +262,7 @@
     }
 
     /** create a single page summary */
-    protected void createSinglePageSummary(Element root) throws IOException, TransformerException {
+    protected void createSinglePageSummary(Element root) throws IOException, SAXException {
         transform(root, OVERVIEW_SUMMARY + ".xsl", OVERVIEW_SUMMARY + getExtension());
     }
 
@@ -286,7 +280,7 @@
         }
     }
 
-    protected void createCascadingStyleSheet() throws IOException, TransformerException {
+    protected void createCascadingStyleSheet() throws IOException, SAXException {
         if (styleDir == null) {
             InputStream in = getResourceAsStream("html/stylesheet.css");
             OutputStream out = new FileOutputStream( new File(toDir, "stylesheet.css"));
@@ -294,7 +288,7 @@
         }
     }
 
-    protected void createFrameStructure() throws IOException, TransformerException{
+    protected void createFrameStructure() throws IOException, SAXException{
         if (styleDir == null) {
             InputStream in = getResourceAsStream("html/index.html");
             OutputStream out = new FileOutputStream( new File(toDir, "index.html") );
@@ -306,7 +300,7 @@
      * Create the list of all packages.
      * @param root root of the xml document.
      */
-    protected void createPackageList(Node root) throws TransformerException {
+    protected void createPackageList(Node root) throws SAXException {
         transform(root, ALLPACKAGES + ".xsl", ALLPACKAGES + getExtension());
     }
 
@@ -314,7 +308,7 @@
      * Create the list of all classes.
      * @param root root of the xml document.
      */
-    protected void createClassList(Node root) throws TransformerException {
+    protected void createClassList(Node root) throws SAXException {
         transform(root, ALLCLASSES + ".xsl", ALLCLASSES + getExtension());
     }
 
@@ -322,7 +316,7 @@
      * Create the summary used in the overview.
      * @param root root of the xml document.
      */
-    protected void createPackageOverview(Node root) throws TransformerException {
+    protected void createPackageOverview(Node root) throws SAXException {
         transform(root,  OVERVIEW_PACKAGES + ".xsl", OVERVIEW_PACKAGES + getExtension());
     }
 
@@ -349,7 +343,7 @@
      * create all resulting html pages for all testsuites.
      * @param root should be 'testsuites' node.
      */
-    protected void createAllTestSuiteDetails(Element root) throws TransformerException {
+    protected void createAllTestSuiteDetails(Element root) throws SAXException {
         NodeList testsuites = root.getElementsByTagName(XMLConstants.TESTSUITE);
         final int size = testsuites.getLength();
         for (int i = 0; i < size; i++){
@@ -362,7 +356,7 @@
      * create the html resulting page of one testsuite.
      * @param root should be 'testsuite' node.
      */
-    protected void createTestSuiteDetails(Element testsuite) throws TransformerException {
+    protected void createTestSuiteDetails(Element testsuite) throws SAXException {
                 
         String packageName = testsuite.getAttribute(XMLConstants.ATTR_PACKAGE);         
         String pkgPath = packageToPath(packageName);
@@ -382,7 +376,7 @@
      * create the html resulting page of the summary of each package of the root element.
      * @param root should be 'testsuites' node.
      */
-    protected void createAllPackageDetails(Element root) throws TransformerException, ParserConfigurationException {
+    protected void createAllPackageDetails(Element root) throws SAXException, ParserConfigurationException {
         Enumeration packages = getPackages(root);
         while ( packages.hasMoreElements() ){
             String pkgname = (String)packages.nextElement();
@@ -409,7 +403,7 @@
      * @param root should be 'testsuites' node.
      * @param pkgname Name of the package that we want a summary.
      */
-    protected void createPackageDetails(Node root, String pkgname) throws TransformerException {
+    protected void createPackageDetails(Node root, String pkgname) throws SAXException {
         String path = packageToPath(pkgname);
 
         // apply style to get the list of the classes of this package and
@@ -443,13 +437,13 @@
      * @param xslfile style file
      * @param outfilename filename of the result of the style applied on the Node
      *
-     * @throws TransformerException SAX Parsing Error on the style Sheet.
+     * @throws SAXException SAX Parsing Error on the style Sheet.
      */
-    protected void transform(Node root, String xslname, String htmlname) throws TransformerException {
+    protected void transform(Node root, String xslname, String htmlname) throws SAXException {
         try{
             final long t0 = System.currentTimeMillis();
-            StreamSource xsl_source = getXSLStreamSource(xslname);
-            Transformer transformer = tfactory.newTransformer(xsl_source);
+            XSLTInputSource xsl_source = getXSLStreamSource(xslname);
+            XSLTProcessor processor = XSLTProcessorFactory.getProcessor();
             File htmlfile = new File(toDir, htmlname);
             // create the directory if it does not exist
             File dir = new File(htmlfile.getParent()); // getParentFile is in JDK1.2+
@@ -457,22 +451,23 @@
                 dir.mkdirs();
             }
             task.log("Applying '" + xslname + "'. Generating '" + htmlfile + "'", Project.MSG_VERBOSE);
-            transformer.transform( new DOMSource(root), new StreamResult(htmlfile));
+            processor.process( new XSLTInputSource(root), xsl_source, new XSLTResultTarget(htmlfile.getAbsolutePath()) );
             final long dt = System.currentTimeMillis() - t0;
-            task.log("Transform time: " + dt + "ms");
+            task.log("Transform time for " + xslname + ": " + dt + "ms");
         } catch (IOException e){
             task.log(e.getMessage(), Project.MSG_ERR);
             e.printStackTrace(); //@todo bad, change this
-            throw new TransformerException(e.getMessage());
+            throw new SAXException(e.getMessage());
         }
     }
 
+
     /**
      * default xsls are embedded in the distribution jar. As a default we will use
      * them, otherwise we will get the one supplied by the client in a given
      * directory. It must have the same name.
      */
-    protected StreamSource getXSLStreamSource(String name) throws IOException {
+    protected XSLTInputSource getXSLStreamSource(String name) throws IOException {
         InputStream in;
         String systemId; //we need this because there are references in xsls
         if (styleDir == null){
@@ -483,7 +478,7 @@
             in= new FileInputStream(f);
             systemId = f.getAbsolutePath();
         }
-        StreamSource ss =  new StreamSource(in);
+        XSLTInputSource ss = new XSLTInputSource(in);
         ss.setSystemId(systemId);
         return ss;
     }
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLResultAggregator.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLResultAggregator.java
index fdf5186..c8a4136 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLResultAggregator.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLResultAggregator.java
@@ -57,6 +57,7 @@
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.PrintWriter;
+import java.io.StringWriter;
 import java.io.FileOutputStream;
 import java.util.Enumeration;
 import java.util.Vector;
@@ -248,7 +249,10 @@
         for (int i = 0; i < files.length; i++) {
             try {
                 log("Parsing file: '" + files[i] + "'", Project.MSG_VERBOSE);
-                Document testsuiteDoc = builder.parse( files[i] );
+                //XXX there seems to be a bug in xerces 1.3.0 that doesn't like file object
+                // will investigate later. It does not use the given directory but
+                // the vm dir instead ? Works fine with crimson.
+                Document testsuiteDoc = builder.parse( "file:///" + files[i].getAbsolutePath() );
                 Element elem = testsuiteDoc.getDocumentElement();
                 // make sure that this is REALLY a testsuite.
                 if ( TESTSUITE.equals(elem.getNodeName()) ) {
@@ -261,6 +265,9 @@
                 // a testcase might have failed and write a zero-length document,
                 // It has already failed, but hey.... mm. just put a warning
                 log("The file " + files[i] + " is not a valid XML document. It is possibly corrupted.", Project.MSG_WARN);
+                StringWriter sw = new StringWriter();
+                e.printStackTrace(new PrintWriter(sw));
+                log(sw.toString(), Project.MSG_DEBUG);
             } catch (IOException e){
                 log("Error while accessing file " + files[i] + ": " + e.getMessage(), Project.MSG_ERR);
             }
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/metamata/MParse.java b/src/main/org/apache/tools/ant/taskdefs/optional/metamata/MParse.java
index 94bab75..038935f 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/metamata/MParse.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/metamata/MParse.java
@@ -62,46 +62,89 @@
 import org.apache.tools.ant.types.CommandlineJava;
 import org.apache.tools.ant.types.Path;
 
-import java.io.File;
-import java.io.IOException;
+import java.io.*;
+import java.util.*;
 
-/*
+/**
+ * Simple Metamata MParse task based on the original written by
+ * <a href="mailto:thomas.haas@softwired-inc.com">Thomas Haas</a>
+ * 
+ * This version was written for Metamata 2.0 available at
+ * <a href="http://www.metamata.com">http://www.metamata.com</a>
  *
- * @author thomas.haas@softwired-inc.com
+ * @author <a href="mailto:sbailliez@imediation.com">Stephane Bailliez</a>
  */
 public class MParse extends Task {
 
-    private Path userclasspath = null;
+    private Path classpath = null;
+    private Path sourcepath = null;
     private File metahome = null;
-    private File metaworkingdir = null;
     private File target = null;
-    private boolean cleanupHack = false;
+    private boolean verbose = false;
+    private boolean debugparser = false;
+    private boolean debugscanner = false;    
+    private boolean cleanup = false;
     private CommandlineJava cmdl = new CommandlineJava();
+    private File optionsFile = null;
 
-
+    /** location of metamata dev environment */
     public void setMetamatahome(File metamatahome) {
         this.metahome = metamatahome;
     }
 
-    public void setWorkingdir(File workingdir) {
-        this.metaworkingdir = workingdir;
-    }
-
+    /** the .jj file to process */
     public void setTarget(File target) {
         this.target = target;
     }
 
-    public Path createUserclasspath() {
-        if (userclasspath == null) {
-            userclasspath = new Path(project);
-        }
-        
-        return userclasspath;
+    /** create a classpath entry */
+    public Path createClasspath() {
+        if (classpath == null) {
+            classpath = new Path(project);
+        }        
+        return classpath;
     }
 
+    /** creates a sourcepath entry */
+    public Path createSourcepath() {
+        if (sourcepath == null) {
+            sourcepath = new Path(project);
+        }        
+        return sourcepath;
+    }
 
-    public void setCleanupHack(boolean value) {
-        cleanupHack = value;
+    /** set verbose mode */
+    public void setVerbose(boolean flag){
+        verbose = flag;
+    }
+
+    /** set scanner debug mode */
+    public void setDebugscanner(boolean flag){
+        debugscanner = flag;
+    }
+
+    /** set parser debug mode */
+    public void setDebugparser(boolean flag){
+        debugparser = flag;
+    }
+
+    /** set the hack to cleanup the temp file */
+    public void setCleanup(boolean value) {
+        cleanup = value;
+    }
+
+    /** Creates a nested jvmarg element. */
+    public Commandline.Argument createJvmarg() {
+        return cmdl.createVmArgument();
+    }
+
+    /**  -mx or -Xmx depending on VM version */
+    public void setMaxmemory(String max){
+        if (Project.getJavaVersion().startsWith("1.1")) {
+            createJvmarg().setValue("-mx" + max);
+        } else {
+            createJvmarg().setValue("-Xmx" + max);
+        }
     }
 
     public MParse() {
@@ -109,81 +152,200 @@
         cmdl.setClassname("com.metamata.jj.MParse");
     }
 
-
+   
+    /** execute the command line */
     public void execute() throws BuildException {
-
-        if (target == null || !target.isFile()) {
-            throw new BuildException("Invalid target: " + target);
+        try {
+            setUp();
+            ExecuteStreamHandler handler = createStreamHandler();
+            _execute(handler);
+        } finally {
+            cleanUp();
         }
-        final File javaFile = new File(target.toString().substring(0,
-                                                                   target.toString().indexOf(".jj")) + ".java");
+    }
+    
+    /** return the default stream handler for this task */
+    protected ExecuteStreamHandler createStreamHandler(){
+        return new LogStreamHandler(this, Project.MSG_INFO, Project.MSG_INFO);
+    }
+    
+    /**
+     * check the options and build the command line
+     */
+    protected void setUp() throws BuildException {
+        checkOptions();
+
+        // set the classpath as the jar files
+        File[] jars = getMetamataLibs();
+        final Path classPath = cmdl.createClasspath(project);
+        for (int i = 0; i < jars.length; i++){
+            classPath.createPathElement().setLocation(jars[i]);
+        }
+
+        // set the metamata.home property
+        final Commandline.Argument vmArgs = cmdl.createVmArgument();
+        vmArgs.setValue("-Dmetamata.home=" + metahome.getAbsolutePath() );
+
+
+        // write all the options to a temp file and use it ro run the process
+        String[] options = getOptions();
+        optionsFile = createTmpFile();
+        generateOptionsFile(optionsFile, options);
+        Commandline.Argument args = cmdl.createArgument();
+        args.setLine("-arguments " + optionsFile.getAbsolutePath());
+    }    
+
+    
+    /** execute the process with a specific handler */
+    protected void _execute(ExecuteStreamHandler handler) throws BuildException {
+        // target has been checked as a .jj, see if there is a matching
+        // java file and if it is needed to run to process the grammar
+        String pathname = target.getAbsolutePath();
+        int pos = pathname.length() - ".jj".length();
+        pathname = pathname.substring(0, pos) + ".java";
+        File javaFile = new File(pathname);
         if (javaFile.exists() && target.lastModified() < javaFile.lastModified()) {
             project.log("Target is already build - skipping (" + target + ")");
             return;
         }
-        cmdl.createArgument().setValue(target.getAbsolutePath());
-
-        if (metahome == null || !metahome.isDirectory()) {
-            throw new BuildException("Metamatahome not valid.");
-        }
-        if (metaworkingdir == null || !metaworkingdir.isDirectory()) {
-            throw new BuildException("Workingdir not set.");
-        }
-        if (userclasspath == null) {
-            throw new BuildException("Userclasspath not set.");
-        }
-
-        final Path classpath = cmdl.createClasspath(project);
-        classpath.createPathElement().setLocation(new File(metahome.getAbsolutePath() + "/lib/metamatadebug.jar"));
-        classpath.createPathElement().setLocation(new File(metahome.getAbsolutePath() + "/lib/metamata.jar"));
-        classpath.createPathElement().setLocation(new File(metahome.getAbsolutePath() + "/lib/JavaCC.zip"));
-
-        final Commandline.Argument arg = cmdl.createVmArgument();
-        arg.setValue("-mx140M");
-        arg.setValue("-Dmwp=" + metaworkingdir.getAbsolutePath());
-        arg.setValue("-Dmetamata.home=" + metahome.getAbsolutePath());
-        arg.setValue("-Dmetamata.java=java");
-        arg.setValue("-Dmetamata.java.options=-mx140M");
-        arg.setValue("-Dmetamata.java.options.classpath=-classpath");
-        arg.setValue("-Dmetamata.java.compiler=javac");
-        arg.setValue("-Dmetamata.java.compiler.options.0=-J-mx64M");
-        arg.setValue("-Dmetamata.java.compiler.options.classpath=-classpath");
-        arg.setValue("-Dmetamata.language=en");
-        arg.setValue("-Dmetamata.country=US");
-        arg.setValue("-Dmetamata.classpath=" + userclasspath);
-
-        final Execute process = new Execute(new LogStreamHandler(this,
-                                                                 Project.MSG_INFO,
-                                                                 Project.MSG_INFO), null);
+        
+        final Execute process = new Execute(handler);
         log(cmdl.toString(), Project.MSG_VERBOSE);
         process.setCommandline(cmdl.getCommandline());
-
         try {
-            try {
-                if (process.execute() != 0) {
-                    throw new BuildException("MParse failed.");
-                }
-            } finally {
-                if (cleanupHack) {
-                    final File oo393 = new File(javaFile.getParent(),
-                                                "OO393.class");
-                    if (oo393.exists()) {
-                        project.log("Removing stale file: " + oo393.getName());
-                        oo393.delete();
-                    }
-                    final File sunjj = new File(javaFile.getParent(),
-                                                "__jj" + javaFile.getName().substring(0,
-                                                                                      javaFile.getName().indexOf(".java")) + ".sunjj");
-                    if (sunjj.exists()) {
-                        project.log("Removing stale file: " + sunjj.getName());
-                        sunjj.delete();
-                    }
-                }
+            if (process.execute() != 0) {
+                throw new BuildException("Metamata task failed.");
+            }
+        } catch (IOException e){
+            throw new BuildException("Failed to launch Metamata task: " + e);
+        }
+    }    
+    
+    /** clean up all the mess that we did with temporary objects */
+    protected void cleanUp(){
+        if (optionsFile != null){
+            optionsFile.delete();
+            optionsFile = null;
+        }
+        if (cleanup) {
+            String name = target.getName();
+            int pos = name.length() - ".jj".length();
+            name = "__jj" + name.substring(0, pos) + ".sunjj";
+            final File sunjj = new File(target.getParent(), name);
+            if (sunjj.exists()) {
+                project.log("Removing stale file: " + sunjj.getName());
+                sunjj.delete();
             }
         }
-        catch (IOException e) {
-            throw new BuildException("Failed to launch MParse: " + e);
+    }
+    
+    /**
+     * return an array of files containing the path to the needed
+     * libraries to run metamata. The file are not checked for
+     * existence. You should do this yourself if needed or simply let the
+     * forked process do it for you.
+     * @return array of jars/zips needed to run metamata.
+     */
+    protected File[] getMetamataLibs(){
+        Vector files = new Vector();
+        files.addElement( new File(metahome, "lib/metamata.jar") );
+        files.addElement( new File(metahome, "bin/lib/JavaCC.zip") );
+        
+        File[] array = new File[ files.size() ];
+        files.copyInto(array);
+        return array;
+    }
+    
+    
+    /**
+     * validate options set and resolve files and paths
+     * @throws BuildException thrown if an option has an incorrect state.
+     */
+    protected void checkOptions() throws BuildException {       
+        // check that the home is ok.
+        if (metahome == null || !metahome.exists()){
+            throw new BuildException("'metamatahome' must point to Metamata home directory.");
         }
+        metahome = project.resolveFile(metahome.getPath());
+        
+        // check that the needed jar exists.
+        File[] jars = getMetamataLibs();
+        for (int i = 0; i < jars.length; i++){
+            if (!jars[i].exists()){
+                throw new BuildException( jars[i] + " does not exist. Check your metamata installation.");
+            }           
+        }
+        
+        // check that the target is ok and resolve it.
+        if (target == null || !target.isFile() || !target.getName().endsWith(".jj") ) {
+            throw new BuildException("Invalid target: " + target);
+        }
+        target = project.resolveFile(target.getPath());
+    }    
+    
+    /**
+     * return all options of the command line as string elements
+     * @param an array of options corresponding to the setted options.
+     */
+    protected String[] getOptions(){
+        Vector options = new Vector();
+        if (verbose){
+            options.addElement("-verbose");
+        }
+        if (debugscanner){
+            options.addElement("-ds");
+        }
+        if (debugparser){
+            options.addElement("-dp");
+        }
+        if (classpath != null){
+            options.addElement("-classpath");
+            options.addElement(classpath.toString());
+        }
+        if (sourcepath != null){
+            options.addElement("-sourcepath");
+            options.addElement(sourcepath.toString());
+        }
+        options.addElement(target.getAbsolutePath());
+        
+        String[] array = new String[options.size()];
+        options.copyInto(array);
+        return array;
+    }
+    
+    /**
+     * write all options to a file with one option / line
+     * @param tofile the file to write the options to.
+     * @param options the array of options element to write to the file.
+     * @throws BuildException thrown if there is a problem while writing
+     * to the file.
+     */
+    protected void generateOptionsFile(File tofile, String[] options) throws BuildException {
+        FileWriter fw = null;
+        try {
+            fw = new FileWriter(tofile);
+            PrintWriter pw = new PrintWriter(fw);
+            for (int i = 0; i < options.length; i++){
+                pw.println( options[i] );
+            }
+            pw.flush();
+        } catch (IOException e){
+            throw new BuildException("Error while writing options file " + tofile, e);
+        } finally {
+            if (fw != null){
+                try {
+                    fw.close();
+                } catch (IOException ignored){}
+            }
+        }
+    }
+    
+    /** create a temporary file in the current directory */
+    protected final static File createTmpFile(){
+        // must be compatible with JDK 1.1 !!!!
+        final long rand = (new Random(System.currentTimeMillis())).nextLong();
+        File file = new File("metamata" + rand + ".tmp");
+        return file;
     }
 
 }
diff --git a/src/main/org/apache/tools/ant/types/CommandlineJava.java b/src/main/org/apache/tools/ant/types/CommandlineJava.java
index a273706..a7d023b 100644
--- a/src/main/org/apache/tools/ant/types/CommandlineJava.java
+++ b/src/main/org/apache/tools/ant/types/CommandlineJava.java
@@ -239,7 +239,9 @@
         c.vmCommand = (Commandline) vmCommand.clone();
         c.javaCommand = (Commandline) javaCommand.clone();
         c.sysProperties = (SysProperties) sysProperties.clone();
-        c.classpath = (Path) classpath.clone();
+        if (classpath != null) {
+            c.classpath = (Path) classpath.clone();
+        }
         c.vmVersion = vmVersion;
         return c;
     }
diff --git a/src/script/antRun.bat b/src/script/antRun.bat
index a083cbf..816cb60 100755
--- a/src/script/antRun.bat
+++ b/src/script/antRun.bat
@@ -1,6 +1,8 @@
 @echo off
 
+# Change drive and directory to %1 (Win9X only for NT/2K use "cd /d")
 cd %1
+%1\
 set ANT_RUN_CMD=%2
 shift
 shift
diff --git a/src/testcases/org/apache/tools/ant/types/CommandlineJavaTest.java b/src/testcases/org/apache/tools/ant/types/CommandlineJavaTest.java
index b46829d..6c9a8a7 100644
--- a/src/testcases/org/apache/tools/ant/types/CommandlineJavaTest.java
+++ b/src/testcases/org/apache/tools/ant/types/CommandlineJavaTest.java
@@ -92,9 +92,14 @@
         assertEquals("no classpath", "junit.textui.TestRunner", s[2]);
         assertEquals("no classpath", 
                      "org.apache.tools.ant.CommandlineJavaTest", s[3]);
+        try {
+            CommandlineJava c2 = (CommandlineJava) c.clone();
+        } catch (NullPointerException ex) {
+            fail("cloning should work without classpath specified");
+        }
 
-        c.createClasspath(project).setLocation(project.resolveFile("lib/core/junit.jar"));
-        c.createClasspath(project).setLocation(project.resolveFile("lib/ant.jar"));
+        c.createClasspath(project).setLocation(project.resolveFile("lib/optional/junit.jar"));
+        c.createClasspath(project).setLocation(project.resolveFile("bootstrap/lib/ant.jar"));
         s = c.getCommandline();
         assertEquals("with classpath", 6, s.length);
         assertEquals("with classpath", "java", s[0]);
diff --git a/webpage/build.xml b/webpage/build.xml
index 8746e8b..a93f73a 100644
--- a/webpage/build.xml
+++ b/webpage/build.xml
@@ -5,9 +5,17 @@
     <property name="docs.src" value="./xdocs"/>
     <property name="docs.dest" value="./docs"/>
 
+    <path id="anakia.classpath">
+        <fileset dir="../../jakarta-site2/lib">
+            <include name="*.jar"/>
+        </fileset>
+    </path>
+
     <target name="prepare">    
         <available classname="org.apache.velocity.anakia.AnakiaTask" 
-            property="AnakiaTask.present"/>
+                   property="AnakiaTask.present">
+            <classpath refid="anakia.classpath"/>
+        </available>
     </target>
 
     <target depends="prepare" name="prepare-error" unless="AnakiaTask.present">
@@ -18,7 +26,10 @@
     </target>
 
     <target name="docs" depends="prepare-error" if="AnakiaTask.present">
-        <taskdef name="anakia" classname="org.apache.velocity.anakia.AnakiaTask"/>
+        <taskdef name="anakia" classname="org.apache.velocity.anakia.AnakiaTask">
+            <classpath refid="anakia.classpath"/>
+        </taskdef>
+        
         <anakia basedir="${docs.src}" destdir="${docs.dest}/"
              extension=".html" style="./site.vsl"
              projectFile="stylesheets/project.xml"
diff --git a/webpage/docs/index.html b/webpage/docs/index.html
index 0ffa3fb..acb6058 100644
--- a/webpage/docs/index.html
+++ b/webpage/docs/index.html
@@ -67,29 +67,27 @@
                     <li>    <a href="http://jakarta.apache.org/site/bugs.html">Bug Database</a>
 </li>
                 </ul>
-            <strong>SubProjects</strong>
+            <strong>Other Projects</strong>
         <ul>
-                    <li>    <a href="./ant/index.html">Ant</a>
+                    <li>    <a href="http://jakarta.apache.org/ecs/index.html">ECS</a>
 </li>
-                    <li>    <a href="./ecs/index.html">ECS</a>
+                    <li>    <a href="http://jakarta.apache.org/log4j/doc/index.html">Log4J</a>
 </li>
-                    <li>    <a href="./log4j/index.html">Log4J</a>
+                    <li>    <a href="http://jakarta.apache.org/oro/index.html">ORO</a>
 </li>
-                    <li>    <a href="./oro/index.html">ORO</a>
+                    <li>    <a href="http://jakarta.apache.org/regexp/index.html">Regexp</a>
 </li>
-                    <li>    <a href="./regexp/index.html">Regexp</a>
+                    <li>    <a href="http://jakarta.apache.org/slide/index.html">Slide</a>
 </li>
-                    <li>    <a href="./slide/index.html">Slide</a>
+                    <li>    <a href="http://jakarta.apache.org/struts/index.html">Struts</a>
 </li>
-                    <li>    <a href="./struts/index.html">Struts</a>
+                    <li>    <a href="http://jakarta.apache.org/taglibs/index.html">Taglibs</a>
 </li>
-                    <li>    <a href="./taglibs/index.html">Taglibs</a>
+                    <li>    <a href="http://jakarta.apache.org/tomcat/index.html">Tomcat</a>
 </li>
-                    <li>    <a href="./tomcat/index.html">Tomcat</a>
+                    <li>    <a href="http://jakarta.apache.org/velocity/index.html">Velocity</a>
 </li>
-                    <li>    <a href="./velocity/index.html">Velocity</a>
-</li>
-                    <li>    <a href="./watchdog/index.html">Watchdog</a>
+                    <li>    <a href="http://jakarta.apache.org/watchdog/index.html">Watchdog</a>
 </li>
                 </ul>
             <strong>Misc</strong>
diff --git a/webpage/xdocs/stylesheets/project.xml b/webpage/xdocs/stylesheets/project.xml
index c775e8c..8cfea58 100644
--- a/webpage/xdocs/stylesheets/project.xml
+++ b/webpage/xdocs/stylesheets/project.xml
@@ -29,20 +29,30 @@
         <item name="Bug Database"          href="/site/bugs.html"/>
     </menu>
 
-    <menu name="SubProjects">
-        <item name="Ant"                   href="/ant/index.html"/>
-<!--    <item name="Avalon"                href="/avalon/index.html"/> -->
-        <item name="ECS"                   href="/ecs/index.html"/>
-        <item name="Log4J"                 href="/log4j/index.html"/> 
-        <item name="ORO"                   href="/oro/index.html"/>
-        <item name="Regexp"                href="/regexp/index.html"/>
-        <item name="Slide"                 href="/slide/index.html"/>
-        <item name="Struts"                href="/struts/index.html"/>
-        <item name="Taglibs"               href="/taglibs/index.html"/>
-        <item name="Tomcat"                href="/tomcat/index.html"/>
-        <item name="Velocity"              href="/velocity/index.html"/>
-        <item name="Watchdog"              href="/watchdog/index.html"/>
-    </menu>
+    <menu name="Other Projects">	
+<!--    <item name="Avalon"                
+              href="http://jakarta.apache.org/avalon/index.html"/> -->
+        <item name="ECS"                   
+	      href="http://jakarta.apache.org/ecs/index.html"/>
+        <item name="Log4J"                   
+	      href="http://jakarta.apache.org/log4j/doc/index.html"/>
+        <item name="ORO"                   
+	      href="http://jakarta.apache.org/oro/index.html"/>
+        <item name="Regexp"       
+              href="http://jakarta.apache.org/regexp/index.html"/>
+        <item name="Slide" 
+	      href="http://jakarta.apache.org/slide/index.html"/>
+        <item name="Struts"  
+              href="http://jakarta.apache.org/struts/index.html"/>
+        <item name="Taglibs"
+              href="http://jakarta.apache.org/taglibs/index.html"/>
+        <item name="Tomcat" 
+              href="http://jakarta.apache.org/tomcat/index.html"/>
+        <item name="Velocity" 
+              href="http://jakarta.apache.org/velocity/index.html"/>
+        <item name="Watchdog" 
+              href="http://jakarta.apache.org/watchdog/index.html"/>
+    </menu>					 
 
     <menu name="Misc">
         <item name="Who We Are"            href="/site/whoweare.html"/>
