This commit was manufactured by cvs2svn to create tag 'ANT_16_B2'.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/tags/ANT_16_B2@275519 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/ReleaseInstructions b/ReleaseInstructions
index 3c199bd..a9ed058 100644
--- a/ReleaseInstructions
+++ b/ReleaseInstructions
@@ -4,50 +4,62 @@
          Stefan Bodewig
          Magesh Umasankar
 
-Note: This document was created in the context of releasing Ant 1.5.
+Note: This document was updated in the context of releasing Ant 1.6.
       Please interpret the branch names, tags, etc. according to
       your context.
 
 1.  Propose a release plan for vote.  This should set out the timetable for
-    the release under ideal circumstances.  The level of bugs reported 
-    can delay things. Generally, give a few weeks to "close" the source tree 
+    the release under ideal circumstances.  The level of bugs reported
+    can delay things. Generally, give a few weeks to "close" the source tree
     to further changes so people can finalise contributions, etc. At this time,
     the first beta will be cut and there will be then a period of beta testing,
     usually 1 month but this should be flexible.
 
 2.  Note that any mention of a deadline causes a flood of bug fixes, new tasks,
-    etc.  This needs to be managed as best it can. Some fixes will be applied, 
-    others held over. Make this clear in the release plan. The committers and 
-    particularly the release manager will need to make judgement calls here. 
+    etc.  This needs to be managed as best it can. Some fixes will be applied,
+    others held over. Make this clear in the release plan. The committers and
+    particularly the release manager will need to make judgement calls here.
     Anything too "big" is likely to be held over.
-    
-3.  Once the freeze date arrives, create a branch for the release builds. You 
-    will need to be comfortable in handling CVS branches with mutliple 
-    merge-backs to the main branch and even selected merges from the the main 
-    branch to the release branch.  
-    
+
+3.  Once the freeze date arrives, create a branch for the release builds. You
+    will need to be comfortable in handling CVS branches with mutliple
+    merge-backs to the main branch and even selected merges from the the main
+    branch to the release branch.
+
     For more information on performing branching and merging, please visit
     http://www.durak.org/cvswebsites/doc/cvs_54.php#SEC54
 
-    Label such branches ANT_15_BRANCH.
-    
-4.  Once the branch is setup, the version numbers in CVS are changed. On the 
-    branch, the build.xml version becomes 1.5Beta1 while the main branch is 
-    updated to 1.6alpha. 
-    
-    [[ TODO: Check if the documentation files also need to be updated to point 
+    Label such branches ANT_16_BRANCH.
+
+4.  Once the branch is setup, the version numbers in CVS are changed. On the
+    branch, the version property in build.xml becomes 1.6Beta,
+    while the main branch is updated to 1.7alpha.
+
+    [[ TODO: Check if the documentation files also need to be updated to point
     to the right areas of Ant's website. ]]
 
-5.  Ensure you have all the external libraries that Ant uses in your
+5.  Before a build :
+    Update the following files for version number, and commit your changes.
+
+    * docs/manual/cover.html
+    * docs/manual/credits.html
+    * build.xml (version property)
+
+    the first beta on the 1.6 branch should be called 1.6Beta1, ...
+
+    the version property in build.xml governs the output of ant -version and
+    the naming of the distribution files.
+
+6.  Ensure you have all the external libraries that Ant uses in your
     lib/optional directory.  To find out what libraries you need, execute
-    the build with -verbose option and scan for lines beginning with 
+    the build with -verbose option and scan for lines beginning with
     "Unable to load...".
 
-6.  Next bootstrap, build and run the tests.  Then build the distribution 
-    on the branch. It is important that this be a clean build. Label this with 
-    a tag ANT_15_B1.
-    
-7.  Sign the distribution files using the following simple script
+7.  Next bootstrap, build and run the tests.  Then build the distribution
+    on the branch. It is important that this be a clean build. Label this with
+    a tag ANT_16_B1.
+
+8.  Sign the distribution files using the following simple script
     #!/bin/sh
     for i in distribution/*
     do
@@ -61,46 +73,47 @@
     Before you do that, ensure that the key you use is inside the KEYS
     file in Ant's CVS repository - and that you perform a cvs update on
     the KEYS file in /www/www.apache.org/dist/ant/
-    
-    Also make sure you have sent the key that you use to a public 
+
+    Also make sure you have sent the key that you use to a public
     keyserver.
 
-8.  The beta distribution is now ready to go. Bundle it up into a tar.gz file 
+9.  The beta distribution is now ready to go. Bundle it up into a tar.gz file
     and scp to your apache account.
-    
-9.  Meanwhile, convert the WHATSNEW file into HTML for the README file on the 
-    website. See the previous release directories for examples of these files. 
+
+10. Meanwhile, convert the part of the WHATSNEW file covering the changes
+    since the last release into HTML for the README file on the
+    website. See the previous release directories for examples of these files.
     Add instructions and warnings (GNU tar format issues, etc).
 
     You may choose to use the text2html convertor present at
     http://www.aigeek.com/txt2html/
-    
+
     Name the generated file RELEASE-NOTES-x.y.z.html.
 
     [[ TODO: This must perhaps be an Ant task. ]]
 
-10. Once this is uploaded, unpack things, create the release directory, 
-    something like v1.5Beta1, push the release and RELEASE-NOTES files
+11. Once this is uploaded, unpack things, create the release directory,
+    something like v1.6Beta1, push the release and RELEASE-NOTES files
     into this directory.  Create a symbolic link named README.html
     that points to the RELEASE-NOTES.
 
     The files should go to /www/cvs.apache.org/dist/ant/ on minotaur.
 
-11. Address the available release tags in BugZilla. Create a new tag 1.5Beta1 
-    and a 1.6alpha. Assign all existing 1.5 alpha bugs to one of these release 
+12. Address the available release tags in BugZilla. Create a new tag 1.6Beta1
+    and a 1.7Alpha. Assign all existing 1.6 alpha bugs to one of these release
     labels.
-    
-12. Once that is done, do a test download to make sure everything is OK. A 
+
+13. Once that is done, do a test download to make sure everything is OK. A
     common problem may be:
-    * the file's mime type is not recognized and is interpreted as 
+    * the file's mime type is not recognized and is interpreted as
       text/plain.  Fix it by using some .htaccess magic (AddEncoding stuff)
     * Your gz.asc files are not being displayed properly (RemoveEncoing stuff)
-    
+
     If it looks OK, announce it on dev@ant and user@ant. After a few
     days pass and there are no major problems, a wider announcement is
     made (ant website, main jakarta website, announcements@jakarta.apache.org,
     etc).
-    
+
     Also ensure you:
     * Update antnews.xml (Announcement)
     * Update faq.xml (Ant's history details - not for betas)
@@ -115,29 +128,29 @@
     Announce beta releases at freshmeat.net (Stefan Bodewig is the
     owner of Ant's project entry - bug him ;-).
 
-13. As problems in the beta are discovered, there may be a need for
+14. As problems in the beta are discovered, there may be a need for
     one or more subsequent betas. The release manager makes this
     call. Each time, the versions are updated and the above process is
     repeated. Try not to have too many betas.
 
-14. Try to advertise the need for testing of the betas as much as possible.
+15. Try to advertise the need for testing of the betas as much as possible.
     This would eliminate the need to release minor patch versions like
-    we had to do when releasing Ant 1.4.  
-    
+    we had to do when releasing Ant 1.4.
+
     To monitor the number of downloads, look at the access_log
     file under /usr/local/apache2/logs
 
-15. When the final beta is considered OK, propose a vote on dev@ant to 
-    officially adopt the latest beta as the Ant 1.5 release. If it is passed, 
-    (it usually does,) this would be labelled ANT_15 and built in a similar 
+16. When the final beta is considered OK, propose a vote on dev@ant to
+    officially adopt the latest beta as the Ant 1.6 release. If it is passed,
+    (it usually does,) this would be labelled ANT_16 and built in a similar
     fashion to the above process.
 
-16. BUT
+17. BUT
 
     This time the directory you upload the files to is different and
     you'll have to do some house-keeping for the old release:
 
-    * upload the new release files to 
+    * upload the new release files to
       /www/www.apache.org/dist/ant/[source|binary].
 
     * remove the symbolic links from /www/www.apache.org/dist/ant.
@@ -147,14 +160,14 @@
     * Make sure that the symbolic link README.html points to the new
       RELEASE-NOTES.
 
-17. Change the links in /xdocs/bindownload.xml and /xdocs/srcdownload.xml,
+18. Change the links in /xdocs/bindownload.xml and /xdocs/srcdownload.xml,
     regenerate the HTML files, commit and update the site.
 
     As the mirrors may need some days to pick up the new release, you
     may want to add a note to that effect to the pages and remove it a few
     days later.
 
-18. Clean up.
+19. Clean up.
 
     * remove the remaining files of the previous release from
       /www/www.apache.org/dist/ant/[source|binary].
@@ -163,10 +176,10 @@
       /www/archive.apache.org/dist/ant/[source|binary] on minotaur,
       leave the *zip* files alone.
 
-19. Now and perhaps during previous betas any changes on the branch must 
+20. Now and perhaps during previous betas any changes on the branch must
     be merged back into the tree.
 
-20. At this point in time, the release is done and announcements are made. 
+21. At this point in time, the release is done and announcements are made.
     PGP-sign your announcement posts.
 
     [[TODO: Identify the mailing lists where announcements are to be made.
@@ -182,5 +195,5 @@
     Announce release in the usenet groups comp.lang.java.softwaretools
     and comp.lang.java.announce.
 
-21. You can now reacquaint yourself with your family and friends.
+22. You can now reacquaint yourself with your family and friends.
 
diff --git a/WHATSNEW b/WHATSNEW
index e20e2a8..0849b01 100644
--- a/WHATSNEW
+++ b/WHATSNEW
@@ -1,5 +1,5 @@
-Changes from Ant 1.5.4 to current CVS version
-=============================================
+Changes from Ant 1.5.4 to Ant 1.6
+=================================
 
 Changes that could break older environments:
 --------------------------------------------
@@ -63,6 +63,11 @@
   is now Hashtable<String, String[]>). This will affect third party code
   that extend Copy and override Copy#doFileOperations.
 
+* <loadproperties> didn't expand properties while <property file="..."/>
+  does, so they were not equivalent.  This has been fixed, which means
+  that propetries may get expanded twice if you use an
+  <expandproperties> filterreader.  Bugzilla Report 17782.
+
 Fixed bugs:
 -----------
 * Filter readers were not handling line endings properly.  Bugzilla
@@ -245,6 +250,12 @@
 * <junit includeantruntime="true" fork="true"> replaced the CLASSPATH instead
   of adding to it.  Bugzilla Report 14971.
 
+* <splash> could fail on JVMs that use null to indicate the system classloader.
+  Bugzilla Report 23320.
+
+* <xmlcatalog>s only worked when defined inside of tasks.  Bugzilla
+  Report 20965.
+
 Other changes:
 --------------
 * All tasks can be used outside of <target>s.  Note that some tasks
@@ -611,6 +622,18 @@
   or end of a file. Discussion started at
   http://marc.theaimsgroup.com/?l=ant-user&m=106366791228585&w=2
 
+* <java> and <junit> now support <assertions>, which let you enable
+  and disable Java1.4 assertions on a package or class basis. These
+  only work when fork=true, currently.
+
+* .NET tasks expanded with VB support <vbc> and J#, via <jsharp>, 
+  <importtypelib> and <ilasm>. <csc> supports nested <src> types, 
+  <defines> for (potentially conditional) definitions, <reference>
+  filesets for references. The executable attribute lets you switch to
+  mono or other implementations -<csc> has been tested with Mono on
+  Linux and OSX.
+    
+
 Changes from Ant 1.5.3 to Ant 1.5.4
 ===================================
 
diff --git a/build.bat b/build.bat
index 4025d28..ec901a1 100755
--- a/build.bat
+++ b/build.bat
@@ -1,9 +1,8 @@
 @echo off
 
-REM   Copyright (c) 2000-2002 The Apache Software Foundation.  All rights
+REM   Copyright (c) 2000-2003 The Apache Software Foundation.  All rights
 REM   reserved.
 
-set OLDCLASSPATH=%CLASSPATH%
 set REAL_ANT_HOME=%ANT_HOME%
 set ANT_HOME=bootstrap
 if exist bootstrap\lib\ant.jar if exist bootstrap\bin\ant.bat if exist bootstrap\bin\lcp.bat if exist bootstrap\bin\antRun.bat goto runAnt
@@ -13,21 +12,15 @@
 goto cleanup
 
 :runAnt
-set LOCALCLASSPATH=
-for %%i in (lib\optional\*.jar) do call bootstrap\bin\lcp.bat %%i
-set CLASSPATH=lib\optional\xalanj1compat.jar;%LOCALCLASSPATH%;%CLASSPATH%
-set LOCALCLASSPATH=
-
 if not "%REAL_ANT_HOME%" == "" goto install_ant
-call bootstrap\bin\ant.bat -emacs %1 %2 %3 %4 %5 %6 %7 %8 %9
+call bootstrap\bin\ant.bat -lib lib/optional %1 %2 %3 %4 %5 %6 %7 %8 %9
 goto cleanup
 
 :install_ant
-call bootstrap\bin\ant.bat -emacs -Dant.install="%REAL_ANT_HOME%" %1 %2 %3 %4 %5 %6 %7 %8 %9
+call bootstrap\bin\ant.bat -lib lib/optional -Dant.install="%REAL_ANT_HOME%" %1 %2 %3 %4 %5 %6 %7 %8 %9
 
 rem clean up
 :cleanup
 set ANT_HOME=%REAL_ANT_HOME%
 set REAL_ANT_HOME=
-set CLASSPATH=%OLDCLASSPATH%
-set OLDCLASSPATH=
+
diff --git a/build.sh b/build.sh
index 142a49f..3281235 100755
--- a/build.sh
+++ b/build.sh
@@ -28,31 +28,6 @@
   exit
 fi
 
-LOCALCLASSPATH=
-# add in the dependency .jar files
-DIRLIBS=lib/optional/*.jar
-for i in ${DIRLIBS}
-do
-    if [ "$i" != "${DIRLIBS}" ] ; then
-        LOCALCLASSPATH=$LOCALCLASSPATH:"$i"
-    fi
-done
-
-# make sure the classpath is in unix format
-if $cygwin ; then
-    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
-fi
-
-CLASSPATH=$LOCALCLASSPATH:$CLASSPATH
-
-# switch back to Windows format
-if $cygwin ; then
-    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
-fi
-
-export CLASSPATH
-
-
 if [ "$REALANTHOME" != "" ] ; then
   if $cygwin; then
      REALANTHOME=`cygpath --path --windows "$REALANTHOME"`
@@ -62,5 +37,5 @@
   ANT_INSTALL="-emacs"
 fi
 
-bootstrap/bin/ant "$ANT_INSTALL" $*
+bootstrap/bin/ant -lib lib/optional "$ANT_INSTALL" $*
 
diff --git a/build.xml b/build.xml
index e4eca82..678cc58 100644
--- a/build.xml
+++ b/build.xml
@@ -25,7 +25,7 @@
   -->
   <property name="Name" value="Apache Ant"/>
   <property name="name" value="ant"/>
-  <property name="version" value="1.6alpha"/>
+  <property name="version" value="1.6beta2"/>
   <property name="manifest-version" value="1.6"/>
   <property name="bootstrap.jar" value="ant-bootstrap.jar"/>
 
@@ -192,7 +192,7 @@
     <filename name="${optional.package}/XslpLiaison*"/>
   </selector>
 
-  <selector id="needs.apache.resolver">
+  <selector id="needs.apache-resolver">
     <filename name="${apache.resolver.type.package}/**"/>
   </selector>
 
@@ -200,11 +200,11 @@
     <filename name="${optional.package}/junit/**"/>
   </selector>
 
-  <selector id="needs.jakarta.regexp">
+  <selector id="needs.jakarta-regexp">
     <filename name="${regexp.package}/JakartaRegexp*"/>
   </selector>
 
-  <selector id="needs.jakarta.oro">
+  <selector id="needs.jakarta-oro">
     <or>
       <filename name="${regexp.package}/JakartaOro*"/>
       <filename name="${optional.package}/perforce/*"/>
@@ -212,7 +212,7 @@
     </or>
   </selector>
 
-  <selector id="needs.jakarta.bcel">
+  <selector id="needs.jakarta-bcel">
     <or>
       <filename name="${ant.package}/filters/util/JavaClassHelper*"/>
       <filename name="${util.package}/depend/bcel/*"/>
@@ -220,15 +220,15 @@
     </or>
   </selector>
 
-  <selector id="needs.jakarta.log4j">
+  <selector id="needs.jakarta-log4j">
     <filename name="${ant.package}/listener/Log4jListener*"/>
   </selector>
 
-  <selector id="needs.commons.logging">
+  <selector id="needs.commons-logging">
     <filename name="${ant.package}/listener/CommonsLoggingListener*"/>
   </selector>
 
-  <selector id="needs.bsf">
+  <selector id="needs.apache-bsf">
     <or>
       <filename name="${optional.package}/Script*"/>
       <filename name="${optional.package}/script/**/*"/>
@@ -270,7 +270,7 @@
     </or>
   </selector>
 
-  <selector id="needs.commons.net">
+  <selector id="needs.commons-net">
     <or>
       <filename name="${optional.package}/net/FTP*"/>
       <filename name="${optional.package}/net/RExec*"/>
@@ -611,16 +611,16 @@
             <selector refid="needs.xalan1" unless="xalan.present"/>
             <selector refid="needs.xalan2" unless="xalan2.present"/>
             <selector refid="needs.xslp" unless="xslp.present"/>
-            <selector refid="needs.apache.resolver" unless="apache.resolver.present"/>
+            <selector refid="needs.apache-resolver" unless="apache.resolver.present"/>
             <selector refid="needs.junit" unless="junit.present"/>
-            <selector refid="needs.jakarta.regexp"
+            <selector refid="needs.jakarta-regexp"
                       unless="jakarta.regexp.present"/>
-            <selector refid="needs.jakarta.oro" unless="jakarta.oro.present"/>
-            <selector refid="needs.jakarta.bcel" unless="bcel.present"/>
-            <selector refid="needs.jakarta.log4j" unless="log4j.present"/>
-            <selector refid="needs.commons.logging"
+            <selector refid="needs.jakarta-oro" unless="jakarta.oro.present"/>
+            <selector refid="needs.jakarta-bcel" unless="bcel.present"/>
+            <selector refid="needs.jakarta-log4j" unless="log4j.present"/>
+            <selector refid="needs.commons-logging"
                       unless="commons.logging.present"/>
-            <selector refid="needs.bsf" unless="bsf.present"/>
+            <selector refid="needs.apache-bsf" unless="bsf.present"/>
             <selector refid="needs.stylebook" unless="stylebook.present"/>
             <selector refid="needs.javamail" unless="javamail.complete"/>
             <selector refid="needs.icontract" unless="icontract.present"/>
@@ -629,7 +629,7 @@
             <selector refid="needs.weblogic.ddcreator"
                       unless="ejb.DDCreator.present"/>
             <selector refid="needs.weblogic.server" unless="ejb.wls.present"/>
-            <selector refid="needs.commons.net" unless="commons.net.present"/>
+            <selector refid="needs.commons-net" unless="commons.net.present"/>
             <selector refid="needs.starteam" unless="starteam.present"/>
             <selector refid="needs.vaj" unless="vaj.present"/>
             <selector refid="needs.antlr" unless="antlr.present"/>
@@ -724,10 +724,10 @@
             <filename name="${optional.type.package}/**"/>
             <filename name="${util.package}/depend/**"/>
             <filename name="${util.package}/optional/**"/>
-            <selector refid="needs.jakarta.log4j"/>
-            <selector refid="needs.commons.logging"/>
-            <selector refid="needs.jakarta.regexp"/>
-            <selector refid="needs.jakarta.oro"/>
+            <selector refid="needs.jakarta-log4j"/>
+            <selector refid="needs.commons-logging"/>
+            <selector refid="needs.jakarta-regexp"/>
+            <selector refid="needs.jakarta-oro"/>
             <selector refid="needs.jdk1.4+"/>
             <selector refid="needs.javamail"/>
             <selector refid="ant.launcher"/>
@@ -760,13 +760,6 @@
       </fileset>
     </jar>
 
-    <jar destfile="${build.lib}/optional.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="non-core"/>
-      <metainf dir="${build.dir}" includes="LICENSE.txt"/>
-    </jar>
-
     <jar destfile="${build.lib}/${bootstrap.jar}"
          basedir="${build.classes}"
          manifest="${manifest}">
@@ -774,11 +767,11 @@
       <metainf dir="${build.dir}" includes="LICENSE.txt"/>
       <manifest>
         <attribute name="Class-Path"
-                   value="ant.jar xml-apis.jar xercesImpl.jar optional.jar xalan.jar"/>
+                   value="ant.jar xml-apis.jar xercesImpl.jar xalan.jar"/>
       </manifest>
     </jar>
 
-    <jar destfile="${build.lib}/nodeps.jar"
+    <jar destfile="${build.lib}/ant-nodeps.jar"
          basedir="${build.classes}"
          manifest="${manifest.tmp}">
       <and>
@@ -789,14 +782,14 @@
             <selector refid="needs.xalan1"/>
             <selector refid="needs.xalan2"/>
             <selector refid="needs.xslp"/>
-            <selector refid="needs.apache.resolver"/>
+            <selector refid="needs.apache-resolver"/>
             <selector refid="needs.junit"/>
-            <selector refid="needs.jakarta.regexp"/>
-            <selector refid="needs.jakarta.oro"/>
-            <selector refid="needs.jakarta.bcel"/>
-            <selector refid="needs.jakarta.log4j"/>
-            <selector refid="needs.commons.logging"/>
-            <selector refid="needs.bsf"/>
+            <selector refid="needs.jakarta-regexp"/>
+            <selector refid="needs.jakarta-oro"/>
+            <selector refid="needs.jakarta-bcel"/>
+            <selector refid="needs.jakarta-log4j"/>
+            <selector refid="needs.commons-logging"/>
+            <selector refid="needs.apache-bsf"/>
             <selector refid="needs.stylebook"/>
             <selector refid="needs.javamail"/>
             <selector refid="needs.icontract"/>
@@ -804,7 +797,7 @@
             <selector refid="needs.weblogic.ejbc"/>
             <selector refid="needs.weblogic.ddcreator"/>
             <selector refid="needs.weblogic.server"/>
-            <selector refid="needs.commons.net"/>
+            <selector refid="needs.commons-net"/>
             <selector refid="needs.starteam"/>
             <selector refid="needs.vaj"/>
             <selector refid="needs.antlr"/>
@@ -819,147 +812,42 @@
       <metainf dir="${build.dir}" includes="LICENSE.txt"/>
     </jar>
 
-    <jar destfile="${build.lib}/${optional.jars.prefix}-trax.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.trax"/>
-    </jar>
+    <macrodef name="optional-jar">
+      <attribute name="dep"/>
+      <sequential>
+        <jar destfile="${build.lib}/${optional.jars.prefix}-${dep}.jar"
+          basedir="${build.classes}"
+          manifest="${manifest.tmp}">
+          <selector refid="needs.${dep}"/>
+        </jar>
+      </sequential>
+    </macrodef>
 
-    <jar destfile="${build.lib}/${optional.jars.prefix}-xalan1.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.xalan1"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-xalan2.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.xalan2"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-xslp.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.xslp"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-apache-resolver.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.apache.resolver"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-junit.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.junit"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-jakarta-regexp.jar"
-         basedir="${build.classes}" manifest="${manifest.tmp}">
-      <selector refid="needs.jakarta.regexp"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-oro.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.jakarta.oro"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-bcel.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.jakarta.bcel"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-log4j.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.jakarta.log4j"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-commons-logging.jar"
-         basedir="${build.classes}" manifest="${manifest.tmp}">
-      <selector refid="needs.commons.logging"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-apache-bsf.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.bsf"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-stylebook.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.stylebook"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-javamail.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.javamail"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-icontract.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.icontract"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-netrexx.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.netrexx"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-commons-net.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.commons.net"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-starteam.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.starteam"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-vaj.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.vaj"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-antlr.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.antlr"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-jmf.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.jmf"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-jai.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.jai"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-swing.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.swing"/>
-    </jar>
-
-    <jar destfile="${build.lib}/${optional.jars.prefix}-jdepend.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.jdepend"/>
-    </jar>
+    <optional-jar dep="trax"/>
+    <optional-jar dep="xalan1"/>
+    <optional-jar dep="xalan2"/>
+    <optional-jar dep="xslp"/>
+    <optional-jar dep="apache-resolver"/>
+    <optional-jar dep="junit"/>
+    <optional-jar dep="jakarta-regexp"/>
+    <optional-jar dep="jakarta-oro"/>
+    <optional-jar dep="jakarta-bcel"/>
+    <optional-jar dep="jakarta-log4j"/>
+    <optional-jar dep="commons-logging"/>
+    <optional-jar dep="apache-bsf"/>
+    <optional-jar dep="stylebook"/>
+    <optional-jar dep="javamail"/>
+    <optional-jar dep="icontract"/>
+    <optional-jar dep="netrexx"/>
+    <optional-jar dep="commons-net"/>
+    <optional-jar dep="starteam"/>
+    <optional-jar dep="vaj"/>
+    <optional-jar dep="antlr"/>
+    <optional-jar dep="jmf"/>
+    <optional-jar dep="jai"/>
+    <optional-jar dep="swing"/>
+    <optional-jar dep="jsch"/>
+    <optional-jar dep="jdepend"/>
 
     <jar destfile="${build.lib}/${optional.jars.prefix}-weblogic.jar"
          basedir="${build.classes}"
@@ -971,12 +859,6 @@
       </or>
     </jar>
 
-    <jar destfile="${build.lib}/${optional.jars.prefix}-jsch.jar"
-         basedir="${build.classes}"
-         manifest="${manifest.tmp}">
-      <selector refid="needs.jsch"/>
-    </jar>
-
   </target>
 
   <!--   Creates jar of test utility classes -->
diff --git a/docs/faq.html b/docs/faq.html
index 253592f..cbc50bf 100644
--- a/docs/faq.html
+++ b/docs/faq.html
@@ -233,6 +233,10 @@
   How can I include national characters like German
         umlauts in my build file?
       </a></li>
+                <li><a href="#use-zip-instead-of-jar">
+  How do I use <code>jar</code>'s <code>M</code> switch?
+      I don't want a MANIFEST.
+      </a></li>
             </ul>
                 <h4 class="toc">It doesn't work (as expected)</h4>
         <ul>
@@ -846,6 +850,19 @@
                         <pre class="code">
 &lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;
 </pre>
+                    <p class="faq">
+      <a name="use-zip-instead-of-jar"></a>
+      How do I use <code>jar</code>'s <code>M</code> switch?
+      I don't want a MANIFEST.
+    </p>
+                  <p>A JAR archive is a ZIP file, so if you don't want a
+        MANIFEST you can simply use <code>&lt;zip&gt;</code>.</p>
+                        <p>If your file names contain national characters you should
+        know that Sun's <code>jar</code> utility like Ant's
+        <code>&lt;jar&gt;</code> uses UFT8 to encode their names while
+        <code>&lt;zip&gt;</code> uses your platforms default encoding.
+        Use the encoding attribute of <code>&lt;zip&gt;</code> if
+        necessary.</p>
                                 <p class="faq">
       <a name="always-recompiles"></a>
       Why does Ant always recompile all my Java files?
@@ -970,7 +987,7 @@
                         <p>You may have seen these lower-case directory names in
         WinZIP, but WinZIP is trying to be helpful (and fails).  If
         WinZIP encounters a filename that is all upper-case, it
-        assumes it has come from an old DOS box andchanges the case to
+        assumes it has come from an old DOS box and changes the case to
         all lower-case for you.</p>
                         <p>If you extract (or just check) the archive with jar, you
         will see that the names have the correct case.</p>
@@ -1103,6 +1120,28 @@
    &lt;!ENTITY include SYSTEM &quot;file:./header.xml&quot;&gt;
 ]&gt;
 </pre>
+                        <p>Starting with Ant 1.6, there is a new
+        <code>&lt;import&gt;</code> task that can (also) be used to
+        include build file fragments.  Unlike the snippets used with
+        entity includes, the referenced files have to be complete Ant
+        build files, though.</p>
+                        <p>The example above would become:</p>
+                        <pre class="code">
+&lt;?xml version=&quot;1.0&quot;?&gt;
+&lt;project name=&quot;test&quot; default=&quot;test&quot; basedir=&quot;.&quot;&gt;
+
+  &lt;target name=&quot;setup&quot;&gt;
+    ...
+  &lt;/target&gt;
+
+  &lt;import file=&quot;../common.xml&quot;/&gt;
+
+  ...
+
+&lt;/project&gt;
+</pre>
+                        <p>Unlike entity includes, <code>&lt;import&gt;</code> will
+        let you use Ant properties in the file name.</p>
                     <p class="faq">
       <a name="mail-logger"></a>
       How do I send an email with the result of my build
@@ -1315,6 +1354,10 @@
         <code>CLASSPATH</code> environment variable or
         <code>ANT_HOME/lib</code>" for the rest of this
         answer.</p>
+                        <p>Technically the sentence above isn't true for Ant 1.6
+        and later anymore, but the result is the same.  For the sake
+        of this discussion, <code>CLASSPATH</code> and
+        <code>ANT_HOME/lib</code> are identical.</p>
                         <p>This question collects a common type of problem: A task
         needs an external library and it has a nested classpath
         element so that you can point it to this external library, but
@@ -1367,6 +1410,8 @@
           <li>remove the class that loads the external library from
           the <code>CLASSPATH</code>.</li>
         </ol>
+                        <p><strong>Using The Second Option with Ant 1.5.4 and
+        Earlier:</strong></p>
                         <p>The easiest way to do this is to remove
         <code>optional.jar</code> from <code>ANT_HOME/lib</code>.  If
         you do so, you will have to <code>&lt;taskdef&gt;</code> all
@@ -1393,8 +1438,20 @@
         directory, in the <code>&lt;style&gt;</code> case it is one of
         the <code>*Liaison</code> classes in
         <code>org/apache/tools/ant/taskdefs/optional</code>.</p>
+                        <p><strong>Using The Second Option with Ant 1.6 and
+        later:</strong></p>
+                        <p>In Ant 1.6 <code>optional.jar</code> has been split into
+        multiple jars, each one containing classes with the same
+        dependencies on external libraries.  You can move the
+        "offending" jar out of ANT_HOME/lib.  For the
+        <code>&lt;junit&gt;</code> task it would be
+        <code>ant-junit.jar</code> and for <code>&lt;style&gt;</code>
+        it would be <code>ant-trax.jar</code>,
+        <code>ant-xalan1.jar</code> or <code>ant-xslp.jar</code> -
+        depending on the processor you use.</p>
                         <p>If you use the option to break up <code>optional.jar</code>
-        for <code>&lt;junit&gt;</code>, you still have to use a
+        for <code>&lt;junit&gt;</code> or remove
+        <code>ant-junit.jar</code>, you still have to use a
         <code>&lt;taskdef&gt;</code> with a nested
         <code>&lt;classpath&gt;</code> to define the junit task.</p>
                     <p class="faq">
diff --git a/docs/index.html b/docs/index.html
index e806329..135068f 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -169,32 +169,22 @@
   <div class="content">
     <h1 class="title">Welcome</h1>
             <h3 class="section">
-      <a name="ApacheCon 2003"></a>
-      ApacheCon 2003
+      <a name="Ant 1.6beta2"></a>
+      Ant 1.6beta2
     </h3>
-                        <a href="http://apachecon.com/2003/US/index.html">
-    <img align="right" border="0" src="http://jakarta.apache.org/images/logos/ac2003-150.gif" />
-  </a>
-                                <p>
-    <a href="http://apachecon.com/2003/US/index.html">ApacheCon US 2003</a>
-    is now open for registration. ApacheCon is the conference for all things
-    Apache. Come along and learn about a range of new technologies, meet some
-    Apache folks and share the knowledge.
-    </p>
-                        <h3 class="section">
-      <a name="Ant 1.5.4"></a>
-      Ant 1.5.4
-    </h3>
-                        <p>Apache Ant 1.5.4 is now available for
-     <a href="http://ant.apache.org/bindownload.cgi">download</a>.
-    </p>
-                                <div class="warning">
-    <div class="label">Note</div>
-    <div class="content">Ant 1.5.4 will be the last release that supports
-      JDK 1.1. The next major release of Ant, Ant 1.6, will require JDK 1.2 or
-      later
-    </div>
-    </div>
+                        <p>Apache Ant 1.6beta2 is now available for <a href="http://cvs.apache.org/dist/ant/v1.6beta2/">download</a>.  As
+       we've already said in the announcements of Ant 1.5.4, this release
+       requires JDK 1.2 or later to run.</p>
+                                <p>We encourage user to give this beta a release a try and report
+       any bugs found so that we get a chance to fix them before we make
+       the final release of Ant 1.6.</p>
+                                <p>Ant 1.6 adds a lot of new features, most prominently support
+       for XML namespaces as well as a new concept of Ant libraries that
+       makes use of namespaces to avoid name clashes of custom tasks.
+       For a longer list of fixed bugs and new features see the release
+       notes.</p>
+                                <p>The manual of Ant 1.6 is available on line
+       <a href="manual-1.6beta/"> here</a>.</p>
                         <h3 class="section">
       <a name="Apache Ant"></a>
       Apache Ant
diff --git a/docs/manual/CoreTasks/ant.html b/docs/manual/CoreTasks/ant.html
index bfecfcb..d054f5a 100644
--- a/docs/manual/CoreTasks/ant.html
+++ b/docs/manual/CoreTasks/ant.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Ant Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -20,15 +21,19 @@
 <p>If no target attribute is supplied, the default target of the new project is
 used.</p>
 <p>By default, all of the properties of the current project will be
-available in the new project.   Alternatively, you can
-set the <i>inheritAll</i> attribute to <code>false</code> and only
+available in the new project.  Alternatively, you can set the
+<i>inheritAll</i> attribute to <code>false</code> and only
 &quot;user&quot; properties (i.e., those passed on the command-line)
 will be passed to the new project.  In either case, the set of
-properties passed to the new project will override the properties that 
-are set in the new project (See also the <a href="property.html">property task</a>).</p>
-<p>You can also set properties in the new project from the old project by
-using nested property tags. These properties are always passed regardless of the
-setting of <i>inheritAll</i>.  This allows you to parameterize your subprojects.</p>
+properties passed to the new project will override the properties that
+are set in the new project (See also the <a
+href="property.html">property task</a>).</p>
+
+<p>You can also set properties in the new project from the old project
+by using nested property tags. These properties are always passed
+regardless of the setting of <i>inheritAll</i>.  This allows you to
+parameterize your subprojects.  Properties defined on the command line
+can not be overridden by nested &lt;property&gt; elements.</p>
 
 <p>References to data types can also be passed to the new project, but
 by default they are not.  If you set the inheritrefs attribute to
@@ -38,8 +43,9 @@
 <p>Nested <a href="#reference"><i>&lt;reference&gt;</i></a> elements
 can also be used to copy references from the calling project to the
 new project, optionally under a different id.  References taken from
-nested elements will override existing references in the new
-project.</p>
+nested elements will override existing references that have been
+defined outside of targets in the new project - but not those defined
+inside of targets.</p>
 
 <h3>Parameters</h3>
 <table border="1" cellpadding="2" cellspacing="0">
diff --git a/docs/manual/CoreTasks/antcall.html b/docs/manual/CoreTasks/antcall.html
index bfd7462..6d3f9b9 100644
--- a/docs/manual/CoreTasks/antcall.html
+++ b/docs/manual/CoreTasks/antcall.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>AntCall Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -21,15 +22,18 @@
 will be passed to the new project.  In either case, the set of
 properties passed to the new project will override the properties that 
 are set in the new project (See also the <a href="property.html">property task</a>).</p>
-<p>You can also set properties in the new project from the old project by
-using nested param tags. These properties are always passed regardless of the
-setting of <i>inheritAll</i>.  This allows you to parameterize your subprojects.</p>
+<p>You can also set properties in the new project from the old project
+by using nested param tags. These properties are always passed
+regardless of the setting of <i>inheritAll</i>.  This allows you to
+parameterize your subprojects.  Properties defined on the command line
+can not be overridden by nested &lt;param&gt; elements.</p>
 
 <p>Nested <a href="#reference"><i>&lt;reference&gt;</i></a> elements can
 be used to copy references from the calling project to the new
 project, optionally under a different id.  References taken from
-nested elements will override existing references in the new
-project.</p>
+nested elements will override existing references that have been
+defined outside of targets in the new project - but not those defined
+inside of targets.</p>
 
 <p>
 When a target is invoked by antcall, all of its dependent targets will
diff --git a/docs/manual/CoreTasks/antstructure.html b/docs/manual/CoreTasks/antstructure.html
index 2893727..3cb8559 100644
--- a/docs/manual/CoreTasks/antstructure.html
+++ b/docs/manual/CoreTasks/antstructure.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>AntStructure Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/apply.html b/docs/manual/CoreTasks/apply.html
index a846bb2..71217ce 100644
--- a/docs/manual/CoreTasks/apply.html
+++ b/docs/manual/CoreTasks/apply.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Apply Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -26,6 +27,10 @@
 for in the given dest.</p>
 <p>At least one fileset or filelist is required, and you must not specify more than
 one mapper.</p>
+
+<p>Note that you cannot interact with the forked program, the only way
+to send input to it is via the input and inputstring attributes.</p>
+
 <h3>Parameters</h3>
 <table border="1" cellpadding="2" cellspacing="0">
   <tr>
diff --git a/docs/manual/CoreTasks/available.html b/docs/manual/CoreTasks/available.html
index f492f58..b122f31 100644
--- a/docs/manual/CoreTasks/available.html
+++ b/docs/manual/CoreTasks/available.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Available Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/basename.html b/docs/manual/CoreTasks/basename.html
index 641c4b5..82d01b9 100644
--- a/docs/manual/CoreTasks/basename.html
+++ b/docs/manual/CoreTasks/basename.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Basename Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/buildnumber.html b/docs/manual/CoreTasks/buildnumber.html
index 3dc3b38..d585b19 100644
--- a/docs/manual/CoreTasks/buildnumber.html
+++ b/docs/manual/CoreTasks/buildnumber.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>BuildNumber Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/changelog.html b/docs/manual/CoreTasks/changelog.html
index 733fd54..ba245eb 100644
--- a/docs/manual/CoreTasks/changelog.html
+++ b/docs/manual/CoreTasks/changelog.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>ChangeLog Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/checksum.html b/docs/manual/CoreTasks/checksum.html
index 5ea92a5..db804c2 100644
--- a/docs/manual/CoreTasks/checksum.html
+++ b/docs/manual/CoreTasks/checksum.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Checksum Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/chmod.html b/docs/manual/CoreTasks/chmod.html
index bf8acc2..0de8add 100644
--- a/docs/manual/CoreTasks/chmod.html
+++ b/docs/manual/CoreTasks/chmod.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Chmod Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/common.html b/docs/manual/CoreTasks/common.html
index 4447fb7..4535dd5 100644
--- a/docs/manual/CoreTasks/common.html
+++ b/docs/manual/CoreTasks/common.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Common</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/concat.html b/docs/manual/CoreTasks/concat.html
index b25fb30..9bf717b 100644
--- a/docs/manual/CoreTasks/concat.html
+++ b/docs/manual/CoreTasks/concat.html
@@ -3,6 +3,7 @@
     <head>
       <meta http-equiv="Content-Language" content="en-us">
       <title>Concat</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
     </head>
 
     <body>
diff --git a/docs/manual/CoreTasks/condition.html b/docs/manual/CoreTasks/condition.html
index 78a00c6..51ae8b3 100644
--- a/docs/manual/CoreTasks/condition.html
+++ b/docs/manual/CoreTasks/condition.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Condition Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/conditions.html b/docs/manual/CoreTasks/conditions.html
index 40f25b9..e344874 100644
--- a/docs/manual/CoreTasks/conditions.html
+++ b/docs/manual/CoreTasks/conditions.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Conditions Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/copy.html b/docs/manual/CoreTasks/copy.html
index e49ca88..53045a6 100644
--- a/docs/manual/CoreTasks/copy.html
+++ b/docs/manual/CoreTasks/copy.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Copy Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/copydir.html b/docs/manual/CoreTasks/copydir.html
index 2eecb92..29d9b62 100644
--- a/docs/manual/CoreTasks/copydir.html
+++ b/docs/manual/CoreTasks/copydir.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Copydir Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/copyfile.html b/docs/manual/CoreTasks/copyfile.html
index e7ad864..831210f 100644
--- a/docs/manual/CoreTasks/copyfile.html
+++ b/docs/manual/CoreTasks/copyfile.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Copyfile Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/cvs.html b/docs/manual/CoreTasks/cvs.html
index 8612f08..9fa7853 100644
--- a/docs/manual/CoreTasks/cvs.html
+++ b/docs/manual/CoreTasks/cvs.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>CVS Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -54,7 +55,10 @@
   </tr>
   <tr>
     <td valign="top">dest</td>
-    <td valign="top">the directory where the checked out files should be placed.</td>
+    <td valign="top">the directory where the checked out files should
+    be placed.  Note that this is different from CVS's -d command line
+    switch as Ant will never shorten pathnames to avoid empty
+    directories.</td>
     <td align="center" valign="top">No, default is project's basedir.</td>
   </tr>
   <tr>
@@ -165,8 +169,8 @@
 <p>Updates from the head of repository ignoring sticky bits (<code>-A</code>) and creating any new directories as necessary (<code>-d</code>).</p>
 <p>Note: the text of the command is passed to cvs &quot;as-is&quot; so any cvs options should appear
 before the command, and any command options should appear after the command as in the diff example
-above. See <a href="http://www.cvshome.org/docs/manual/cvs-1.11.6/cvs.html" target="_top">the cvs manual</a> for details,
-specifically the <a href="http://www.cvshome.org/docs/manual/cvs-1.11.6/cvs_16.html" target="_top">Guide to CVS commands</a></p>
+above. See <a href="http://www.cvshome.org/docs/manual/cvs-1.11.7/cvs.html" target="_top">the cvs manual</a> for details,
+specifically the <a href="http://www.cvshome.org/docs/manual/cvs-1.11.7/cvs_16.html" target="_top">Guide to CVS commands</a></p>
 <hr>
 <p align="center">Copyright &copy; 2000-2003 Apache Software
 Foundation.  All rights Reserved.</p>
diff --git a/docs/manual/CoreTasks/cvspass.html b/docs/manual/CoreTasks/cvspass.html
index b26c1c5..7e8c676 100644
--- a/docs/manual/CoreTasks/cvspass.html
+++ b/docs/manual/CoreTasks/cvspass.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>CVSPass Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/cvstagdiff.html b/docs/manual/CoreTasks/cvstagdiff.html
index 1d7f502..0477f55 100644
--- a/docs/manual/CoreTasks/cvstagdiff.html
+++ b/docs/manual/CoreTasks/cvstagdiff.html
@@ -2,6 +2,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>CvsTagDiff Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 <body>
 <h2><a name="cvstagdiff">CvsTagDiff</a></h2>
diff --git a/docs/manual/CoreTasks/defaultexcludes.html b/docs/manual/CoreTasks/defaultexcludes.html
index c9395f8..4743cb3 100644
--- a/docs/manual/CoreTasks/defaultexcludes.html
+++ b/docs/manual/CoreTasks/defaultexcludes.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>DefaultExcludes Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/delete.html b/docs/manual/CoreTasks/delete.html
index 98d25d3..d2055c8 100644
--- a/docs/manual/CoreTasks/delete.html
+++ b/docs/manual/CoreTasks/delete.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Delete Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/deltree.html b/docs/manual/CoreTasks/deltree.html
index 08dd2b9..5280774 100644
--- a/docs/manual/CoreTasks/deltree.html
+++ b/docs/manual/CoreTasks/deltree.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Deltree Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/dependset.html b/docs/manual/CoreTasks/dependset.html
index dfd578a..5ec3ce0 100644
--- a/docs/manual/CoreTasks/dependset.html
+++ b/docs/manual/CoreTasks/dependset.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>DependSet Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/dirname.html b/docs/manual/CoreTasks/dirname.html
index 9255f01..d0e8df2 100644
--- a/docs/manual/CoreTasks/dirname.html
+++ b/docs/manual/CoreTasks/dirname.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Dirname Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/ear.html b/docs/manual/CoreTasks/ear.html
index 58c7ae8..6461ed7 100644
--- a/docs/manual/CoreTasks/ear.html
+++ b/docs/manual/CoreTasks/ear.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>EAR Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/echo.html b/docs/manual/CoreTasks/echo.html
index 7553f24..113715c 100644
--- a/docs/manual/CoreTasks/echo.html
+++ b/docs/manual/CoreTasks/echo.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Echo Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/exec.html b/docs/manual/CoreTasks/exec.html
index 385b5ae..d257c85 100644
--- a/docs/manual/CoreTasks/exec.html
+++ b/docs/manual/CoreTasks/exec.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Exec Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -13,6 +14,9 @@
 the command is only executed when Ant is run on one of the specified operating
 systems.</p>
 
+<p>Note that you cannot interact with the forked program, the only way
+to send input to it is via the input and inputstring attributes.</p>
+
 <h4>Cygwin Users</h4>
 <p>In general the &lt;exec&gt; task will not understand paths such as /bin/sh for 
 the executable parameter. This is because the Java VM in which Ant is running is a 
@@ -20,20 +24,27 @@
 </p>
  
 <h4>OpenVMS Users</h4>
-
 <p>The command specified using <code>executable</code> and
 <code>&lt;arg&gt;</code> elements is executed exactly as specified
-inside a temporary DCL script.  This means that paths have to be
-written in VMS style.  It is also required that the logical
-<code>JAVA$FORK_SUPPORT_CHDIR</code> is set to <code>TRUE</code> (see
-the <i>JDK Release Notes</i>).</p>
- 
+inside a temporary DCL script.  This has some implications:
+<ul>
+<li>paths have to be written in VMS style</li>
+<li>if your <code>executable</code> points to a DCL script remember to
+prefix it with an <code>@</code>-sign
+(e.g. <code>executable="@[FOO]BAR.COM"</code>), just as you would in a
+DCL script</li>
+</ul>
+For <code>&lt;exec&gt;</code> to work in an environment with a Java VM
+older than version 1.4.1-2 it is also <i>required</i> that the logical
+<code>JAVA$FORK_SUPPORT_CHDIR</code> is set to <code>TRUE</code> in
+the job table (see the <i>JDK Release Notes</i>).</p>
+
 <p>Please note that the Java VM provided by HP doesn't follow OpenVMS'
 conventions of exit codes.  If you run a Java VM with this task, the
 task may falsely claim that an error occured (or silently ignore an
 error).  Don't use this task to run <code>JAVA.EXE</code>, use a
 <code>&lt;java&gt;</code> task with the <code>fork</code> attribute
-set ti <code>true</code> instead as this task will follow the VM's
+set to <code>true</code> instead as this task will follow the VM's
 interpretation of exit codes.</p>
 
 <h3>Parameters</h3>
diff --git a/docs/manual/CoreTasks/fail.html b/docs/manual/CoreTasks/fail.html
index d679539..1fce1dc 100644
--- a/docs/manual/CoreTasks/fail.html
+++ b/docs/manual/CoreTasks/fail.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Fail Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/filter.html b/docs/manual/CoreTasks/filter.html
index e579ac4..9750206 100644
--- a/docs/manual/CoreTasks/filter.html
+++ b/docs/manual/CoreTasks/filter.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Filter Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/fixcrlf.html b/docs/manual/CoreTasks/fixcrlf.html
index dfa478e..c418c4c 100644
--- a/docs/manual/CoreTasks/fixcrlf.html
+++ b/docs/manual/CoreTasks/fixcrlf.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>FixCRLF Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/genkey.html b/docs/manual/CoreTasks/genkey.html
index e89cbd9..4bddd45 100644
--- a/docs/manual/CoreTasks/genkey.html
+++ b/docs/manual/CoreTasks/genkey.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>GenKey Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/get.html b/docs/manual/CoreTasks/get.html
index f51c195..58cff68 100644
--- a/docs/manual/CoreTasks/get.html
+++ b/docs/manual/CoreTasks/get.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Get Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/gunzip.html b/docs/manual/CoreTasks/gunzip.html
index 07e6cd6..1a195d8 100644
--- a/docs/manual/CoreTasks/gunzip.html
+++ b/docs/manual/CoreTasks/gunzip.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>GUnZip Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/gzip.html b/docs/manual/CoreTasks/gzip.html
index 3fe9205..d411ddb 100644
--- a/docs/manual/CoreTasks/gzip.html
+++ b/docs/manual/CoreTasks/gzip.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>GZip Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/import.html b/docs/manual/CoreTasks/import.html
index 6317069..884fe49 100644
--- a/docs/manual/CoreTasks/import.html
+++ b/docs/manual/CoreTasks/import.html
@@ -3,6 +3,7 @@
 <head>
   <meta http-equiv="Content-Language" content="en-us">
   <title>Import Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 <body>
   <h2><a name="import">Import</a></h2>
@@ -83,6 +84,15 @@
       </td>
       <td valign="top" align="center">Yes</td>
     </tr>
+    <tr>
+      <td valign="top">optional<br>
+      </td>
+      <td valign="top">
+        if true, do not issue stop the build if the file does not exist,
+        default is false.<br>
+      </td>
+      <td valign="top" align="center">No</td>
+    </tr>
   </tbody>
 </table>
 <h3><br>
diff --git a/docs/manual/CoreTasks/input.html b/docs/manual/CoreTasks/input.html
index 2209c62..36e34e8 100644
--- a/docs/manual/CoreTasks/input.html
+++ b/docs/manual/CoreTasks/input.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Input Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -118,4 +119,4 @@
 <p align="center">Copyright &copy; 2001-2003 Apache Software Foundation. All rights
 Reserved.</p>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/docs/manual/CoreTasks/jar.html b/docs/manual/CoreTasks/jar.html
index 61a1dc1..3c144bc 100644
--- a/docs/manual/CoreTasks/jar.html
+++ b/docs/manual/CoreTasks/jar.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Jar Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/java.html b/docs/manual/CoreTasks/java.html
index c2b9f85..f725ff3 100644
--- a/docs/manual/CoreTasks/java.html
+++ b/docs/manual/CoreTasks/java.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Java Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -14,6 +15,10 @@
 <p>
 If odd things go wrong when you run this task, set fork="true" to use a new
 JVM.
+
+<p>Note that you cannot interact with a forked VM, the only way to
+send input to it is via the input and inputstring attributes.</p>
+
 <h3>Parameters</h3>
 <table border="1" cellpadding="2" cellspacing="0">
   <tr>
diff --git a/docs/manual/CoreTasks/javac.html b/docs/manual/CoreTasks/javac.html
index 192643d..fae0fd2 100644
--- a/docs/manual/CoreTasks/javac.html
+++ b/docs/manual/CoreTasks/javac.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Javac Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/javadoc.html b/docs/manual/CoreTasks/javadoc.html
index 4b5b84a..d7e08ef 100644
--- a/docs/manual/CoreTasks/javadoc.html
+++ b/docs/manual/CoreTasks/javadoc.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Javadoc Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/loadfile.html b/docs/manual/CoreTasks/loadfile.html
index 6d80843..843c967 100644
--- a/docs/manual/CoreTasks/loadfile.html
+++ b/docs/manual/CoreTasks/loadfile.html
@@ -1,6 +1,7 @@
 <html>
 <head>
 <title>LoadFile Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/loadproperties.html b/docs/manual/CoreTasks/loadproperties.html
index 641b5fe..220f001 100644
--- a/docs/manual/CoreTasks/loadproperties.html
+++ b/docs/manual/CoreTasks/loadproperties.html
@@ -1,6 +1,7 @@
 <html>
 <head>
 <title>LoadProperties Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/macrodef.html b/docs/manual/CoreTasks/macrodef.html
index 7d7fa7e..dea9d01 100644
--- a/docs/manual/CoreTasks/macrodef.html
+++ b/docs/manual/CoreTasks/macrodef.html
@@ -3,6 +3,7 @@
   <head>
     <meta http-equiv="Content-Language" content="en-us"></meta>
     <title>MacroDef Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
   </head>
     
   <body>
@@ -17,7 +18,7 @@
       or &lt;parallel&gt; task when the new task is run.
     </p>
     <p>
-      Introduced in ant1.6 <font color="red">Experimental</font>.
+      <em>since Ant 1.6</em>
     </p>
     <h3>Parameters</h3>
     <table border="1" cellpadding="2" cellspacing="0">
@@ -38,17 +39,6 @@
         </td>
         <td valign="top" align="center">No</td>
       </tr>
-      <tr>
-        <td valign="top">attributestyle</td>
-        <td valign="top">
-          <em>Temporary</em>
-          this attribute specifies if the attribute is in ant style
-          (i.e. ${attributeName}) or xpath style (i.e @attributeName).
-          Valid values are "ant" and "xpath". The default value
-          is "ant".
-        </td>
-        <td valign="top" align="center">No</td>
-      </tr>
     </table>
       <h3>Parameters specified as nested elements</h3>
     <h4>attribute</h4>
@@ -63,11 +53,6 @@
       task using the ant property notation - ${attribute name}.
       Note that is not an actual ant property.
     </p>
-    <p>
-      If the attribute style is set to "xpath", the attribute is
-      specified in the body of the template task by prefixing the
-      name with a "@".
-    </p>
     <h3>Parameters</h3>
     <table border="1" cellpadding="2" cellspacing="0">
       <tr>
@@ -141,23 +126,6 @@
       </pre>
     </blockquote>
     <p>
-      The following fragment sets the attribute style to "xpath"
-      for the macro definition &lt;testing&gt; and calls the
-      macro. The fragment should output "attribute is this is a test".
-    </p>
-    <blockquote>
-      <pre>
-&lt;macrodef name="testing" attributestyle="xpath"&gt;
-   &lt;attribute name="abc"/&gt;
-   &lt;sequential&gt;
-      &lt;echo&gt;attribute is @abc&lt;/echo&gt;
-   &lt;/sequential&gt;
-&lt;/macrodef&gt;
-
-&lt;testing abc="this is a test"/&gt;
-      </pre>
-    </blockquote>
-    <p>
       The following fragment defines a task called &lt;call-cc&gt; which
       take the attributes "target", "link" and "target.dir" and the
       nested element "cc-elements". The body of the task
diff --git a/docs/manual/CoreTasks/mail.html b/docs/manual/CoreTasks/mail.html
index 05dacc1..ffe59d3 100644
--- a/docs/manual/CoreTasks/mail.html
+++ b/docs/manual/CoreTasks/mail.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Mail Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/manifest.html b/docs/manual/CoreTasks/manifest.html
index 1dc12f9..99c18d6 100644
--- a/docs/manual/CoreTasks/manifest.html
+++ b/docs/manual/CoreTasks/manifest.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Manifest Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/mkdir.html b/docs/manual/CoreTasks/mkdir.html
index 125389d..9c653c9 100644
--- a/docs/manual/CoreTasks/mkdir.html
+++ b/docs/manual/CoreTasks/mkdir.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Mkdir Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/move.html b/docs/manual/CoreTasks/move.html
index bb32351..b7d148c 100644
--- a/docs/manual/CoreTasks/move.html
+++ b/docs/manual/CoreTasks/move.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Move Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/pack.html b/docs/manual/CoreTasks/pack.html
index ab21952..b8013da 100644
--- a/docs/manual/CoreTasks/pack.html
+++ b/docs/manual/CoreTasks/pack.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>GZip/BZip2 Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/parallel.html b/docs/manual/CoreTasks/parallel.html
index 3a0db82..a16c591 100644
--- a/docs/manual/CoreTasks/parallel.html
+++ b/docs/manual/CoreTasks/parallel.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Parallel Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/patch.html b/docs/manual/CoreTasks/patch.html
index 5bfa28d..6403cc7 100644
--- a/docs/manual/CoreTasks/patch.html
+++ b/docs/manual/CoreTasks/patch.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Patch Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/pathconvert.html b/docs/manual/CoreTasks/pathconvert.html
index 2d407dc..39830be 100644
--- a/docs/manual/CoreTasks/pathconvert.html
+++ b/docs/manual/CoreTasks/pathconvert.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>PathConvert Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/presetdef.html b/docs/manual/CoreTasks/presetdef.html
index 5980586..1b472a1 100644
--- a/docs/manual/CoreTasks/presetdef.html
+++ b/docs/manual/CoreTasks/presetdef.html
@@ -3,6 +3,7 @@
   <head>
     <meta http-equiv="Content-Language" content="en-us"></meta>
     <title>PreSetDef Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
   </head>
   
   <body>
@@ -15,7 +16,7 @@
       or elements preset.
     </p>
     <p>
-      Introduced in ant1.6 <font color="red">Experimental</font>.
+      <em>since Ant 1.6</em>
     </p>
     <h3>Parameters</h3>
     <table border="1" cellpadding="2" cellspacing="0">
diff --git a/docs/manual/CoreTasks/property.html b/docs/manual/CoreTasks/property.html
index f6cc115..b56030d 100644
--- a/docs/manual/CoreTasks/property.html
+++ b/docs/manual/CoreTasks/property.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Property Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/recorder.html b/docs/manual/CoreTasks/recorder.html
index 8503104..ea87051 100644
--- a/docs/manual/CoreTasks/recorder.html
+++ b/docs/manual/CoreTasks/recorder.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Recorder Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/rename.html b/docs/manual/CoreTasks/rename.html
index ccf0e26..880348f 100644
--- a/docs/manual/CoreTasks/rename.html
+++ b/docs/manual/CoreTasks/rename.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Rename Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/replace.html b/docs/manual/CoreTasks/replace.html
index 38e26b5..b5938ee 100644
--- a/docs/manual/CoreTasks/replace.html
+++ b/docs/manual/CoreTasks/replace.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Replace Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/rmic.html b/docs/manual/CoreTasks/rmic.html
index ae58823..dc0a1f6 100644
--- a/docs/manual/CoreTasks/rmic.html
+++ b/docs/manual/CoreTasks/rmic.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Rmic Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/sequential.html b/docs/manual/CoreTasks/sequential.html
index edab21a..2eaa963 100644
--- a/docs/manual/CoreTasks/sequential.html
+++ b/docs/manual/CoreTasks/sequential.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Sequential Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/signjar.html b/docs/manual/CoreTasks/signjar.html
index 30dade6..1d9e676 100644
--- a/docs/manual/CoreTasks/signjar.html
+++ b/docs/manual/CoreTasks/signjar.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>SignJar Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/sleep.html b/docs/manual/CoreTasks/sleep.html
index 61c65dd..325cf16 100644
--- a/docs/manual/CoreTasks/sleep.html
+++ b/docs/manual/CoreTasks/sleep.html
@@ -2,6 +2,7 @@
 
 <head>
 <title>Sleep Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/sql.html b/docs/manual/CoreTasks/sql.html
index 52b3726..b6bc9a6 100644
--- a/docs/manual/CoreTasks/sql.html
+++ b/docs/manual/CoreTasks/sql.html
@@ -2,6 +2,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>SQL Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 <body>
 
diff --git a/docs/manual/CoreTasks/style.html b/docs/manual/CoreTasks/style.html
index a8f11b8..5d4e896 100644
--- a/docs/manual/CoreTasks/style.html
+++ b/docs/manual/CoreTasks/style.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Xslt/Style Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/subant.html b/docs/manual/CoreTasks/subant.html
index 6aed7f6..4c3c417 100644
--- a/docs/manual/CoreTasks/subant.html
+++ b/docs/manual/CoreTasks/subant.html
@@ -4,6 +4,7 @@
   <meta http-equiv="Content-Language" content="en-us">
   <title>Subant
  Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body bgcolor="#ffffff" text="#000000" link="#525D76"
@@ -18,7 +19,6 @@
           <td valign="bottom">
             <font size="+3" face="arial,helvetica,sanserif"><strong>Subant
  Task</strong></font>
-            <br><font face="arial,helvetica,sanserif"><i>EXPERIMENTAL:</i> This task is experimental and may be under continual change till Ant1.6 ships; it may even be omitted from the product.</font>
           </td>
           <td>
             <!-- PROJECT LOGO -->
@@ -47,10 +47,6 @@
 
       <tr><td><blockquote>
 <p>
-            <i>EXPERIMENTAL:</i> This task is experimental and may be under continual
-            change till Ant1.6 ships; it may even be omitted from the product.
-        </p>
-<p>
         Calls a given target for all defined sub-builds. This is an extension
         of ant for bulk project execution.
 
diff --git a/docs/manual/CoreTasks/sync.html b/docs/manual/CoreTasks/sync.html
index 7d24a0c..30920ed 100644
--- a/docs/manual/CoreTasks/sync.html
+++ b/docs/manual/CoreTasks/sync.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Sync Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/tar.html b/docs/manual/CoreTasks/tar.html
index a9d6b27..a7c5518 100644
--- a/docs/manual/CoreTasks/tar.html
+++ b/docs/manual/CoreTasks/tar.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Tar Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/taskdef.html b/docs/manual/CoreTasks/taskdef.html
index 21c56c7..df730b7 100644
--- a/docs/manual/CoreTasks/taskdef.html
+++ b/docs/manual/CoreTasks/taskdef.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>TaskDef Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/tempfile.html b/docs/manual/CoreTasks/tempfile.html
index 78ce88c..d1a75aa 100644
--- a/docs/manual/CoreTasks/tempfile.html
+++ b/docs/manual/CoreTasks/tempfile.html
@@ -4,6 +4,7 @@
   <meta http-equiv="Content-Language" content="en-us">
   <title>Tempfile
  Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body bgcolor="#ffffff" text="#000000" link="#525D76"
diff --git a/docs/manual/CoreTasks/touch.html b/docs/manual/CoreTasks/touch.html
index eb3922b..6257c71 100644
--- a/docs/manual/CoreTasks/touch.html
+++ b/docs/manual/CoreTasks/touch.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Touch Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/tstamp.html b/docs/manual/CoreTasks/tstamp.html
index fb96983..d392ccf 100644
--- a/docs/manual/CoreTasks/tstamp.html
+++ b/docs/manual/CoreTasks/tstamp.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>TStamp Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/typedef.html b/docs/manual/CoreTasks/typedef.html
index a85e614..35b19c4 100644
--- a/docs/manual/CoreTasks/typedef.html
+++ b/docs/manual/CoreTasks/typedef.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Typedef Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -138,9 +139,8 @@
   <tr>
     <td valign="top">uri</td>
     <td valign="top">
-      <font color="red">Experimental</font>
       The uri that this definition should live in.
-      (introduced in ant1.6 <font color="red">Experimental</font>)
+      <em>since Ant1.6</em>
     </td>
     <td valign="top" align="center">No</td>
   </tr>
diff --git a/docs/manual/CoreTasks/unpack.html b/docs/manual/CoreTasks/unpack.html
index 2ebc478..4fc7b58 100644
--- a/docs/manual/CoreTasks/unpack.html
+++ b/docs/manual/CoreTasks/unpack.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>GUnzip/BUnzip2 Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/untar.html b/docs/manual/CoreTasks/untar.html
index 796be64..a90561c 100644
--- a/docs/manual/CoreTasks/untar.html
+++ b/docs/manual/CoreTasks/untar.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Untar Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/unzip.html b/docs/manual/CoreTasks/unzip.html
index 0dc4f95..6824ceb 100644
--- a/docs/manual/CoreTasks/unzip.html
+++ b/docs/manual/CoreTasks/unzip.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Unzip Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/uptodate.html b/docs/manual/CoreTasks/uptodate.html
index 70bb68d..0e55d43 100644
--- a/docs/manual/CoreTasks/uptodate.html
+++ b/docs/manual/CoreTasks/uptodate.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Uptodate Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/waitfor.html b/docs/manual/CoreTasks/waitfor.html
index 301fc9b..6dd7a06 100644
--- a/docs/manual/CoreTasks/waitfor.html
+++ b/docs/manual/CoreTasks/waitfor.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>WaitFor Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/war.html b/docs/manual/CoreTasks/war.html
index 30c500e..3b5682b 100644
--- a/docs/manual/CoreTasks/war.html
+++ b/docs/manual/CoreTasks/war.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>WAR Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/whichresource.html b/docs/manual/CoreTasks/whichresource.html
index 5e80c49..39f29df 100644
--- a/docs/manual/CoreTasks/whichresource.html
+++ b/docs/manual/CoreTasks/whichresource.html
@@ -4,6 +4,7 @@
   <meta http-equiv="Content-Language" content="en-us">
   <title>Whichresource
  Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body bgcolor="#ffffff" text="#000000" link="#525D76"
diff --git a/docs/manual/CoreTasks/xmlproperty.html b/docs/manual/CoreTasks/xmlproperty.html
index 3c337d3..b7a2026 100644
--- a/docs/manual/CoreTasks/xmlproperty.html
+++ b/docs/manual/CoreTasks/xmlproperty.html
@@ -1,6 +1,7 @@
 <html>
 <head>
 <title>XmlProperty Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTasks/zip.html b/docs/manual/CoreTasks/zip.html
index 3a4addc..19a324f 100644
--- a/docs/manual/CoreTasks/zip.html
+++ b/docs/manual/CoreTasks/zip.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Zip Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTypes/antlib.html b/docs/manual/CoreTypes/antlib.html
index d252273..e0aa19a 100644
--- a/docs/manual/CoreTypes/antlib.html
+++ b/docs/manual/CoreTypes/antlib.html
@@ -3,25 +3,19 @@
   <head>
     <meta http-equiv="Content-Language" content="en-us"></meta>
     <title>AntLib</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
   </head>
 
   <body>
     <h2><a name="antlib">Antlib</a></h2>
-    <p>
-      <i>EXPERIMENTAL:</i> The antlib concept and implementation is experimental
-      and may be under continual change until Ant1.6 ships.
-      The contents of this page uses the experimental tasks
-      &lt;macrodef&gt; and &lt;presetdef&gt; which may not be in
-      Ant1.6.
-    </p>
     <h3>Description</h3>
     <p>
       An antlib file is an xml file with a root element of "antlib".
       Antlib's elements are ant definition tasks - like
       <a href="../CoreTasks/typedef.html">Typedef</a>
       and <a href="../CoreTasks/taskdef.html">Taskdef</a>,
-      or any ant task that implements
-      <code>org.apache.tools.ant.taskdefs.AntlibInterface</code>.
+      or any ant task that extends
+      <code>org.apache.tools.ant.taskdefs.AntlibDefinition</code>.
     </p>
     <p>
       A group of tasks and types may be defined together in an antlib
@@ -116,7 +110,7 @@
     </blockquote>
     <p>
       The requirement that the resource is in the default classpath
-      may be removed before Ant 1.6 is released.
+      may be removed in future versions of Ant.</p>
     </p>
     <h3><a name="currentnamespace">Current namespace</a></h3>
     <p>
diff --git a/docs/manual/CoreTypes/assertions.html b/docs/manual/CoreTypes/assertions.html
index c78b91a..be9e6d3 100644
--- a/docs/manual/CoreTypes/assertions.html
+++ b/docs/manual/CoreTypes/assertions.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Assertions type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -147,11 +148,15 @@
 Example: set system assertions and all org.apache packages except
 for ant, and the class org.apache.tools.ant.Main.
 <pre>
-&lt;assertions enableSystemAssertions="true" &gt;
-  &lt;enable package="org.apache" /&gt;
-  &lt;disable package="org.apache.ant" /&gt;
-  &lt;enable class="org.apache.tools.ant.Main"/&gt;
-&lt;/assertions&gt;
+    &lt;java fork="true" failonerror="true"
+      classname="${classname}"
+      classpathref="assert.classpath"&gt;
+      &lt;assertions enableSystemAssertions="true" &gt;
+        &lt;enable package="org.apache" /&gt;
+        &lt;disable package="org.apache.ant" /&gt;
+        &lt;enable class="org.apache.tools.ant.Main"/&gt;
+      &lt;/assertions&gt;
+    &lt;/java&gt;
 </pre>
 
 <h5>Example: disabled and anonymous package assertions</h5>
@@ -170,10 +175,14 @@
 
 <pre>
 &lt;assertions id="project.assertions" &gt;
-  &lt;enable project="org.apache.test" /&gt;
+  &lt;enable package="org.apache.test" /&gt;
 &lt;/assertions&gt;
 
-&lt;assertions refid="project.assertions" /&gt;
+&lt;java fork="true" failonerror="true"
+  classname="${classname}"
+  classpathref="assert.classpath"&gt;
+  &lt;assertions refid="project.assertions"/&gt;
+&lt;/java&gt;
 </pre>
 
 <hr>
diff --git a/docs/manual/CoreTypes/custom-programming.html b/docs/manual/CoreTypes/custom-programming.html
index 48e63b3..804ea2b 100644
--- a/docs/manual/CoreTypes/custom-programming.html
+++ b/docs/manual/CoreTypes/custom-programming.html
@@ -1,9 +1,9 @@
 <html>
   <head>
     <meta http-equiv="Content-Language" content="en-us"></meta>
-    <title>Custom Components</title>
+<title>Custom Components</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
   </head>
-
   <body>
     <h2>Custom Components</h2>
     <h3>Overview</h3>
@@ -55,10 +55,10 @@
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.taskdefs.condition.Condition;
 
-public class AllUpperCaseCondition extends Condition {
+public class AllUpperCaseCondition implements Condition {
     private String value;
 
-    // The setter for the &quot;value&quot; attribute
+    // The setter for the "value" attribute
     public void setValue(String value) {
         this.value = value;
     }
@@ -69,7 +69,7 @@
             throw new BuildException("value attribute is not set");
         }
         return value.toUpperCase().equals(value);
-   }        
+   }
 }
       </pre>
     </blockquote>
@@ -82,7 +82,7 @@
 &lt;typedef
     name="alluppercase"
     classname="com.mydomain.AllUpperCaseCondition"
-    classpath="${mydomain.classes"/&gt;
+    classpath="${mydomain.classes}"/&gt;
       </pre>
     </blockquote>
     <p>
@@ -132,7 +132,7 @@
 &lt;typedef
     name="javaselector"
     classname="com.mydomain.JavaSelector"
-    classpath="${mydomain.classes"/&gt;
+    classpath="${mydomain.classes}"/&gt;
       </pre>
     </blockquote>
         <p>
@@ -148,7 +148,7 @@
 &lt;/copy&gt;
       </pre>
     </blockquote>
-     
+
       <p>
         One may use
         <code>org.apache.tools.ant.types.selectors.BaseSelector</code>,
@@ -164,7 +164,7 @@
         last chance to check your settings for consistency because it
         calls <code>verifySettings()</code>. Override this method and
         call <code>setError()</code> within it if you detect any
-        problems in how your selector is set up.</p>
+        problems in how your selector is set up.
     </p>
     <p>
       To write custom selector containers one should extend
@@ -229,7 +229,7 @@
     </p>
     <p>
       The custom selector was the pre ant 1.6 way of defining custom selectors.
-      This method is still supported for backward compatiblity.
+      This method is still supported for backward compatibility.
     </p>
     <p>You can write your own selectors and use them within the selector
       containers by specifying them within the &lt;custom&gt; tag.</p>
@@ -292,14 +292,14 @@
     </p>
 
     <blockquote><pre>
-&lt;fileset dir=&quot;${mydir}&quot; includes=&quot;**/*&quot;&gt;
-    &lt;custom classname=&quot;com.mydomain.MySelector&quot;&gt;
-        &lt;param name=&quot;myattribute&quot; value=&quot;myvalue&quot;/&gt;
+&lt;fileset dir="${mydir}" includes="**/*"&gt;
+    &lt;custom classname="com.mydomain.MySelector"&gt;
+        &lt;param name="myattribute" value="myvalue"/&gt;
     &lt;/custom&gt;
 &lt;/fileset&gt;
       </pre></blockquote>
 
-    
+
     <p>The core selectors that can also be used as custom selectors
       are</p>
 
@@ -325,9 +325,9 @@
     to use the selector through <code>&lt;custom&gt;</code>.</p>
 
     <blockquote><pre>
-&lt;fileset dir=&quot;${doc.path}&quot; includes=&quot;**/*&quot;&gt;
-    &lt;custom classname=&quot;org.apache.tools.ant.types.selectors.DepthSelector&quot;&gt;
-        &lt;param name=&quot;max&quot; value=&quot;1&quot;/&gt;
+&lt;fileset dir="${doc.path}" includes="**/*"&gt;
+    &lt;custom classname="org.apache.tools.ant.types.selectors.DepthSelector"&gt;
+        &lt;param name="max" value="1"/&gt;
     &lt;/custom&gt;
 &lt;/fileset&gt;
       </pre></blockquote>
@@ -364,7 +364,7 @@
                 count++;
                 if ((count % 2) == 1) {
                     return c;
-                }   
+                }
               }
           }
       }
@@ -391,8 +391,8 @@
 }
       </pre>
     </blockquote>
-      
-      
+
+
     <hr></hr>
     <p align="center">Copyright &copy; 2003 Apache Software Foundation. All rights
       Reserved.</p>
diff --git a/docs/manual/CoreTypes/description.html b/docs/manual/CoreTypes/description.html
index f548f70..1e65c9b 100644
--- a/docs/manual/CoreTypes/description.html
+++ b/docs/manual/CoreTypes/description.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Apache Ant User Manual</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTypes/dirset.html b/docs/manual/CoreTypes/dirset.html
index c84ae13..91c9342 100644
--- a/docs/manual/CoreTypes/dirset.html
+++ b/docs/manual/CoreTypes/dirset.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>DirSet Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTypes/filelist.html b/docs/manual/CoreTypes/filelist.html
index a97c04e..f712bff 100644
--- a/docs/manual/CoreTypes/filelist.html
+++ b/docs/manual/CoreTypes/filelist.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>FileList Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTypes/fileset.html b/docs/manual/CoreTypes/fileset.html
index 0abce07..563d75e 100644
--- a/docs/manual/CoreTypes/fileset.html
+++ b/docs/manual/CoreTypes/fileset.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>FileSet Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -35,7 +36,11 @@
   <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>
+    <td valign="middle" align="center" rowspan="2">Either dir or file must be specified</td>
+  </tr>
+  <tr>
+    <td valign="top">file</td>
+    <td valign="top">shortcut for specifying a single file fileset</td>
   </tr>
   <tr>
     <td valign="top">defaultexcludes</td>
diff --git a/docs/manual/CoreTypes/filterchain.html b/docs/manual/CoreTypes/filterchain.html
index 89f26ad..67d009f 100644
--- a/docs/manual/CoreTypes/filterchain.html
+++ b/docs/manual/CoreTypes/filterchain.html
@@ -3,6 +3,7 @@
 <HTML>
 <HEAD>
   <TITLE>FilterChains and FilterReaders</TITLE>
+  <link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </HEAD>
 
 <BODY>
@@ -1337,4 +1338,4 @@
 <HR>
 
 <P align=center>Copyright &copy; 2002-2003 Apache Software Foundation. All rights
-Reserved.</P></BODY></HTML>
\ No newline at end of file
+Reserved.</P></BODY></HTML>
diff --git a/docs/manual/CoreTypes/filterset.html b/docs/manual/CoreTypes/filterset.html
index 82b3fa0..e38b555 100644
--- a/docs/manual/CoreTypes/filterset.html
+++ b/docs/manual/CoreTypes/filterset.html
@@ -3,16 +3,17 @@
 <HTML>
 <HEAD>
   <TITLE>FilterSet Type</TITLE>
+  <link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </HEAD>
 
 <BODY>
 <H2><A name="filterset">FilterSet</A></H2>
 
 <P>FilterSets are groups of filters. Filters can be defined as token-value
-pairs 
-or be read in from a file. FilterSets can appear inside tasks that support this 
+pairs
+or be read in from a file. FilterSets can appear inside tasks that support this
 feature or at the same level as <CODE>&lt;target&gt;</CODE> - i.e., as
-children of 
+children of
 <CODE>&lt;project&gt;</CODE>.</P>
 
 <p>FilterSets support the <code>id</code> and <code>refid</code>
@@ -23,13 +24,13 @@
 filters.</p>
 
 <p>In addition, FilterSets can specify
-<code>begintoken</code> and/or 
+<code>begintoken</code> and/or
 <code>endtoken</code> attributes to define what to match.</p>
-<p>Filtersets are used for doing 
+<p>Filtersets are used for doing
 replacements in tasks such as <code>&lt;copy&gt;</code>, etc.</p>
 
 <p>
-<strong>Note: </strong>When a filterset is used in an operation, the files are 
+<strong>Note: </strong>When a filterset is used in an operation, the files are
 processed in text mode and the filters applied line by line. This means that
 the copy operations will typically corrupt binary files. When applying filters
 you should ensure that the set of files being filtered are all text files.
@@ -89,7 +90,7 @@
   </TR>
   <TR>
     <TD vAlign=top>file</TD>
-    <TD vAlign=top>A properties file of 
+    <TD vAlign=top>A properties file of
       name-value pairs from which to load the tokens.</TD>
     <TD vAlign=top align="center">Yes</TD>
   </TR>
@@ -98,7 +99,7 @@
 <H4>Examples</H4>
 
 <p>You are copying the <code>version.txt</code> file to the <code>dist</code>
-directory from the <code>build</code> directory 
+directory from the <code>build</code> directory
 but wish to replace the token <code>&#64;DATE&#64;</code> with today's date.</p>
 <BLOCKQUOTE><PRE>
 &lt;copy file=&quot;${build.dir}/version.txt&quot; toFile=&quot;${dist.dir}/version.txt&quot;&gt;
@@ -109,7 +110,7 @@
 </PRE></BLOCKQUOTE>
 
 <p>You are copying the <code>version.txt</code> file to the <code>dist</code>
-directory from the build directory 
+directory from the build directory
 but wish to replace the token <code>%DATE*</code> with today's date.</p>
 <BLOCKQUOTE><PRE>
 &lt;copy file=&quot;${build.dir}/version.txt&quot; toFile=&quot;${dist.dir}/version.txt&quot;&gt;
diff --git a/docs/manual/CoreTypes/mapper.html b/docs/manual/CoreTypes/mapper.html
index 359201b..eb6882d 100644
--- a/docs/manual/CoreTypes/mapper.html
+++ b/docs/manual/CoreTypes/mapper.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Mapper Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -72,6 +73,7 @@
 <code>&lt;classpath&gt;</code>, as well - that is,
 a <a href="../using.html#path">path</a>-like structure.</p>
 <h3>The built-in mapper types are:</h3>
+<p>All built-in mappers are case-sensitive.</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>
diff --git a/docs/manual/CoreTypes/patternset.html b/docs/manual/CoreTypes/patternset.html
index 08d8322..a5a95c3 100644
--- a/docs/manual/CoreTypes/patternset.html
+++ b/docs/manual/CoreTypes/patternset.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>PatternSet Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTypes/permissions.html b/docs/manual/CoreTypes/permissions.html
index 983d594..87248ce 100644
--- a/docs/manual/CoreTypes/permissions.html
+++ b/docs/manual/CoreTypes/permissions.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Permissions type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTypes/propertyset.html b/docs/manual/CoreTypes/propertyset.html
index 8b642c6..3d71246 100644
--- a/docs/manual/CoreTypes/propertyset.html
+++ b/docs/manual/CoreTypes/propertyset.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>PropertySet Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTypes/selectors-program.html b/docs/manual/CoreTypes/selectors-program.html
index 15a225c..ac42500 100755
--- a/docs/manual/CoreTypes/selectors-program.html
+++ b/docs/manual/CoreTypes/selectors-program.html
@@ -2,6 +2,7 @@
   <head>
     <meta http-equiv="Content-Language" content="en-us">
     <title>Programming Selectors in Ant</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
   </head>
 
   <body>
@@ -246,4 +247,4 @@
     Foundation. All rights Reserved.</p>
   </body>
 
-</html>
\ No newline at end of file
+</html>
diff --git a/docs/manual/CoreTypes/selectors.html b/docs/manual/CoreTypes/selectors.html
index fad6ec0..0455acf 100755
--- a/docs/manual/CoreTypes/selectors.html
+++ b/docs/manual/CoreTypes/selectors.html
@@ -2,6 +2,7 @@
   <head>
     <meta http-equiv="Content-Language" content="en-us">
     <title>Selectors in Ant</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
   </head>
 
   <body>
@@ -186,6 +187,8 @@
     <code>&lt;mapper&gt;</code> element is specified, the
     <code>identity</code> type mapper is used.</p>
 
+    <p>The <code>&lt;depend&gt;</code> selector is case-sensitive.</p>
+
     <table border="1" cellpadding="2" cellspacing="0">
       <tr>
         <td valign="top"><b>Attribute</b></td>
@@ -354,6 +357,9 @@
     <a href="#selectcontainers">selector container</a> is desired.
     </p>
 
+    <p>The <code>&lt;filename&gt;</code> selector is
+    case-sensitive.</p>
+
     <table border="1" cellpadding="2" cellspacing="0">
       <tr>
         <td valign="top"><b>Attribute</b></td>
@@ -407,6 +413,8 @@
     <code>&lt;mapper&gt;</code> element is specified, the
     <code>identity</code> type mapper is used.</p>
 
+    <p>The <code>&lt;present&gt;</code> selector is case-sensitive.</p>
+
     <table border="1" cellpadding="2" cellspacing="0">
       <tr>
         <td valign="top"><b>Attribute</b></td>
diff --git a/docs/manual/CoreTypes/xmlcatalog.html b/docs/manual/CoreTypes/xmlcatalog.html
index 3ad445d..65352f7 100644
--- a/docs/manual/CoreTypes/xmlcatalog.html
+++ b/docs/manual/CoreTypes/xmlcatalog.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>XMLCatalog Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/CoreTypes/zipfileset.html b/docs/manual/CoreTypes/zipfileset.html
index ddc7618..9a07db3 100644
--- a/docs/manual/CoreTypes/zipfileset.html
+++ b/docs/manual/CoreTypes/zipfileset.html
@@ -3,6 +3,7 @@
 <head>
   <meta http-equiv="Content-Language" content="en-us">
   <title>ZipFileSet Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 <body>
 <h2><a name="fileset">ZipFileSet</a></h2>
diff --git a/docs/manual/Integration/VAJAntTool.html b/docs/manual/Integration/VAJAntTool.html
index 05e6f48..7fc6f85 100644
--- a/docs/manual/Integration/VAJAntTool.html
+++ b/docs/manual/Integration/VAJAntTool.html
@@ -4,6 +4,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta http-equiv="Content-Language" content="en-us">
   <title>Visual Age for Java Tasks and Plugin User Manual</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 <body>
 
diff --git a/docs/manual/Integration/jext-plugin.html b/docs/manual/Integration/jext-plugin.html
index 7beac6b..0d09b04 100644
--- a/docs/manual/Integration/jext-plugin.html
+++ b/docs/manual/Integration/jext-plugin.html
@@ -4,6 +4,7 @@
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta http-equiv="Content-Language" content="en-us">
   <title>Apache AntWork Plugin for the Jext - Java Text Editor</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 <body>
 
@@ -39,4 +40,4 @@
 <hr>
 <p align="center">Copyright &copy; 2001-2002 Apache Software Foundation. All rights
 Reserved.</p>
-</body></html>
\ No newline at end of file
+</body></html>
diff --git a/docs/manual/OptionalTasks/BorlandEJBTasks.html b/docs/manual/OptionalTasks/BorlandEJBTasks.html
index 276d54a..9482af0 100644
--- a/docs/manual/OptionalTasks/BorlandEJBTasks.html
+++ b/docs/manual/OptionalTasks/BorlandEJBTasks.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Borland EJB Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/BorlandGenerateClient.html b/docs/manual/OptionalTasks/BorlandGenerateClient.html
index ce72d09..d993cd3 100644
--- a/docs/manual/OptionalTasks/BorlandGenerateClient.html
+++ b/docs/manual/OptionalTasks/BorlandGenerateClient.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>BorlandGenerateClient Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/antlr.html b/docs/manual/OptionalTasks/antlr.html
index 1de0f98..ab8b698 100644
--- a/docs/manual/OptionalTasks/antlr.html
+++ b/docs/manual/OptionalTasks/antlr.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>ANTLR Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/attrib.html b/docs/manual/OptionalTasks/attrib.html
index 3c5f444..ad35e34 100644
--- a/docs/manual/OptionalTasks/attrib.html
+++ b/docs/manual/OptionalTasks/attrib.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Ant User Manual</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/cab.html b/docs/manual/OptionalTasks/cab.html
index 3079497..462cb28 100644
--- a/docs/manual/OptionalTasks/cab.html
+++ b/docs/manual/OptionalTasks/cab.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Cab Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/ccm.html b/docs/manual/OptionalTasks/ccm.html
index 37aab7a..fcd9017 100644
--- a/docs/manual/OptionalTasks/ccm.html
+++ b/docs/manual/OptionalTasks/ccm.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Continuus Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/chgrp.html b/docs/manual/OptionalTasks/chgrp.html
index b37555c..cf6b428 100644
--- a/docs/manual/OptionalTasks/chgrp.html
+++ b/docs/manual/OptionalTasks/chgrp.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Chgrp Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/chown.html b/docs/manual/OptionalTasks/chown.html
index 2eda7e3..fdd1a03 100644
--- a/docs/manual/OptionalTasks/chown.html
+++ b/docs/manual/OptionalTasks/chown.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Chown Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/clearcase.html b/docs/manual/OptionalTasks/clearcase.html
index 164c52f..e78572b 100644
--- a/docs/manual/OptionalTasks/clearcase.html
+++ b/docs/manual/OptionalTasks/clearcase.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Clearcase Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/csc.html b/docs/manual/OptionalTasks/csc.html
new file mode 100644
index 0000000..fd76234
--- /dev/null
+++ b/docs/manual/OptionalTasks/csc.html
@@ -0,0 +1,515 @@
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Csc
+ Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Csc
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Compiles C# source into executables or modules.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"/>
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Compiles C# source into executables or modules. csc.exe must be on the execute path, unless another executable or the full path to that executable is specified in the <tt>executable</tt> parameter <p> All parameters are optional: &lt;csc/&gt; should suffice to produce a debug build of all *.cs files. However, naming an <tt>destFile</tt>stops the csc compiler from choosing an output name from random, and allows the dependency checker to determine if the file is out of date. <p> The task is a directory based task, so attributes like <b>includes="*.cs" </b> and <b>excludes="broken.cs"</b> can be used to control the files pulled in. By default, all *.cs files from the project folder down are included in the command. When this happens the output file -if not specified- is taken as the first file in the list, which may be somewhat hard to control. Specifying the output file with <tt>destFile</tt> seems prudent. <p> <p> For more complex source trees, nested <tt>src</tt> elemements can be supplied. When such an element is present, the implicit fileset is ignored. This makes sense, when you think about it :) <p> References to external files can be made through the references attribute, or (since Ant1.6), via nested &lt;reference&gt; filesets. With the latter, the timestamps of the references are also used in the dependency checking algorithm. <p> Example <pre>&lt;csc optimize=&quot;true&quot; debug=&quot;false&quot; docFile=&quot;documentation.xml&quot; warnLevel=&quot;4&quot; unsafe=&quot;false&quot; targetType=&quot;exe&quot; incremental=&quot;false&quot; mainClass = &quot;MainApp&quot; destFile=&quot;NetApp.exe&quot; &gt; &lt;src dir="src" includes="*.cs" /&gt; &lt;reference file="${testCSC.dll}" /&gt; &lt;define name="RELEASE" /&gt; &lt;define name="DEBUG" if="debug.property"/&gt; &lt;define name="def3" unless="def3.property"/&gt; &lt;/csc&gt; </pre>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">additionalmodules</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of modules to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="26">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">debug</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the debug flag on or off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">definitions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of defined constants.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the destination directory of files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the name of exe/library to create.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">docfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">file for generated XML documentation</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">executable</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the name of the program, overriding the defaults. Can be used to set the full path to a program, or to switch to an alternate implementation of the command, such as the Mono or Rotor versions -provided they use the same command line arguments as the .NET framework edition</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Any extra options which are not explicitly supported by this task.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, fail on compilation errors.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">filealign</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the file alignment. Valid values are 0,512, 1024, 2048, 4096, 8192, and 16384, 0 means 'leave to the compiler'</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">int</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">fullpaths</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, print the full path of files on errors.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">includedefaultreferences</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, automatically includes the common assemblies in dotnet, and tells the compiler to link in mscore.dll. set the automatic reference inclusion flag on or off this flag controls the /nostdlib option in CSC</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">incremental</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the incremental compilation flag on or off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">mainclass</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the name of main class for executables.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">noconfig</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">A flag that tells the compiler not to read in the compiler settings files 'csc.rsp' in its bin directory and then the local directory</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optimize</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, enables optimization flag.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">outputfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">The output file. This is identical to the destFile attribute.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">referencefiles</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path of references to include. Wildcards should work.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">references</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of DLLs to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the source directory of the files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">targettype</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the target type to one of exe|library|module|winexe</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">"exe", "library", "module", "winexe"</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">unsafe</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, enables the unsafe keyword.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">utf8output</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, require all compiler output to be in UTF8 format.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">warnlevel</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Level of warning currently between 1 and 4 with 4 being the strictest.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">int</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32icon</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the filename of icon to include.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32res</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the filename of a win32 resource (.RES) file to include. This is not a .NET resource, but what Windows is used to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>define</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetDefine)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a define to the list of definitions
+<short-description><![CDATA[Add a define to the list of definitions.]]></short-description>
+<description>
+            <![CDATA[add a define to the list of definitions]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>reference</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new reference fileset to the compilation
+<short-description><![CDATA[Add a new reference fileset to the compilation.]]></short-description>
+<description>
+            <![CDATA[add a new reference fileset to the compilation]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>resource</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetResource)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        link or embed a resource
+<short-description><![CDATA[Link or embed a resource.]]></short-description>
+<description>
+            <![CDATA[link or embed a resource]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>src</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new source directory to the compile
+<short-description><![CDATA[Add a new source directory to the compile.]]></short-description>
+<description>
+            <![CDATA[add a new source directory to the compile]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+  <!-- FOOTER SEPARATOR -->
+  <tr>
+    <td>
+      <hr noshade="" size="1"/>
+    </td>
+  </tr>
+
+  <!-- PAGE FOOTER -->
+  <tr>
+    <td>
+      <div align="center"><font color="#525D76" size="-1"><em>
+        Copyright &#169; 2000-2003, Apache Software Foundation
+      </em></font></div>
+    </td>
+  </tr>
+
+</table>
+
+</body>
+</html>
diff --git a/docs/manual/OptionalTasks/depend.html b/docs/manual/OptionalTasks/depend.html
index 6d48337..bf1a5fb 100644
--- a/docs/manual/OptionalTasks/depend.html
+++ b/docs/manual/OptionalTasks/depend.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Depend Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/dotnet.html b/docs/manual/OptionalTasks/dotnet.html
index 2122d2e..e874e8d 100644
--- a/docs/manual/OptionalTasks/dotnet.html
+++ b/docs/manual/OptionalTasks/dotnet.html
@@ -1,622 +1,205 @@
 <html>
 <head>
 <title>.NET Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
-<body>
 <h1>.NET tasks</h1>
-
-
-
-<hr>
-<h2>&lt;CSC&gt;</h2>
-
-This task compiles CSharp source into executables or modules.
-
-This task compiles CSharp source into executables or modules. The task will
-only work on win2K/XP or other platforms with csc.exe or an equivalent.
-CSC must be on the execute path.
-
-<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. </p>
-
-<p>
-
-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 destFile -if not specified-
-is taken as the first file in the list, which may be somewhat hard to control.
-Specifying the output file with <b>'destfile'</b> seems prudent. </p>
-<p>
-Also, dependency checking only works if destfile is set.
-
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Example Values</b></td>
-  </tr>
-
-<tr>
-    <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">&quot;true&quot;(default) or &quot;false&quot;</td>
-    </tr>
-<tr>
-    <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>
-    <td valign="top">include debug information</td>
-    <td valign="top">&quot;true&quot;(default)</td>
-    </tr>
-
-<tr>
-    <td valign="top">destFile</td>
-    <td valign="top">name of exe/library to create</td>
-    <td valign="top">&quot;example.exe&quot;</td>
-    </tr>
-<tr>
-    <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>
-    <td valign="top">comma- or space-separated list of patterns of files that must be
-      excluded. No files (except default excludes) are excluded when omitted.</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an exclude pattern</td>
-  </tr>
-  <tr>
-    <td valign="top">extraOptions</td>
-    <td valign="top">Any extra options which aren't explicitly 
-        supported by the CSharp task </td>
-    <td>&quot;/warnaserror+ /baseaddress:0x12840000&quot;</td>
-  </tr>
-
-  <tr>
-    <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">fileAlign</td>
-    <td valign="top">
-     set the file alignment.
-     Valid values are 0,512, 1024, 2048, 4096, 8192, and 16384
-     0 means 'leave to the compiler'    
-    </td>
-    <td valign="top">512</td>
-  </tr>
-  <tr>
-    <td valign="top">fullpaths</td>
-    <td valign="top">print the full path of files on on errors</td>
-  </tr>
-    
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma- or space-separated list of patterns of files that must be
-      included. All files are included when omitted.</td>
-  </tr>
-  <tr>
-    <td valign="top">includeDefaultReferences</td>
-    <td valign="top">Flag which when true automatically includes
-    the common assemblies in dotnet, and tells the compiler to link in
-    mscore.dll
-    </td>
-    <td valign="top">&quot;true&quot;(default) or &quot;false&quot;</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">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>
-    <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">noConfig</td>
-    <td valign="top">a flag which tells the compiler not
-    to read in the compiler settings files 'csc.rsp' in its
-    bin directory and then the local directory</td>
-    <td valign="top">&quot;true&quot; or &quot;false&quot;(default)</td>
-    </tr>
-<tr>
-    <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">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. </td>
-    <td valign="top"></td>
-    </tr>
-    
-<tr>
-    <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>
-    <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>
-    <td valign="top">enable the <b>unsafe</b> keyword</td>
-    <td valign="top">&quot;true&quot; or &quot;false&quot;(default)</td>
-    </tr>
-<tr>
-    <td valign="top">utf8output</td>
-    <td valign="top">require all compiler output to be in utf-8 format</td>
-    <td valign="top">&quot;true&quot; or &quot;false&quot;(default)</td>
-    </tr>
-<tr>
-    <td valign="top">warnLevel</td>
-    <td valign="top">level of warning currently between 1 and 4 with 4
-    being the strictest. </td>
-    <td valign="top">&quot;1&quot;-&quot;4&quot;</td>
-    </tr>
-<tr>
-    <td valign="top">win32Icon</td>
-    <td valign="top">filename of icon to include</td>
-    <td valign="top">&quot;res/myicon.ico&quot;</td>
-   </tr>
-<tr>
-    <td valign="top">win32res</td>
-    <td valign="top">filename of a win32 resource (.RES)file to include
-    This is not a .NET resource, but it what windows is used to.</td>
-    <td valign="top">&quot;res/myapp.res&quot;</td>
-   </tr>
-
-</table>
-<p>
-Example
-</p>
-<pre>&lt;csc
-        optimize=&quot;true&quot;
-        debug=&quot;false&quot;
-        docFile=&quot;documentation.xml&quot;
-        warnLevel=&quot;4&quot;
-        unsafe=&quot;false&quot;
-        targetType=&quot;exe&quot;
-        incremental=&quot;false&quot;
-        definitions=&quot;RELEASE&quot;
-        excludes=&quot;src/unicode_class.cs&quot;
-        mainClass = &quot;MainApp&quot;
-        destFile=&quot;NetApp.exe&quot;
-        /&gt;   
-</pre>
-<hr>
-<h2>&lt;VBC&gt;</h2>
-
-This task compiles VisualBasic.NET source into executables or modules.
-
-This task compiles VisualBasic.NET source into executables or modules. 
-The task will only work on win2K/XP or other platforms with vbc.exe 
-or an equivalent. VBC must be on the execute path.
-
-<p>
-All parameters are optional: &lt;vbc/&gt; should suffice to produce a debug
-build of all *.vb files. References to external files do require explicit 
-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=&quot;**/*.vb&quot;</b> and 
-<b>excludes=&quot;broken.vb&quot;</b> can be used to control 
-the files pulled in. By default, 
-all *.vb files from the project folder down are included in the command. 
-When this happens the destFile -if not specified-
-is taken as the first file in the list, which may be somewhat hard to control.
-Specifying the output file with <b>'destfile'</b> seems prudent. </p>
-<p>
-Also, dependency checking only works if destfile is set.
-
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Example Values</b></td>
-  </tr>
-
-<tr>
-    <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">&quot;true&quot;(default) or &quot;false&quot;</td>
-    </tr>
-<tr>
-    <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>
-    <td valign="top">include debug information</td>
-    <td valign="top">&quot;true&quot;(default)</td>
-    </tr>
-
-<tr>
-    <td valign="top">destFile</td>
-    <td valign="top">name of exe/library to create</td>
-    <td valign="top">&quot;example.exe&quot;</td>
-    </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma- or space-separated list of patterns of files that must be
-      excluded. No files (except default excludes) are excluded when omitted.</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an exclude pattern</td>
-  </tr>
-  <tr>
-    <td valign="top">extraOptions</td>
-    <td valign="top">Any extra options which aren't explicitly 
-        supported by the VisualBasicCompile task </td>
-    <td>&quot;/warnaserror+ /baseaddress:0x12840000&quot;</td>
-  </tr>
-
-  <tr>
-    <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">imports</td>
-    <td valign="top">comma-separated list of global imports for namespaces
-	   in referenced metadata files.</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma- or space-separated list of patterns of files that must be
-      included. All files are included when omitted.</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an include pattern</td>
-  </tr>
-<tr>
-    <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>
-    <td valign="top">optimisation flag</td>
-    <td valign="top">&quot;true&quot; or &quot;false&quot;(default)</td>
-    </tr>
-<tr>
-    <td valign="top">optionCompare</td>
-    <td valign="top">Text or binary string comparisons.</td>
-    <td valign="top">&quot;text&quot; or &quot;binary&quot;(default)</td>
-    </tr>
-<tr>
-    <td valign="top">optionExplicit</td>
-    <td valign="top">Require explicit declaration of variables?</td>
-    <td valign="top">&quot;true&quot; or &quot;false&quot;(default)</td>
-    </tr>
-<tr>
-    <td valign="top">optionStrict</td>
-    <td valign="top">Enforce strict language semantics?</td>
-    <td valign="top">&quot;true&quot; or &quot;false&quot;(default)</td>
-    </tr>
-<tr>
-    <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. </td>
-    <td valign="top"></td>
-    </tr>
-<tr>
-    <td valign="top">removeIntChecks</td>
-    <td valign="top">Remove integer checks?</td>
-    <td valign="top">&quot;true&quot; or &quot;false&quot;(default)</td>
-    </tr>
-<tr>
-    <td valign="top">rootNamespace</td>
-    <td valign="top">Root namespace for all type declarations.</td>
-    <td valign="top">com.example</td>
-    </tr>
-    
-<tr>
-    <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>
-    <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">utf8output</td>
-    <td valign="top">require all compiler output to be in utf-8 format</td>
-    <td valign="top">&quot;true&quot; or &quot;false&quot;(default)</td>
-    </tr>
-<tr>
-    <td valign="top">warnLevel</td>
-    <td valign="top">level of warning currently between 1 and 4 with 4
-    being the strictest. </td>
-    <td valign="top">&quot;1&quot;-&quot;4&quot;</td>
-    </tr>
-<tr>
-    <td valign="top">win32Icon</td>
-    <td valign="top">filename of icon to include</td>
-    <td valign="top">&quot;res/myicon.ico&quot;</td>
-   </tr>
-<tr>
-    <td valign="top">win32res</td>
-    <td valign="top">filename of a win32 resource (.RES)file to include
-    This is not a .NET resource, but it what windows is used to.</td>
-    <td valign="top">&quot;res/myapp.res&quot;</td>
-   </tr>
-
-</table>
-<p>
-Example
-</p>
-<pre>&lt;vbc
-        optimize=&quot;true&quot;
-        debug=&quot;false&quot;
-        warnLevel=&quot;4&quot;
-        targetType=&quot;exe&quot;
-        definitions=&quot;RELEASE&quot;
-        excludes=&quot;src/unicode_class.vb&quot;
-        mainClass = &quot;MainApp&quot;
-        destFile=&quot;NetApp.exe&quot;
-        optionExplicit=&quot;true&quot;
-        optionCompare=&quot;text&quot;
-        /&gt;   
-</pre>
-<hr>
-<h2>&lt;ilasm&gt;</h2>
-<p>Task to assemble .net 'Intermediate Language' files.
-The task will only work on windows until other platforms support csc.exe or 
-an equivalent. ilasm.exe must be on the execute path too.
-</p>
-<p>
-All parameters are optional: &lt;il/&gt; should suffice to produce a debug
-build of all *.il files.
-The option set is roughly compatible with the CSharp class;
-even though the command line options are only vaguely
-equivalent. [The low level commands take things like /OUT=file,
-csc wants /out:file ... /verbose is used some places; /quiet here in
-ildasm... etc.] It would be nice if someone made all the command line
-tools consistent (and not as brittle as the java cmdline tools) 
-</p>
-
-<p>
-
-The task is a directory based task, so attributes like <b>includes=&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>
-
-
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Example</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>
-  </tr>
-
-  <tr>
-    <td valign="top">debug</td>
-    <td valign="top">include debug information</td>
-    <td valign="top">true (default)</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>
-  <tr>
-    <td valign="top">extraOptions</td>
-    <td valign="top">Any extra options which aren't explicitly 
-        supported by the ilasm task, primarily because they
-                arent really documented: use ilasm /? to see them</td>
-    <td></td>
-  </tr>
-  
-  <tr>
-      <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">fullpaths</td>
-    <td valign="top">Should error text provide the full path to files</td>
-    <td valign="top">&quot;true&quot;(default)</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">keyfile</td>
-    <td valign="top">the name of a file containing a private key, with which
-      the assembly output is checksumed and then MD5 signed 
-      to have a <i>strong name</i></td>
-  </tr>
-<tr>
-    <td valign="top">listing</td>
-    <td valign="top">Produce a listing (off by default). Listings go to the
-    current output stream</td>
-    <td valign="top">&quot;on&quot;, &quot;off&quot; (default)</td>
-    </tr>
-<tr>
-    <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">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>
-    <td valign="top">source directory (default = project directory)</td>
-    <td valign="top"></td>
-    </tr>
-<tr>
-    <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>
-    <td valign="top">output progress messages</td>
-    <td valign="top">&quot;on&quot;, &quot;off&quot; (default)</td>
-    </tr>
-
-</table>
-<p>
-Example</p>
-<pre>&lt;ilasm
-        outputFile=&quot;app.exe&quot;
-        verbose=&quot;on&quot;
-        listing=&quot;on&quot;
-        owner=&quot;secret&quot;
-        /&gt;
-</pre>
-<h2>&lt;WsdlToDotnet&gt;</h2>
-Why add a wrapper to the MS WSDL tool? 
-So that you can verify that your web services, be they written with Axis or
-anyone else's SOAP toolkit, work with .NET clients.
-<p>
-This task is dependency aware when using a file as a source and destination;
-so if you &lt;get&gt; the file (with <code>usetimestamp="true"</code>) then
-you only rebuild stuff when the WSDL file is changed. Of course,
-if the server generates a new timestamp every time you ask for the WSDL,
-this is not enough...use the &lt;filesmatch&gt; &lt;condition&gt; to
-to byte for byte comparison against a cached WSDL file then make
-the target conditional on that test failing.   
+<h2>Introduction</h2>
  
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Example</b></td>
-  </tr>
-  <tr>
-    <td valign="top">destFile</td>
-    <td valign="top">name of file to generate. Required</td>
-    <td valign="top">ApacheNet.cs</td>
-  </tr> 
-  <tr>
-    <td valign="top">srcFile</td>
-    <td valign="top">name of WSDL file to use. 
-      Required if url is not set</td>
-    <td valign="top">service.wsdl</td>
-  </tr>
-   <tr>
-    <td valign="top">url</td>
-    <td valign="top">url to retrive WSDL from.
-    required if srcFile is unset</td>
-    <td valign="top">http://localhost/service?wsdl</td>
-  </tr>  
-  <tr>
-    <td valign="top">server</td>
-    <td valign="top">generate server stubs, not client proxy code.
-      optional; default false</td>
-    <td valign="top">"false"(default)</td>
-  </tr> 
-  <tr>
-    <td valign="top">namespace</td>
-    <td valign="top">namespace to place  the source in.
-      optional; default ""</td>
-    <td valign="top">Apache.Net</td>
-  </tr> 
-  <tr>
-    <td valign="top">language</td>
-    <td valign="top">language; one of "CS", "JS", or "VB"
-      optional; </td>
-    <td valign="top"> "CS" (default)</td>
-  </tr> 
-  <tr>
-    <td valign="top">failOnError</td>
-    <td valign="top">Should failure halt the build?</td>
-    <td valign="top">"true"(default)</td>
-  </tr>
-  <tr>
-    <td valign="top">extraOptions</td>
-    <td valign="top">Any extra options which aren't explicitly 
-        supported by the task, like all the proxy server config stuff</td>
-    <td></td>
-  </tr>  
- 
-  </table>
-<hr>
+
+Ant support for .NET goes back to before .NET was released, and
+continues to be expanded based on user demand. Users writing nothing but
+a .NET application, may want to look at the .NET-based
+<A href="http://nant.sourceforge.net/">NAnt</A> project, that supports
+both the Microsoft and the Ximian managed <A
+href="http://go-mono.com/">Mono</A> project's implementation of the
+.NET framework.
+<p>
+
+Over time, the .NET tasks in Ant have tended to evolve to meet a few
+limited needs. Firstly, developers working with complex deployment problems may
+want to use ant to use the fairly advanced deployment tasks Ant ships
+with. Secondly, anyone who has a cross-platform project can use these
+tasks to cover the .NET side of the problem. Here, cross-platform can
+mean more than just Java and .NET: the C++ tasks in the ant-contrib
+project on sourceforge can be used with Ant to do native C++ and .NET
+cross development if that is your need. Finally, Ant support for .NET
+lets one automate .NET development under an automated build process,
+such as AntHill or Cruise Control. 
+
+<p>
+
+What this means is that the Ant tasks for .NET support do not get as
+much rigorous use as the Java tools, and are evolving more slowly -that
+includes the time for support calls to change. But as a consequence,
+developers working on .NET support have more freedom to play around with
+the code. It also means that the fairly unusual set of tasks supported
+by ant enable a few interesting operations that can not be performed any
+other way: 
+<ol>
+
+<li>Integrating with a Java based SOAP Service -generating C# code from
+the server's WSDL and running it against the server. 
+</li>
+<li>Building and deploying a C#-based Web Service, then using the Apache
+Axis tasks to create JUnit tests to call the endpoints.
+
+<li>Patching .NET type libraries to work with more complex IDL than the
+basic &lt;importtypelib&gt; wrapper around tlbimport supports. Hence the
+disassembler and the reassembler.
+</li>
+
+</ol>
+Needless to say, possible does not mean easy. 
+<A href="http://www.manning.com/hatcher/chap15.pdf">Chapter 15</A> of
+Java Development with Ant covers the first of these, using the Ant1.5
+version of the tasks. Going the other way -generating Java client
+code and JUnit testcases is covered in 
+<A href="http://www.iseran.com/Steve/papers/interop/">The Wondrous curse
+of Interop</A>. The final trick, IDL and Typelib abuse, is not
+documented as we do not want to encourage such an ugly practice. It,
+can, however, be done if absolutely necessary. The trick is a sequence
+of &lt;importtypelib/&gt;, &lt;ildasm&gt;, &lt;replace&gt; and finally 
+&lt;ilasm&gt;.
+
+<h2>Task List</h2>
+
+<table border="0" >
+<tr>
+  <td><a href="csc.html">Csc</a></td>
+  <td>Compiles C# code</td>
+</tr>  
+
+<tr>
+  <td><a href="vbc.html">vbc</a></td>
+  <td>Compiles VB.Net code</td>
+</tr>  
+
+<tr>
+  <td><a href="jsharp.html">jsharp</a></td>
+  <td>Compiles J# files</td>
+</tr>  
+
+<tr>
+  <td><a href="ildasm.html">ildasm</a></td>
+  <td>Disassembles .NET executables and libraries</td>
+</tr>  
+
+<tr>
+  <td><a href="ilasm.html">ilasm</a></td>
+  <td>Assembles .il files</td>
+</tr>  
+
+<tr>
+  <td><a href="wsdltodotnet.html">WsdlToDotnet</a></td>
+  <td>Generates .NET code (C# or VB) from a WSDL file</td>
+</tr>  
+
+<tr>
+  <td><a href="ImportTypelib.html">ImportTypelib</a></td>
+  <td>Imports a COM type library into .NET</td>
+</tr>  
+
+</table>
+
 
 <hr>
 <h2> Change Log </h2>
 
+<h4>Ant1.6</h4>
+This revision goes along with NET 1.1, though there is no reason why
+it should not work on other versions.
+<p>
+
+<ol>
+<li>vbc task</li>
+<li>jsharp task</li>
+<li>mono support</li>
+<li>ilasm</li>
+<li>tlbimport</li>
+<li>Reference filesets in the compiler tasks</li>
+<li>definitions in the compiler tasks</li>
+<li>multiple source filesets in the compiler tasks. If these are used, the
+implicit fileset is disabled</li>
+</ol>
+
+The compile tasks: vbc, jsharp, and csc, all contain lots of common code
+in a shared base class: if you can use one you should be able to use
+another. 
+
+<h4>Ant 1.5</h4>
+This revision goes along with NET 1.0 (SP1) 
+<ol>
+<li>CSC: added filealign</li>
+<li>CSC: added reference to office.dll</li>
+<li>CSC: dependency checking! only if destFile is set!
+<li>WsdlToDotnet written
+</ol>
+
+<h4>Version 0.4</h4>
+This is the beta-2 revision of the tasks. 
+<ol>
+<li>ILASM: pulled the owner attribute, added keyfile for giving binaries a strong name
+(MD5 hash of the checksum)</li>
+<li>CSC: added win32res , noConfig, utf8output, fullpaths</li>
+<li>CSC: </li>
+</ol>
+ 
+<h4>Version 0.3</h4>
+
+The changes here reflect Beta-1 of the dotnet SDK and experience of use in 
+more complex projects. This build does not work with the older SDK, 
+primarily because the automatic reference feature references libraries
+only found in the new SDK version.  
+<p>
+External changes</p>
+<ul>
+<li>Recursive inclusion of .cs and .il files</li>
+
+<li>Documentation enhanced, includes examples and details of all parameters</li>
+
+<li>The csc task automatically includes the common dotnet assemblies, so
+there is no need to remember to refer to 'System.dll', 'System.Web.Services',
+ etc. This feature can be disabled by setting the 'includeDefaultReferences' 
+ flag to false. </li>
+
+ <li> References can also be referred to using the ReferenceFiles parameter, which
+is an ant path specification. The old 'references' string is still retained.</li>
+<li> An 'extraoptions' attribute enables the build file to include any CSC options
+which are not explicitly supported in the CSC task. </li>
+</ul>
+
+Internal changes
+<ul>
+<li>Some minor refactoring (move common code a method)</li>
+<li>Application of Jedits JavaStyle task resulted in a major reshaping of
+the codebase and the insertion of a blank line every second line. Significant
+effort was required to revert some (but not all) changes.</li>
+<li>Removed throws clause from methods which can't throw exception<hr>
+<h2> Change Log </h2>
+
+<h4>Ant1.6</h4>
+This revision goes along with NET 1.1, though there is no reason why
+it should not work on other versions.
+<p>
+
+<ol>
+<li>vbc task</li>
+<li>jsharp task</li>
+<li>mono support</li>
+<li>ilasm</li>
+<li>tlbimport</li>
+<li>Reference filesets in the compiler tasks</li>
+<li>definitions in the compiler tasks</li>
+<li>multiple source filesets in the compiler tasks. If these are used, the
+implicit fileset is disabled</li>
+</ol>
+
+The compile tasks: vbc, jsharp, and csc, all contain lots of common code
+in a shared base class: if you can use one you should be able to use
+another. 
+
 <h4>Version 0.5</h4>
 This revision goes along with NET 1.0 (SP1) 
 <ol>
@@ -680,9 +263,24 @@
 
 <h4>Version 0.1</h4>
 Initial proof of concept; very rudimentary support for CSC only. 
+s </li>
+</ul>
+
+The test harness has been expanded to include unicode source file  
+(the build works but the rest of the system has 'issues' with high unicode
+package and method names)
+
+<h4>Version 0.2</h4>
+First public edition, added to the ant cvs tree. Tested on the PDC build of 
+the dotnet SDK only, and still immature. The command execution code was 
+refactored out into a 'NetCommand' class for re-use. The Ilasm task was added
+at this time.
+
+<h4>Version 0.1</h4>
+Initial proof of concept; very rudimentary support for CSC only. 
 
 
-<p align="center">Copyright &copy; 2000-2002 Apache Software Foundation. All rights
+<p align="center">Copyright &copy; 2000-2003 Apache Software Foundation. All rights
 Reserved.</p>
 
 </body>
diff --git a/docs/manual/OptionalTasks/echoproperties.html b/docs/manual/OptionalTasks/echoproperties.html
index 05c52a8..12c6209 100644
--- a/docs/manual/OptionalTasks/echoproperties.html
+++ b/docs/manual/OptionalTasks/echoproperties.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Echoproperties Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/ejb.html b/docs/manual/OptionalTasks/ejb.html
index 1db596d..ea6bf01 100644
--- a/docs/manual/OptionalTasks/ejb.html
+++ b/docs/manual/OptionalTasks/ejb.html
@@ -4,6 +4,7 @@
 <meta http-equiv="Content-Language" content="en-us">
 <title>EJB Tasks</title>
 
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/ftp.html b/docs/manual/OptionalTasks/ftp.html
index 29e5abc..69f5fa3 100644
--- a/docs/manual/OptionalTasks/ftp.html
+++ b/docs/manual/OptionalTasks/ftp.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>FTP Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/icontract.html b/docs/manual/OptionalTasks/icontract.html
index de1db61..05e45f9 100644
--- a/docs/manual/OptionalTasks/icontract.html
+++ b/docs/manual/OptionalTasks/icontract.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>IContract Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/ilasm.html b/docs/manual/OptionalTasks/ilasm.html
new file mode 100644
index 0000000..ded2c42
--- /dev/null
+++ b/docs/manual/OptionalTasks/ilasm.html
@@ -0,0 +1,289 @@
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Ilasm
+ Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Ilasm
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Assembles .NET Intermediate Language files.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"/>
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Assembles .NET Intermediate Language files. ilasm.exe must be on the execute path, unless another executable or the full path to that executable is specified in the <tt>executable</tt> parameter <p> <p> All parameters are optional: &lt;il/&gt; should suffice to produce a debug build of all *.il files. The option set is roughly compatible with the CSharp class; even though the command line options are only vaguely equivalent. [The low level commands take things like /OUT=file, csc wants /out:file ... /verbose is used some places; /quiet here in ildasm... etc.] It would be nice if someone made all the command line tools consistent (and not as brittle as the java cmdline tools) <p> <p> The task is a directory based task, so attributes like <b>includes="*.il" </b> and <b>excludes="broken.il"</b> can be used to control the files pulled in. You can also use nested &lt;src&gt filesets to refer to source. <p>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">debug</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the debug flag on or off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="10">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the name of exe/library to create.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Any extra options which are not explicitly supported by this task.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, fails if ilasm tool fails.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">keyfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">the name of a file containing a private key.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">listing</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, produce a listing (off by default).</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">outputfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the output file; identical to setDestFile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">resourcefile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">name of resource file to include.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the source directory of the files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">verbose</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, enable verbose ILASM output.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>reference</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new reference fileset to the compilation
+<short-description><![CDATA[Add a new reference fileset to the compilation.]]></short-description>
+<description>
+            <![CDATA[add a new reference fileset to the compilation]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>src</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new source directory to the compile
+<short-description><![CDATA[Add a new source directory to the compile.]]></short-description>
+<description>
+            <![CDATA[add a new source directory to the compile]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+  <!-- FOOTER SEPARATOR -->
+  <tr>
+    <td>
+      <hr noshade="" size="1"/>
+    </td>
+  </tr>
+
+  <!-- PAGE FOOTER -->
+  <tr>
+    <td>
+      <div align="center"><font color="#525D76" size="-1"><em>
+        Copyright &#169; 2000-2003, Apache Software Foundation
+      </em></font></div>
+    </td>
+  </tr>
+
+</table>
+
+</body>
+</html>
diff --git a/docs/manual/OptionalTasks/ildasm.html b/docs/manual/OptionalTasks/ildasm.html
new file mode 100644
index 0000000..cf3fcf9
--- /dev/null
+++ b/docs/manual/OptionalTasks/ildasm.html
@@ -0,0 +1,339 @@
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Ildasm
+ Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Ildasm
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Task to take a .NET or Mono -generated managed executable and turn it into ILASM assembly code.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"/>
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Task to take a .NET or Mono -generated managed executable and turn it into ILASM assembly code. Useful when converting imported typelibs into assembler before patching and recompiling, as one has to do when doing advanced typelib work. <p> As well as generating the named output file, the ildasm program will also generate resource files <code>Icons.resources</code> <code>Message.resources</code> and a .res file whose filename stub is derived from the source in ways to obscure to determine. There is no way to control whether or not these files are created, or where they are created (they are created in the current directory; their names come from inside the executable and may be those used by the original developer). This task creates the resources in the directory specified by <code>resourceDir</code> if set, else in the same directory as the <code>destFile</code>. <p> This task requires the .NET SDK installed and ildasm on the path. To disassemble using alternate CLR systems, set the executable attribute to the name/path of the alternate implementation -one that must support all the classic ildasm commands. <p> Dependency logic: the task executes the command if the output file is missing or older than the source file. It does not take into account changes in the options of the task, or timestamp differences in resource files. When the underlying ildasm executable fails for some reason, it leaves the .il file in place with some error message. To prevent this from confusing the dependency logic, the file specified by the <code>dest</code> attribute is <i>always</i> deleted after an unsuccessful build.
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">assembler</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">enable (default) or disable assembly language in the output</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="17">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">bytes</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">enable or disable (default) the original bytes as comments</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">the output file (required)</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">encoding</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Select the output encoding: ascii, utf8 or unicode</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">"ascii", "utf8", "unicode"</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">executable</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">override the name of the executable (normally ildasm) or set its full path. Do not set a relative path, as the ugly hacks needed to create resource files in the dest directory force us to change to this directory before running the application. i.e use &lt;property location&gt to create an absolute path from a relative one before setting this value.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">header</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">include header information; default false.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">item</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">name a single item to decode; a class or a method e.g item="Myclass::method" or item="namespace1::namespace2::Myclass:method(void(int32))</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">linenumbers</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">include line number information; default=false</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">metadata</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">include metadata information</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">progressbar</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">show a graphical progress bar in a window during the process; off by default</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">quoteallnames</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">quote all names.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">rawexceptionhandling</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">enable raw exception handling (default = false)</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">resourcedir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the name of the directory for resources to be created. We cannot control their names, but we can say where they get created. If not set, the directory of the dest file is used</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">showsource</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">include the source as comments (default=false)</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">sourcefile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">the file to disassemble -required</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">alternate name for sourceFile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">visibility</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">visibility options: one or more of the following, with + signs to concatenate them: <pre> pub : Public pri : Private fam : Family asm : Assembly faa : Family and Assembly foa : Family or Assembly psc : Private Scope </pre> e.g. visibility="pub+pri". Family means <code>protected</code> in C#;</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+  <!-- FOOTER SEPARATOR -->
+  <tr>
+    <td>
+      <hr noshade="" size="1"/>
+    </td>
+  </tr>
+
+  <!-- PAGE FOOTER -->
+  <tr>
+    <td>
+      <div align="center"><font color="#525D76" size="-1"><em>
+        Copyright &#169; 2000-2003, Apache Software Foundation
+      </em></font></div>
+    </td>
+  </tr>
+
+</table>
+
+</body>
+</html>
diff --git a/docs/manual/OptionalTasks/image.html b/docs/manual/OptionalTasks/image.html
index 7167978..f6bfe43 100644
--- a/docs/manual/OptionalTasks/image.html
+++ b/docs/manual/OptionalTasks/image.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Image Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/importtypelib.html b/docs/manual/OptionalTasks/importtypelib.html
new file mode 100644
index 0000000..2ea8827
--- /dev/null
+++ b/docs/manual/OptionalTasks/importtypelib.html
@@ -0,0 +1,207 @@
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Importtypelib
+ Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Importtypelib
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Import a COM type library into the .NET framework.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"/>
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Import a COM type library into the .NET framework. <p> This task is a wrapper to .NET's tlbimport; it imports a tlb file to a NET assembly by generating a binary assembly (.dll) that contains all the binding metadata. It uses date timestamps to minimise rebuilds. <p> Example <pre> &lt;importtypelib srcfile="xerces.tlb" destfile="xerces.dll" namespace="Apache.Xerces"/&gt; </pre>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">name the output file. required</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="6">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set any extra options that are not yet supported by this task.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">namespace</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">what namespace is the typelib to be in. required</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">what is the source .tlb file? required.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">unsafe</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">do you want unsafe code.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">usesysarray</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set this to map a COM SafeArray to the System.Array class</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+  <!-- FOOTER SEPARATOR -->
+  <tr>
+    <td>
+      <hr noshade="" size="1"/>
+    </td>
+  </tr>
+
+  <!-- PAGE FOOTER -->
+  <tr>
+    <td>
+      <div align="center"><font color="#525D76" size="-1"><em>
+        Copyright &#169; 2000-2003, Apache Software Foundation
+      </em></font></div>
+    </td>
+  </tr>
+
+</table>
+
+</body>
+</html>
diff --git a/docs/manual/OptionalTasks/jarlib-available.html b/docs/manual/OptionalTasks/jarlib-available.html
index ceb97b9..e242d2e 100644
--- a/docs/manual/OptionalTasks/jarlib-available.html
+++ b/docs/manual/OptionalTasks/jarlib-available.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>jarlib-available Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/jarlib-display.html b/docs/manual/OptionalTasks/jarlib-display.html
index f115cf7..8b64c88 100644
--- a/docs/manual/OptionalTasks/jarlib-display.html
+++ b/docs/manual/OptionalTasks/jarlib-display.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>jarlib-display Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/jarlib-manifest.html b/docs/manual/OptionalTasks/jarlib-manifest.html
index 951b839..8030cdc 100644
--- a/docs/manual/OptionalTasks/jarlib-manifest.html
+++ b/docs/manual/OptionalTasks/jarlib-manifest.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>jarlib-manifest Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/jarlib-resolve.html b/docs/manual/OptionalTasks/jarlib-resolve.html
index 9b3c3ab..057d35e 100644
--- a/docs/manual/OptionalTasks/jarlib-resolve.html
+++ b/docs/manual/OptionalTasks/jarlib-resolve.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>jarlib-resolve Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/javacc.html b/docs/manual/OptionalTasks/javacc.html
index 619be88..efa4cf3 100644
--- a/docs/manual/OptionalTasks/javacc.html
+++ b/docs/manual/OptionalTasks/javacc.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>JavaCC Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/javah.html b/docs/manual/OptionalTasks/javah.html
index 9a2acbb..bbaa4d3 100644
--- a/docs/manual/OptionalTasks/javah.html
+++ b/docs/manual/OptionalTasks/javah.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Javah Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/jdepend.html b/docs/manual/OptionalTasks/jdepend.html
index 61d3893..8a45125 100644
--- a/docs/manual/OptionalTasks/jdepend.html
+++ b/docs/manual/OptionalTasks/jdepend.html
@@ -5,6 +5,7 @@
    <title>JDepend Task</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta http-equiv="Content-Language" content="en-us">
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/jjdoc.html b/docs/manual/OptionalTasks/jjdoc.html
index e48abb5..83fb3f9 100644
--- a/docs/manual/OptionalTasks/jjdoc.html
+++ b/docs/manual/OptionalTasks/jjdoc.html
@@ -4,6 +4,7 @@
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta http-equiv="Content-Language" content="en-us">
    <title>JJDoc Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 <body>
 
diff --git a/docs/manual/OptionalTasks/jjtree.html b/docs/manual/OptionalTasks/jjtree.html
index 51b74d5..2ac20e1 100644
--- a/docs/manual/OptionalTasks/jjtree.html
+++ b/docs/manual/OptionalTasks/jjtree.html
@@ -4,6 +4,7 @@
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta http-equiv="Content-Language" content="en-us">
    <title>JJTree Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 <body>
 
diff --git a/docs/manual/OptionalTasks/jlink.html b/docs/manual/OptionalTasks/jlink.html
index 185df36..dcfce91 100644
--- a/docs/manual/OptionalTasks/jlink.html
+++ b/docs/manual/OptionalTasks/jlink.html
@@ -1,6 +1,7 @@
 <html>
 <head>
 <title>JLink Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 <body>
 
diff --git a/docs/manual/OptionalTasks/jpcoverage.html b/docs/manual/OptionalTasks/jpcoverage.html
index 51c3ec5..9d803cf 100644
--- a/docs/manual/OptionalTasks/jpcoverage.html
+++ b/docs/manual/OptionalTasks/jpcoverage.html
@@ -1,6 +1,7 @@
 <html>
 <head>
 <title>JProbe Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 <body>
 
diff --git a/docs/manual/OptionalTasks/jsharp.html b/docs/manual/OptionalTasks/jsharp.html
new file mode 100644
index 0000000..f232993
--- /dev/null
+++ b/docs/manual/OptionalTasks/jsharp.html
@@ -0,0 +1,455 @@
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Jsharp
+ Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Jsharp
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Compile J# source down to a managed .NET application.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"/>
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Compile J# source down to a managed .NET application. <p> J# is not Java. But it is the language closest to Java in the .NET framework. This task compiles jsharp source (.java files), and generates a .NET managed exe or dll. <p>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">additionalmodules</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of modules to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="21">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">baseaddress</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"></font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">debug</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the debug flag on or off.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the destination directory of files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the name of exe/library to create.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">executable</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the name of the program, overriding the defaults. Can be used to set the full path to a program, or to switch to an alternate implementation of the command, such as the Mono or Rotor versions -provided they use the same command line arguments as the .NET framework edition</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Any extra options which are not explicitly supported by this task.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, fail on compilation errors.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">includedefaultreferences</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, automatically includes the common assemblies in dotnet, and tells the compiler to link in mscore.dll. set the automatic reference inclusion flag on or off this flag controls the /nostdlib option in CSC</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">mainclass</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the name of main class for executables.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">optimize</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, enables optimization flag.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">purejava</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">do we want pure java (default, true) or corrupted J#?</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">referencefiles</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path of references to include. Wildcards should work.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Path</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">references</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Semicolon separated list of DLLs to refer to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">securescoping</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Make package scoped code visible to the current assembly only (default: false) .NET does not have package scoping. Instead it has assembly, private and public. By default, package content is public to all.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcdir</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the source directory of the files to be compiled.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">targettype</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the target type to one of exe|library|module|winexe</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">"exe", "library", "module", "winexe"</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">utf8output</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">If true, require all compiler output to be in UTF8 format.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">warnlevel</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Level of warning currently between 1 and 4 with 4 being the strictest.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">int</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32icon</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Set the filename of icon to include.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">win32res</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the filename of a win32 resource (.RES) file to include. This is not a .NET resource, but what Windows is used to.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>define</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetDefine)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a define to the list of definitions
+<short-description><![CDATA[Add a define to the list of definitions.]]></short-description>
+<description>
+            <![CDATA[add a define to the list of definitions]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>reference</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new reference fileset to the compilation
+<short-description><![CDATA[Add a new reference fileset to the compilation.]]></short-description>
+<description>
+            <![CDATA[add a new reference fileset to the compilation]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>resource</strong> (org.apache.tools.ant.taskdefs.optional.dotnet.DotnetResource)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        link or embed a resource
+<short-description><![CDATA[Link or embed a resource.]]></short-description>
+<description>
+            <![CDATA[link or embed a resource]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+    <!-- Start Element -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#828DA6">
+        <font color="#ffffff" face="arial,helvetica.sanserif" size="-1">
+          <strong>src</strong> (org.apache.tools.ant.types.FileSet)</font>
+      </td></tr>
+      <tr><td><blockquote>
+        add a new source directory to the compile
+<short-description><![CDATA[Add a new source directory to the compile.]]></short-description>
+<description>
+            <![CDATA[add a new source directory to the compile]]>
+          </description>
+
+      </blockquote></td></tr>
+    </table>
+    <!-- End Element -->
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+  <!-- FOOTER SEPARATOR -->
+  <tr>
+    <td>
+      <hr noshade="" size="1"/>
+    </td>
+  </tr>
+
+  <!-- PAGE FOOTER -->
+  <tr>
+    <td>
+      <div align="center"><font color="#525D76" size="-1"><em>
+        Copyright &#169; 2000-2003, Apache Software Foundation
+      </em></font></div>
+    </td>
+  </tr>
+
+</table>
+
+</body>
+</html>
diff --git a/docs/manual/OptionalTasks/jspc.html b/docs/manual/OptionalTasks/jspc.html
index 44e8c91..c02a5ef 100644
--- a/docs/manual/OptionalTasks/jspc.html
+++ b/docs/manual/OptionalTasks/jspc.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>JSPC Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/junit.html b/docs/manual/OptionalTasks/junit.html
index f840299..0a07c73 100644
--- a/docs/manual/OptionalTasks/junit.html
+++ b/docs/manual/OptionalTasks/junit.html
@@ -1,6 +1,7 @@
 <html>
 <head>
 <title>JUnit Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 <body>
 
diff --git a/docs/manual/OptionalTasks/junitreport.html b/docs/manual/OptionalTasks/junitreport.html
index ecf98c2..b1e0c3b 100644
--- a/docs/manual/OptionalTasks/junitreport.html
+++ b/docs/manual/OptionalTasks/junitreport.html
@@ -1,6 +1,7 @@
 <html>
 <head>
 <title>JUnitReport Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/maudit.html b/docs/manual/OptionalTasks/maudit.html
index cfa5142..63e9d2e 100644
--- a/docs/manual/OptionalTasks/maudit.html
+++ b/docs/manual/OptionalTasks/maudit.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>MAudit Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/mimemail.html b/docs/manual/OptionalTasks/mimemail.html
index 2f38e5c..3085e6c 100644
--- a/docs/manual/OptionalTasks/mimemail.html
+++ b/docs/manual/OptionalTasks/mimemail.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>MimeMail Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/mmetrics.html b/docs/manual/OptionalTasks/mmetrics.html
index 50caa6c..d14bc5a 100644
--- a/docs/manual/OptionalTasks/mmetrics.html
+++ b/docs/manual/OptionalTasks/mmetrics.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>MMetrics Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/mparse.html b/docs/manual/OptionalTasks/mparse.html
index 9ffd5a6..9e8b27c 100644
--- a/docs/manual/OptionalTasks/mparse.html
+++ b/docs/manual/OptionalTasks/mparse.html
@@ -4,6 +4,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>MParse Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/native2ascii.html b/docs/manual/OptionalTasks/native2ascii.html
index 21b6057..f008da0 100644
--- a/docs/manual/OptionalTasks/native2ascii.html
+++ b/docs/manual/OptionalTasks/native2ascii.html
@@ -1,4 +1,5 @@
 <html>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
   <head><title>Native2Ascii Task</title></head>
   <body>
     <h2>Native2Ascii</h2>
diff --git a/docs/manual/OptionalTasks/netrexxc.html b/docs/manual/OptionalTasks/netrexxc.html
index 0ce5251..c3e6d3b 100644
--- a/docs/manual/OptionalTasks/netrexxc.html
+++ b/docs/manual/OptionalTasks/netrexxc.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>NetRexxC Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/perforce.html b/docs/manual/OptionalTasks/perforce.html
index 97c72e2..bd53620 100644
--- a/docs/manual/OptionalTasks/perforce.html
+++ b/docs/manual/OptionalTasks/perforce.html
@@ -1,6 +1,7 @@
 <html>
 <head>
 <title>Perforce Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 <body>
 <h1>Perforce Tasks User Manual</h1>
@@ -22,10 +23,10 @@
 <br>
 <h2><a name="intro">Introduction</a></h2>
 <p>These tasks provide an interface to the <a href="http://www.perforce.com" target="_top">Perforce</a> SCM.
-The <code>org.apache.tools.ant.taskdefs.optional.perforce</code> package consists of a simple framework to support 
-p4 functionality as well as some Ant tasks encapsulating frequently used (by me :-) p4 commands. 
-However, the addition of new p4 commands is a pretty simple task (see the source). 
-Although it is possible to use these commands on the desktop, 
+The <code>org.apache.tools.ant.taskdefs.optional.perforce</code> package consists of a simple framework to support
+p4 functionality as well as some Ant tasks encapsulating frequently used (by me :-) p4 commands.
+However, the addition of new p4 commands is a pretty simple task (see the source).
+Although it is possible to use these commands on the desktop,
 they were primarily intended to be used by automated build systems.</p>
 
 <p><b>Note:</b> These tasks require the <a href="http://jakarta.apache.org/oro" target="_top">oro 2.0.XXX</a> regular
@@ -79,7 +80,7 @@
         <td><a href="#p4revert">P4Revert</a></td>
         <td>Revert files</td>
     </tr>
-	    
+
     <tr>
         <td><a href="#p4add">P4Add</a></td>
         <td>Add files</td>
@@ -103,7 +104,7 @@
 </table>
 
 <h3>General P4 Properties</h3>
-<p>Each p4 task requires a number of settings, either through build-wide properties, individual attributes 
+<p>Each p4 task requires a number of settings, either through build-wide properties, individual attributes
 or environment variables. These are
 </p>
 <table border="1" cellpadding="2" cellspacing="0">
@@ -147,7 +148,7 @@
 <p> Your local installation of Perforce may require other settings (e.g.
 P4PASSWD, P4CONFIG). Many of these settings can be set using the globalopts
 attribute (described below), but not all. If a setting cannot be set
-by the command-line options, then it can only be set outside of Ant as an 
+by the command-line options, then it can only be set outside of Ant as an
 environment variable.
 </p>
 <p>
@@ -245,7 +246,7 @@
 
 <h2><a name="p4change">P4Change</a></h2>
 <h3>Description:</h3>
-<p>Request a new changelist from the Perforce server. 
+<p>Request a new changelist from the Perforce server.
 This task sets the ${p4.change} property which can then be passed to <A HREF="#p4submit">P4Submit</A>,
 <A HREF="#p4edit">P4Edit</A>, or <a HREF="#p4add">P4Add</A>, or <a HREF="#p4delete">P4Delete</A>,
 then to <A HREF="#p4submit">P4Submit</A>.
@@ -384,7 +385,8 @@
   </tr>
   <tr>
     <td valign="top">view</td>
-    <td valign="top">client view to use for label</td>
+    <td valign="top">client view to use for label<br/>
+    The view can contain multiple lines separated by ; or :</td>
     <td valign="top" align="center">No</td>
   </tr>
   <tr>
@@ -403,9 +405,10 @@
 <h3>Examples</h3>
 <pre>
 &lt;p4label
-	name=&quot;NightlyBuild:${DSTAMP}:${TSTAMP}&quot; 
+	name=&quot;NightlyBuild:${DSTAMP}:${TSTAMP}&quot;
 	desc=&quot;Auto Nightly Build&quot;
 	lock=&quot;locked&quot;
+	label=&quot;//firstdepot/...;//secondepot/foo/bar/...&quot;
 /&gt;
 </pre>
 <hr>
@@ -614,7 +617,7 @@
     <td valign="top">Revert only unchanged files (p4 revert -a)</td>
     <td valign="top" align="center">No</td>
   </tr>
-  
+
 </table>
 
 <h3>Examples</h3>
@@ -643,7 +646,7 @@
   <tr>
     <td valign="top">commandlength</td>
     <td valign="top">A positive integer specifying the maximum length
-        of the commandline when calling Perforce to add the files. 
+        of the commandline when calling Perforce to add the files.
         Defaults to 450, higher values mean faster execution,
         but also possible failures.</td>
     <td valign="top" align="center">No</td>
@@ -655,7 +658,7 @@
 associated with the default changelist.</td>
     <td valign="top" align="center">No</td>
   </tr>
-  
+
 </table>
 
 <h3>Examples</h3>
@@ -920,7 +923,6 @@
 <pre>
 &lt;p4resolve
     view=&quot;//depot/projects/projectfoo/main/src/Blah.java...&quot;
-    change=&quot;${p4.change}&quot;
     resolvemode=&quot;automatic&quot;/&gt;
 </pre>
 
@@ -942,12 +944,12 @@
     <td valign="top">V1.1</td>
     <td valign="top">Fixed cross platform (NT/Unix) bug<br>
     Refactored p4 output handling code<br>
-    Refactored exec'ing code</td>    
+    Refactored exec'ing code</td>
 </tr>
 <tr>
     <td valign="top">Jan 2003</td>
     <td valign="top">V1.2</td>
-    <td valign="top">Added globalopts to P4Base to allow 
+    <td valign="top">Added globalopts to P4Base to allow
                      additional global options to be set.<br>
                      Added p4fstat task</td>
 </tr>
diff --git a/docs/manual/OptionalTasks/propertyfile.html b/docs/manual/OptionalTasks/propertyfile.html
index 91d0e3e..fd19b64 100644
--- a/docs/manual/OptionalTasks/propertyfile.html
+++ b/docs/manual/OptionalTasks/propertyfile.html
@@ -2,6 +2,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>PropertyFile Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/pvcstask.html b/docs/manual/OptionalTasks/pvcstask.html
index b136473..f2917f7 100644
--- a/docs/manual/OptionalTasks/pvcstask.html
+++ b/docs/manual/OptionalTasks/pvcstask.html
@@ -4,6 +4,7 @@
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta http-equiv="Content-Language" content="en-us">
    <title>PVCS task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 <body>
 
diff --git a/docs/manual/OptionalTasks/renameextensions.html b/docs/manual/OptionalTasks/renameextensions.html
index 6e42364..ec0369a 100644
--- a/docs/manual/OptionalTasks/renameextensions.html
+++ b/docs/manual/OptionalTasks/renameextensions.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>RenameExtensions Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/replaceregexp.html b/docs/manual/OptionalTasks/replaceregexp.html
index eca4f20..e5e0afd 100644
--- a/docs/manual/OptionalTasks/replaceregexp.html
+++ b/docs/manual/OptionalTasks/replaceregexp.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>ReplaceRegExp Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/rexec.html b/docs/manual/OptionalTasks/rexec.html
index 504a7dc..d7b2a3c 100644
--- a/docs/manual/OptionalTasks/rexec.html
+++ b/docs/manual/OptionalTasks/rexec.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>RExec Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/rpm.html b/docs/manual/OptionalTasks/rpm.html
index 670b837..9ec5ad6 100644
--- a/docs/manual/OptionalTasks/rpm.html
+++ b/docs/manual/OptionalTasks/rpm.html
@@ -2,6 +2,7 @@
 
 <head>
 <title>Rpm Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/scp.html b/docs/manual/OptionalTasks/scp.html
index 29892be..5a0fabf 100644
--- a/docs/manual/OptionalTasks/scp.html
+++ b/docs/manual/OptionalTasks/scp.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>SCP Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -20,7 +21,7 @@
 in the Ant distribution.  See <a
 href="../install.html#librarydependencies">Library Dependencies</a>
 for more information.  This task has been tested with jsch-0.1.2 to
-jsch-0.1.7.</p>
+jsch-0.1.8.</p>
 
 <h3>Parameters</h3>
 <table border="1" cellpadding="2" cellspacing="0">
@@ -53,7 +54,10 @@
   </tr>
   <tr>
     <td valign="top">trust</td>
-    <td valign="top">This trusts all unknown hosts if set to yes/true.</td>
+    <td valign="top">This trusts all unknown hosts if set to yes/true.<br>
+      <strong>Note</strong> If you set this to false (the default), the
+      host you connect to must be listed in your knownhosts file, this
+      also implies that the file exists.</td>
     <td valian="top" align="center">No, defaults to No.</td>
   </tr>
   <tr>
diff --git a/docs/manual/OptionalTasks/script.html b/docs/manual/OptionalTasks/script.html
index 3ef8a12..3f67938 100644
--- a/docs/manual/OptionalTasks/script.html
+++ b/docs/manual/OptionalTasks/script.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Script Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -213,4 +214,4 @@
 Reserved.</p>
 
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/docs/manual/OptionalTasks/scriptdef.html b/docs/manual/OptionalTasks/scriptdef.html
new file mode 100755
index 0000000..3e2cc28
--- /dev/null
+++ b/docs/manual/OptionalTasks/scriptdef.html
@@ -0,0 +1,191 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<title>Scriptdef Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body>
+
+<h2><a name="script">Script</a></h2>
+<h3>Description</h3>
+<p>Scriptdef can be used to define an Ant task using a scripting language. Ant
+scripting languages supported by
+<a href="http://jakarta.apache.org/bsf" target="_top">Apache BSF</a> may be
+used to define the script. Scriptdef provides a mechanism to encapsulate
+control logic from a build within an Ant task minimizing the need for
+proviuding control style tasks in Ant itself. Complex logic can be made
+available while retaining the simple structure of an Ant build file. Scriptdef
+is also useful for prototyping new custom tasks. Certainly as the complexity
+of the script increases it would be better to migrate the task definition
+into a Java based custom task.
+</p>
+
+<p><b>Note:</b> This task depends on external libraries not included in the
+Ant distribution. See
+<a href="../install.html#librarydependencies">Library Dependencies</a>
+for more information.</p>
+
+<p>The attributes and nested elements supported by the task may be defined
+using &lt;attribute&gt; and &lt;element&gt; nested elements. These are
+available to the script that implements the task as two collection style
+script variables <code>attributes</code> and <code>elements</code>. The
+elements in the <code>attributes</code> collection may be accessed by the
+attribute name. The <code>elements</code> collection is accessed by the nested
+element name. This will return a list of all instances of the nested element.
+The instances in this list may be accessed by an integer index.
+</p>
+
+<p>The name "project" is a pre-defined reference to the Ant Project. For
+more information on writing scripts, please refer to the
+<a href="script.html">&lt;script&gt;</a> task
+</p>
+
+<h3>Parameters</h3>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the task to be created using the script</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">language</td>
+    <td valign="top">The programming language the script is written in.
+      Must be a supported Apache BSF language</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">src</td>
+    <td valign="top">The location of the script as a file, if not inline</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+<h3>Nested elements</h3>
+<h4>attribute</h4>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the attribute</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+</table>
+
+<h4>element</h4>
+<table border="1" cellpadding="2" cellspacing="0">
+  <tr>
+    <td valign="top"><b>Attribute</b></td>
+    <td valign="top"><b>Description</b></td>
+    <td align="center" valign="top"><b>Required</b></td>
+  </tr>
+  <tr>
+    <td valign="top">name</td>
+    <td valign="top">the name of the nested element to be supported by the
+                     task defined by the script</td>
+    <td valign="top" align="center">Yes</td>
+  </tr>
+  <tr>
+    <td valign="top">classname</td>
+    <td valign="top">the classname of the class to be used for the nested element.
+         This specifies the class directly and is an alternative to specifying
+         the Ant type name.</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+  <tr>
+    <td valign="top">type</td>
+    <td valign="top">This is the name of an Ant task or type which is to
+        be used when this element is to be created. This is an alternative
+        to specifying the class name directly</td>
+    <td valign="top" align="center">No</td>
+  </tr>
+</table>
+
+
+
+<h3>Examples</h3>
+
+<p>
+The following definition creates a task which supprts an attribute called
+attr and two nested elements, one being a fileset and the other a path. When
+executed, the resulting task logs the value of the attribute and the basedir
+of the first fileset.
+</p>
+
+<pre>
+  &lt;scriptdef name=&quot;scripttest&quot; language=&quot;javascript&quot;&gt;
+    &lt;attribute name=&quot;attr1&quot;/&gt;
+    &lt;element name=&quot;fileset&quot; type=&quot;fileset&quot;/&gt;
+    &lt;element name=&quot;path&quot; type=&quot;path&quot;/&gt;
+    &lt;![CDATA[
+
+      project.log(&quot;Hello from script&quot;);
+      project.log(&quot;Attribute attr1 = &quot; + attributes.get(&quot;attr1&quot;));
+      project.log(&quot;First fileset basedir = &quot;
+        + elements.get(&quot;fileset&quot;).get(0).getDir(project));
+
+    ]]&gt;
+  &lt;/scriptdef&gt;
+
+  &lt;scripttest attr1=&quot;test&quot;&gt;
+    &lt;path&gt;
+      &lt;pathelement location=&quot;src&quot;/&gt;
+    &lt;/path&gt;
+    &lt;fileset dir=&quot;src&quot;/&gt;
+    &lt;fileset dir=&quot;main&quot;/&gt;
+  &lt;/scripttest&gt;
+</pre>
+
+<p>
+The following variation on the above script lists the number of fileset elements
+and iterates through them
+</p>
+<pre>
+  &lt;scriptdef name=&quot;scripttest2&quot; language=&quot;javascript&quot;&gt;
+    &lt;element name=&quot;fileset&quot; type=&quot;fileset&quot;/&gt;
+    &lt;![CDATA[
+      filesets = elements.get(&quot;fileset&quot;);
+      project.log(&quot;Number of filesets = &quot; + filesets.size());
+      for (i = 0; i &lt; filesets.size(); ++i) {
+        project.log(&quot;fileset &quot; + i + &quot; basedir = &quot;
+          + filesets.get(i).getDir(project));
+      }
+    ]]&gt;
+  &lt;/scriptdef&gt
+
+  &lt;scripttest2&gt;
+    &lt;fileset dir=&quot;src&quot;/&gt;
+    &lt;fileset dir=&quot;main&quot;/&gt;
+  &lt;/scripttest2&gt;
+</pre>
+
+<p>
+When a script has a syntax error, the scriptdef name will be listed in the
+error. For example in the above script, removing the closing curly bracket
+would result in this error
+</p>
+
+<p><code>build.xml:15: SyntaxError: missing } in compound
+statement (scriptdef &lt;scripttest2&gt;; line 10)</code></p>
+
+<p>
+Script errors are only detected when a script task is actually executed.
+</p>
+
+
+<hr>
+<p align="center">Copyright &copy; 2000-2003 Apache Software Foundation. All rights
+Reserved.</p>
+
+</body>
+</html>
diff --git a/docs/manual/OptionalTasks/serverdeploy.html b/docs/manual/OptionalTasks/serverdeploy.html
index dc18fa3..910efd4 100644
--- a/docs/manual/OptionalTasks/serverdeploy.html
+++ b/docs/manual/OptionalTasks/serverdeploy.html
@@ -4,6 +4,7 @@
 <meta http-equiv="Content-Language" content="en-us">
 <title>ServerDeploy Task</title>
 
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -316,4 +317,4 @@
 <hr>
 <p align="center">Copyright &copy; 2002 Apache Software Foundation. All rights Reserved.</p>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/docs/manual/OptionalTasks/setproxy.html b/docs/manual/OptionalTasks/setproxy.html
index 8688e37..6c467c8 100644
--- a/docs/manual/OptionalTasks/setproxy.html
+++ b/docs/manual/OptionalTasks/setproxy.html
@@ -4,6 +4,7 @@
   <meta http-equiv="Content-Language" content="en-us">
   <title>Setproxy
  Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body bgcolor="#ffffff" text="#000000" link="#525D76"
diff --git a/docs/manual/OptionalTasks/sos.html b/docs/manual/OptionalTasks/sos.html
index 9cdc72a..accf31d 100644
--- a/docs/manual/OptionalTasks/sos.html
+++ b/docs/manual/OptionalTasks/sos.html
@@ -5,6 +5,7 @@
   <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
   <title>SOS Tasks</title>
 
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 <body>
 
diff --git a/docs/manual/OptionalTasks/sound.html b/docs/manual/OptionalTasks/sound.html
index 294a46a..fcfbebb 100644
--- a/docs/manual/OptionalTasks/sound.html
+++ b/docs/manual/OptionalTasks/sound.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Sound Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/splash.html b/docs/manual/OptionalTasks/splash.html
index 6ac3281..c837aa2 100644
--- a/docs/manual/OptionalTasks/splash.html
+++ b/docs/manual/OptionalTasks/splash.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Ant User Manual</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/sshexec.html b/docs/manual/OptionalTasks/sshexec.html
index 4b8d35b..54c5648 100644
--- a/docs/manual/OptionalTasks/sshexec.html
+++ b/docs/manual/OptionalTasks/sshexec.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>SSHEXEC Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -18,8 +19,9 @@
 <p><b>Note:</b> This task depends on external libraries not included
 in the Ant distribution.  See <a
 href="../install.html#librarydependencies">Library Dependencies</a>
-for more information.  This task has been tested with jsch-0.1.7 and
-won't work with earlier versions of jsch..</p>
+for more information.  This task has been tested with jsch-0.1.7 to
+jsch-0.1.8 and won't work with versions of jsch earlier than
+0.1.7.</p>
 
 <h3>Parameters</h3>
 <table border="1" cellpadding="2" cellspacing="0">
@@ -45,7 +47,11 @@
   </tr>
   <tr>
     <td valign="top">trust</td>
-    <td valign="top">This trusts all unknown hosts if set to yes/true.</td>
+
+    <td valign="top">This trusts all unknown hosts if set to yes/true.<br>
+      <strong>Note</strong> If you set this to false (the default), the
+      host you connect to must be listed in your knownhosts file, this
+      also implies that the file exists.</td>
     <td valian="top" align="center">No, defaults to No.</td>
   </tr>
   <tr>
diff --git a/docs/manual/OptionalTasks/starteam.html b/docs/manual/OptionalTasks/starteam.html
index 64de0f5..c8b99dc 100644
--- a/docs/manual/OptionalTasks/starteam.html
+++ b/docs/manual/OptionalTasks/starteam.html
@@ -2,6 +2,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>StarTeam Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 <body>
 <h1>StarTeam Support</h1>
@@ -26,7 +27,8 @@
 is not sufficient for getting these tasks to work properly.</b>  These tasks also require a 
 fully-installed and fully-licensed version of the StarGate Runtime.  This is part 
 of a StarTeam client installation or may be installed separately.  The full client
-install is not required.
+install is not required.  In particular, the Windows path must include the directory where 
+the StarGate Runtime <CODE>.dll</CODE> files are installed.
 </p><p>
 Earlier versions of Ant (prior to 1.5.2) did not have this restriction because they
 were not as dependent on the StarTeam runtime - which the newer versions use to access
@@ -565,16 +567,21 @@
     <td align="center" valign="top">yes</td>
   </tr> 
   <tr>
+    <td valign="top">description</td>
+    <td valign="top">A description of the label to be stored in the StarTeam project.</td>
+    <td align="center" valign="top">yes</td>
+  </tr>
+  <tr>
     <td valign="top">revisionlabel</td>
     <td valign="top">Yes means that the label attribute is to be saved as a &quot;revision label&quot;.  No (default) means that it will be saved as a &quot;view label&quot;</td>
     <td align="center" valign="top">no</td>
   </tr> 
   <tr>
     <td valign="top">buildlabel</td>
-    <td valign="top">Yes (default) means that the label attribute is to be saved as a &quot;build label&quot;.  
+    <td valign="top">Yes means that the label attribute is to be saved as a &quot;build label&quot;.  
       This means that Change Requests which have an &quot;AddressedIn&quot; field value of &quot;next build&quot;
        will have this label assigned to that field when the label is created.  
-       No means that no CRs will have this label assigned to them.  This will have no effect if <b>revisionlabel</b> is also true.  </td>
+       No (default) means that no CRs will have this label assigned to them.  This will have no effect if <b>revisionlabel</b> is also true.  </td>
     <td align="center" valign="top">no</td>
   </tr> 
 
@@ -583,11 +590,6 @@
     <td valign="top">The timestamp of the build that will be stored with the label.  Must be formatted <code>yyyyMMddHHmmss</code></td>
     <td align="center" valign="top">no</td>
   </tr>
-  <tr>
-    <td valign="top">description</td>
-    <td valign="top">A description of the label to be stored in the StarTeam project.</td>
-    <td align="center" valign="top">no</td>
-  </tr>
 </table>
 
 <h3>Examples</h3>
diff --git a/docs/manual/OptionalTasks/stylebook.html b/docs/manual/OptionalTasks/stylebook.html
index 92e6d59..736605d 100644
--- a/docs/manual/OptionalTasks/stylebook.html
+++ b/docs/manual/OptionalTasks/stylebook.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>StyleBook Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/symlink.html b/docs/manual/OptionalTasks/symlink.html
index e7a840c..d71e572 100644
--- a/docs/manual/OptionalTasks/symlink.html
+++ b/docs/manual/OptionalTasks/symlink.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Symlink Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/telnet.html b/docs/manual/OptionalTasks/telnet.html
index 4dc567f..f275b91 100644
--- a/docs/manual/OptionalTasks/telnet.html
+++ b/docs/manual/OptionalTasks/telnet.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Telnet Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/test.html b/docs/manual/OptionalTasks/test.html
index 6999fad..c92afba 100644
--- a/docs/manual/OptionalTasks/test.html
+++ b/docs/manual/OptionalTasks/test.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Test Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/translate.html b/docs/manual/OptionalTasks/translate.html
index 66c769e..1d6ca93 100644
--- a/docs/manual/OptionalTasks/translate.html
+++ b/docs/manual/OptionalTasks/translate.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Translate Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTasks/vss.html b/docs/manual/OptionalTasks/vss.html
index 9cc4b15..1e423f6 100644
--- a/docs/manual/OptionalTasks/vss.html
+++ b/docs/manual/OptionalTasks/vss.html
@@ -1,6 +1,7 @@
 <html>
 <head>
 <title>Microsoft Visual SourceSafe(VSS) Tasks</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 <body>
 <h1>Microsoft Visual SourceSafe Tasks User Manual</h1>
diff --git a/docs/manual/OptionalTasks/wljspc.html b/docs/manual/OptionalTasks/wljspc.html
index ed33eed..51387f9 100644
--- a/docs/manual/OptionalTasks/wljspc.html
+++ b/docs/manual/OptionalTasks/wljspc.html
@@ -1,4 +1,5 @@
 <html>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 <head><title>WLJSPC Task</title></head>
 <body>
 <h1>wljspc</h1>
diff --git a/docs/manual/OptionalTasks/wsdltodotnet.html b/docs/manual/OptionalTasks/wsdltodotnet.html
new file mode 100644
index 0000000..770505d
--- /dev/null
+++ b/docs/manual/OptionalTasks/wsdltodotnet.html
@@ -0,0 +1,231 @@
+    
+<html>
+<head>
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>Wsdltodotnet
+ Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
+</head>
+
+<body bgcolor="#ffffff" text="#000000" link="#525D76"
+      alink="#525D76" vlink="#525D76">
+
+<table border="0" width="100%" cellspacing="4">
+
+  <!-- PAGE HEADER -->
+  <tr>
+    <td>
+      <table border="0" width="100%"><tr>
+          <td valign="bottom">
+            <font size="+3" face="arial,helvetica,sanserif"><strong>Wsdltodotnet
+ Task</strong></font>
+            <br><font face="arial,helvetica,sanserif">Converts a WSDL file or URL resource into a .NET language.</font>
+          </td>
+          <td>
+            <!-- PROJECT LOGO -->
+            <a href="http://ant.apache.org/">
+              <img src="../../images/ant_logo_large.gif" align="right" alt="Apache Ant" border="0"/>
+            </a>
+          </td>
+      </tr></table>
+    </td>
+  </tr>
+
+  <!-- START RIGHT SIDE MAIN BODY -->
+  <tr>
+    <td  valign="top" align="left">
+
+          <!-- Applying task/long-description -->
+    <!-- Start Description -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="description">
+          <strong>Description</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+        Converts a WSDL file or URL resource into a .NET language. Why add a wrapper to the MS WSDL tool? So that you can verify that your web services, be they written with Axis or anyone else's SOAP toolkit, work with .NET clients. This task is dependency aware when using a file as a source and destination; so if you &lt;get&gt; the file (with <code>usetimestamp="true"</code>) then you only rebuild stuff when the WSDL file is changed. Of course, if the server generates a new timestamp every time you ask for the WSDL, this is not enough...use the &lt;filesmatch&gt; &lt;condition&gt; to to byte for byte comparison against a cached WSDL file then make the target conditional on that test failing. See "Creating an XML Web Service Proxy", "wsdl.exe" docs in the framework SDK documentation
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Description -->
+
+    <!-- Start Attributes -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="attributes">
+          <strong>Parameters</strong></a></font>
+      </td></tr>
+      <tr><td><blockquote>
+        <table>
+          <tr>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Attribute</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Description</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Type</b></font>
+        </td>
+        <td bgcolor="#cccccc" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif"><b>Requirement</b></font>
+        </td>
+          </tr>
+    <!-- Attribute Group -->    
+    
+    <!-- Attribute Group -->    
+        <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">destfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Name of the file to generate. Required</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left" rowspan="8">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Optional</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">extraoptions</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Any extra WSDL.EXE options which aren't explicitly supported by the ant wrapper task; optional</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">failonerror</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Whether or not a failure should halt the build. Optional - default is <code>true</code>.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">language</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">set the language; one of "CS", "JS", or "VB" optional, default is CS for C# source</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">namespace</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">namespace to place the source in. optional; default ""</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">server</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">flag to enable server side code generation; optional, default=false</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">boolean</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">srcfile</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">The local WSDL file to parse; either url or srcFile is required.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">File</font>
+        </td>
+    </tr>
+    <!-- Attribute -->
+    <tr>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">url</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">Sets the URL to fetch. Fetching is by wsdl.exe; Ant proxy settings are ignored; either url or srcFile is required.</font>
+        </td>
+        <td bgcolor="#eeeeee" valign="top" align="left">
+          <font color="#000000" size="-1" face="arial,helvetica,sanserif">String</font>
+        </td>
+    </tr>
+
+
+        </table>
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Attributes -->
+
+    <!-- Start Elements -->
+    <table border="0" cellspacing="0" cellpadding="2" width="100%">
+      <tr><td>&nbsp;</td></tr>
+
+      <tr><td bgcolor="#525D76">
+        <font color="#ffffff" face="arial,helvetica.sanserif">
+          <a name="elements">
+          <strong>Parameters as nested elements</strong></a></font>
+      </td></tr>
+
+      <tr><td><blockquote>
+
+      </blockquote></td></tr>
+
+    </table>
+    <!-- End Elements -->
+
+
+    </td>
+  </tr>
+  <!-- END RIGHT SIDE MAIN BODY -->
+
+  <!-- FOOTER SEPARATOR -->
+  <tr>
+    <td>
+      <hr noshade="" size="1"/>
+    </td>
+  </tr>
+
+  <!-- PAGE FOOTER -->
+  <tr>
+    <td>
+      <div align="center"><font color="#525D76" size="-1"><em>
+        Copyright &#169; 2000-2003, Apache Software Foundation
+      </em></font></div>
+    </td>
+  </tr>
+
+</table>
+
+</body>
+</html>
diff --git a/docs/manual/OptionalTasks/xmlvalidate.html b/docs/manual/OptionalTasks/xmlvalidate.html
index aea5f38..926680c 100644
--- a/docs/manual/OptionalTasks/xmlvalidate.html
+++ b/docs/manual/OptionalTasks/xmlvalidate.html
@@ -2,6 +2,7 @@
 
 <head>
 <title>XMLValidate Task</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTypes/classfileset.html b/docs/manual/OptionalTypes/classfileset.html
index b72b398..bc185f4 100644
--- a/docs/manual/OptionalTypes/classfileset.html
+++ b/docs/manual/OptionalTypes/classfileset.html
@@ -2,6 +2,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>ClassFileSet Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTypes/extension.html b/docs/manual/OptionalTypes/extension.html
index 2c28218..9a498e6 100644
--- a/docs/manual/OptionalTypes/extension.html
+++ b/docs/manual/OptionalTypes/extension.html
@@ -2,6 +2,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Extension Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/OptionalTypes/extensionset.html b/docs/manual/OptionalTypes/extensionset.html
index 6ea1f96..066cb3d 100644
--- a/docs/manual/OptionalTypes/extensionset.html
+++ b/docs/manual/OptionalTypes/extensionset.html
@@ -2,6 +2,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>ExtensionSet Type</title>
+<link rel="stylesheet" type="text/css" href="../stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/antexternal.html b/docs/manual/antexternal.html
index fc46a93..2fecb8c 100644
--- a/docs/manual/antexternal.html
+++ b/docs/manual/antexternal.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>InputHandler</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/anttaskslist.html b/docs/manual/anttaskslist.html
index b11c7e2..e309a66 100644
--- a/docs/manual/anttaskslist.html
+++ b/docs/manual/anttaskslist.html
@@ -4,6 +4,7 @@
 <meta http-equiv="Content-Language" content="en-us">
 <title>Apache Ant User Manual</title>
 <base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/base_task_classes.html b/docs/manual/base_task_classes.html
index 6a5bf9a..d1ea165 100644
--- a/docs/manual/base_task_classes.html
+++ b/docs/manual/base_task_classes.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Tasks Desinged for Extension</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/conceptstypeslist.html b/docs/manual/conceptstypeslist.html
index 3ec9ed6..da14c31 100644
--- a/docs/manual/conceptstypeslist.html
+++ b/docs/manual/conceptstypeslist.html
@@ -4,6 +4,7 @@
 <meta http-equiv="Content-Language" content="en-us">
 <title>Apache Ant User Manual</title>
 <base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -15,6 +16,7 @@
 <a href="CoreTasks/common.html">Common Attributes</a><br>
 
 <h3>Core Types</h3>
+<a href="CoreTypes/assertions.html">Assertions Type</a><br>
 <a href="CoreTypes/description.html">Description Type</a><br>
 <a href="dirtasks.html">Directory-based Tasks</a><br>
 <a href="CoreTypes/dirset.html">DirSet</a><br>
diff --git a/docs/manual/coretasklist.html b/docs/manual/coretasklist.html
index 2b8359c..2e01b6e 100644
--- a/docs/manual/coretasklist.html
+++ b/docs/manual/coretasklist.html
@@ -4,6 +4,7 @@
 <meta http-equiv="Content-Language" content="en-us">
 <title>Apache Ant User Manual</title>
 <base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/cover.html b/docs/manual/cover.html
index a6caeea..c917716 100644
--- a/docs/manual/cover.html
+++ b/docs/manual/cover.html
@@ -3,20 +3,21 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Apache Ant 1.6 User Manual</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body bgcolor="#FFFFFF">
 <div align="center"> 
   <h1><img src="../images/ant_logo_large.gif" width="190" height="120"></h1>
   <h1>Apache Ant 1.6 Manual</h1>
-  <p align="left">This is the manual for version 1.6alpha of 
+  <p align="left">This is the manual for version 1.6 of 
   <a href="http://ant.apache.org/index.html">Apache Ant</a>. 
     If your version 
     of Ant (as verified with <tt>ant -version</tt>) is older or newer than this 
     version then this is not the correct manual set. Please use the documentation 
     appropriate to your current version. Also, if you are using a version
     older than the most recent release, we recommend an upgrade to fix bugs
-    as well as provide new functionality </p>
+    as well as provide new functionality. </p>
   <p>&nbsp;</p>
 </div>
 <hr>
diff --git a/docs/manual/credits.html b/docs/manual/credits.html
index e9e9fff..e728407 100644
--- a/docs/manual/credits.html
+++ b/docs/manual/credits.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Apache Ant User Manual - Credits</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -26,6 +27,7 @@
   <li>Diane Holt (<a href="mailto:holtdl@yahoo.com">holtdl@yahoo.com</a>)</li>
   <li>Bill Kelly (<a href="mailto:bill.kelly@softwired-inc.com">bill.kelly@softwired-inc.com</a>)</li>
   <li>Arnout J. Kuiper (<a href="mailto:ajkuiper@wxs.nl">ajkuiper@wxs.nl</a>)</li>
+  <li>Antoine Lévy-Lambert</li>
   <li>Conor MacNeill</li>
   <li>Jan Matèrne</li>
   <li>Stefano Mazzocchi (<a href="mailto:stefano@apache.org">stefano@apache.org</a>)</li>
@@ -43,7 +45,7 @@
 </ul>
 
 <center>
-<p>Version: 1.6alpha<br>
+<p>Version: 1.6<br>
 $Id$</p>
 </center>
 <hr>
@@ -51,4 +53,4 @@
 Reserved.</p>
 
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/docs/manual/develop.html b/docs/manual/develop.html
index a19e1c1..91b8232 100644
--- a/docs/manual/develop.html
+++ b/docs/manual/develop.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Writing Your Own Task</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -18,7 +19,7 @@
     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.  That is, to support an attribute named
+    lowercase<a href="#footnote-1"><sup>*</sup></a>.  That is, to support an attribute named
     <code>file</code> you create a method <code>setFile</code>.
     Depending on the type of the argument, Ant will perform some
     conversions for you, see <a href="#set-magic">below</a>.</li>
@@ -52,6 +53,11 @@
 itself.</li>
 </ol>
 
+<hr>
+<p><a name="footnote-1">*</a> Actually the case of the letters after
+the first one doesn't really matter to Ant, using all lower case is a
+good convention, though.</p>
+
 <h3>The Life-cycle of a Task</h3>
 <ol>
   <li>The task gets instantiated using a no-argument constructor, at parser
@@ -188,7 +194,9 @@
 For the options 2 and 3, Ant has to create an instance of
 <code>NestedInner</code> before it can pass it to the task, this
 means, <code>NestedInner</code> must have a <code>public</code> no-arg
-constructor.  This is the only difference between options 1 and 2.</p>
+  constructor or a <code>public</code> one-arg constructor
+  taking a Project class as a parameter.
+This is the only difference between options 1 and 2.</p>
 
 <p>The difference between 2 and 3 is what Ant has done to the object
 before it passes it to the method.  <code>addInner</code> will receive
@@ -201,6 +209,106 @@
 the methods will be called, but we don't know which, this depends on
 the implementation of your Java virtual machine.</p>
 
+  <h3><a name="nestedtype">Nested Types</a></h3>
+If your task needs to nest an arbitary type that has been defined
+  using &lt;taskdef&gt; you have two options.
+  <ol>
+    <li><code>public void add(Type type)</code></li>
+    <li><code>public void addConfigured(Type type)</code></li>
+  </ol>
+  The difference between 1 and 2 is the same as between 2 and 3 in the
+  previous section.
+  <p>
+    For example suppose one wanted to handle objects object of type
+    org.apache.tools.ant.taskdefs.condition.Condition, one may
+    have a class:
+  </p>
+  <blockquote>
+  <pre>
+public class MyTask extends Task {
+    private List conditions = new ArrayList();
+    public void add(Condition c) {
+        conditions.add(c);
+    }
+    public void execute() {
+     // iterator over the conditions
+    }
+}
+  </pre>
+  </blockquote>
+  <p>
+    One may define and use this class like this:
+  </p>
+  <blockquote>
+    <pre>
+&lt;taskdef name="mytask" classname="MyTask" classpath="classes"/&gt;
+&lt;typedef name="condition.equals"
+         classname="org.apache.tools.ant.taskdefs.conditions.Equals"/&gt;
+&lt;mytask&gt;
+    &lt;condition.equals arg1="${debug}" arg2="true"/&gt;
+&lt;/mytask&gt;
+    </pre>
+  </blockquote>
+  <p>
+    A more complicated example follows:
+  </p>
+  <blockquote>
+    <pre>
+public class Sample {
+    public static class MyFileSelector implements FileSelector {
+         public void setAttrA(int a) {}
+         public void setAttrB(int b) {}
+         public void add(Path path) {}
+         public boolean isSelected(File basedir, String filename, File file) {
+             return true;
+         }
+     }
+
+    interface MyInterface {
+        void setVerbose(boolean val);
+    }        
+
+    public static class BuildPath extends Path {
+        public BuildPath(Project project) {
+            super(project);
+        }
+        
+        public void add(MyInterface inter) {}
+        public void setUrl(String url) {}
+    }
+
+    public static class XInterface implements MyInterface {
+        public void setVerbose(boolean x) {}
+        public void setCount(int c) {}
+    }
+}
+    </pre>
+  </blockquote>
+  <p>
+    This class defines a number of static classes that implement/extend
+    Path, MyFileSelector and MyInterface. These may be defined and used
+    as follows:
+  </p>
+  <pre>
+    <blockquote>
+&lt;typedef name="myfileselector" classname="Sample$MyFileSelector"
+         classpath="classes" loaderref="classes"/&gt;
+&lt;typedef name="buildpath" classname="Sample$BuildPath"
+         classpath="classes" loaderref="classes"/&gt;
+&lt;typedef name="xinterface" classname="Sample$XInterface"
+         classpath="classes" loaderref="classes"/&gt;
+
+&lt;copy todir="copy-classes"&gt;
+   &lt;fileset dir="classes"&gt;
+      &lt;myfileselector attra="10" attrB="-10"&gt;
+         &lt;buildpath path="." url="abc"&gt;
+            &lt;xinterface count="4"/&gt;
+         &lt;/buildpath&gt;
+      &lt;/myfileselector&gt;
+   &lt;/fileset&gt;
+&lt;/copy&gt;
+    </blockquote>
+  </pre>
 <h3><a name="taskcontainer">TaskContainer</a></h3>
 
 <p>The <code>TaskContainer</code> consists of a single method,
diff --git a/docs/manual/developlist.html b/docs/manual/developlist.html
index cb6007e..c477606 100644
--- a/docs/manual/developlist.html
+++ b/docs/manual/developlist.html
@@ -4,6 +4,7 @@
 <meta http-equiv="Content-Language" content="en-us">
 <title>Apache Ant User Manual</title>
 <base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/dirtasks.html b/docs/manual/dirtasks.html
index b57af5d..4934f4a 100644
--- a/docs/manual/dirtasks.html
+++ b/docs/manual/dirtasks.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Directory-based Tasks</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/feedback.html b/docs/manual/feedback.html
index 592fb62..fb0211e 100644
--- a/docs/manual/feedback.html
+++ b/docs/manual/feedback.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Apache Ant User Manual - Feedback</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/ide.html b/docs/manual/ide.html
index 67c5a37..d7589c7 100644
--- a/docs/manual/ide.html
+++ b/docs/manual/ide.html
@@ -4,6 +4,7 @@
 <meta http-equiv="Content-Language" content="en-us">
 <title>IDE Integration</title>
 <base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -32,11 +33,11 @@
     </a>
   </li>
   <li>
-    <a href="http://jde.sunsite.dk/">
-      Emacs JDE
+    <a href="http://jdee.sunsite.dk/">
+      JDEE (Java Development Environment for Emacs)
     </a> has built-in text ANT integration: selection of target through text
     field, execution, hyperlink to compilation errors. Installation: built-in
-    JDE  2.2.8 or later. Configuration: through customize menu
+    JDEE 2.2.8 or later. Configuration: through customize menu
     "Jde Build Function"
   </li>
   <li>
diff --git a/docs/manual/index.html b/docs/manual/index.html
index 97c50bc..45023d0 100644
--- a/docs/manual/index.html
+++ b/docs/manual/index.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Apache Ant User Manual</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <frameset cols="26%,74%">
diff --git a/docs/manual/inputhandler.html b/docs/manual/inputhandler.html
index b73eb42..c23fcca 100644
--- a/docs/manual/inputhandler.html
+++ b/docs/manual/inputhandler.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>InputHandler</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/install.html b/docs/manual/install.html
index 163f3eb..2333f5d 100644
--- a/docs/manual/install.html
+++ b/docs/manual/install.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Installing Ant</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -434,14 +435,10 @@
         target="_top">http://www.clarkware.com/software/JDepend.html</a></td>
   </tr>
   <tr>
-    <td>resolver.jar <b>after the 1.0 release</b></td>
+    <td>resolver.jar <b>1.1beta or later</b></td>
     <td>xmlcatalog datatype <em>only if support for external catalog files is desired</em></td>
-    <td><a href="http://xml.apache.org/dist/commons/"
-    target="_top">http://xml.apache.org/dist/commons/</a> for released
-    versions, <a
-    href="http://gump.covalent.net/jars/latest/xml-commons/"
-    target="_top">http://gump.covalent.net/jars/latest/xml-commons/</a>
-    for a nightly snapshot.</td>
+    <td><a href="http://xml.apache.org/commons/"
+    target="_top">http://xml.apache.org/commons/</a>.</td>
   </tr>
   <tr>
     <td>jsch.jar</td>
diff --git a/docs/manual/installlist.html b/docs/manual/installlist.html
index ae6e2ca..1f4a585 100644
--- a/docs/manual/installlist.html
+++ b/docs/manual/installlist.html
@@ -4,6 +4,7 @@
 <meta http-equiv="Content-Language" content="en-us">
 <title>Apache Ant User Manual</title>
 <base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/intro.html b/docs/manual/intro.html
index b010c46..8c2b0c6 100644
--- a/docs/manual/intro.html
+++ b/docs/manual/intro.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Apache Ant User Manual - Introduction</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/listeners.html b/docs/manual/listeners.html
index a4f38cb..7a412f5 100644
--- a/docs/manual/listeners.html
+++ b/docs/manual/listeners.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Listeners &amp; Loggers</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/optionaltasklist.html b/docs/manual/optionaltasklist.html
index 95427a2..4c7d452 100644
--- a/docs/manual/optionaltasklist.html
+++ b/docs/manual/optionaltasklist.html
@@ -4,6 +4,7 @@
 <meta http-equiv="Content-Language" content="en-us">
 <title>Apache Ant User Manual</title>
 <base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -60,6 +61,7 @@
 <a href="OptionalTasks/setproxy.html">Setproxy</a><br>
 <a href="OptionalTasks/scp.html">Scp</a><br>
 <a href="OptionalTasks/script.html">Script</a><br>
+<a href="OptionalTasks/scriptdef.html">Scriptdef</a><br>
 <a href="OptionalTasks/sound.html">Sound</a><br>
 <a href="OptionalTasks/sos.html">SourceOffSite</a><br>
 <a href="OptionalTasks/splash.html">Splash</a><br>
diff --git a/docs/manual/platform.html b/docs/manual/platform.html
index 174dc35..d50f019 100644
--- a/docs/manual/platform.html
+++ b/docs/manual/platform.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Platform Issues</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <h1>Platform Issues</h1>
diff --git a/docs/manual/running.html b/docs/manual/running.html
index 4a0a770..acdabda 100644
--- a/docs/manual/running.html
+++ b/docs/manual/running.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Running Apache Ant</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -78,19 +79,21 @@
 <h3><a name="options">Command-line Options Summary</a></h3>
 <pre>ant [options] [target [target2 [target3] ...]]
 Options:
-  -help                  print this message
-  -projecthelp           print project help information
+  -help, -h              print this message
+  -projecthelp, -p       print project help information
   -version               print the version information and exit
   -diagnostics           print information that might be helpful to
                          diagnose or report problems.
   -quiet, -q             be extra quiet
   -verbose, -v           be extra verbose
-  -debug                 print debugging information
-  -emacs                 produce logging information without adornments
+  -debug, -d             print debugging information
+  -emacs, -e             produce logging information without adornments
+  -lib &lt;path&gt;            specifies a path to search for jars and classes
   -logfile &lt;file&gt;        use given file for log
     -l     &lt;file&gt;                ''
   -logger &lt;classname&gt;    the class which is to perform logging
   -listener &lt;classname&gt;  add an instance of class as a project listener
+  -noinput               do not allow interactive input
   -buildfile &lt;file&gt;      use given buildfile
     -file    &lt;file&gt;              ''
     -f       &lt;file&gt;              ''
@@ -100,8 +103,8 @@
   -propertyfile &lt;name&gt;   load all properties from file with -D
                          properties taking precedence
   -inputhandler &lt;class&gt;  the class which will handle input requests
-  -find &lt;file&gt;           search for buildfile towards the root of the
-                         filesystem and use it
+  -find &lt;file&gt;           (s)earch for buildfile towards the root of
+    -s  &lt;file&gt;           the filesystem and use it
 </pre>
 <p>For more information about <code>-logger</code> and
 <code>-listener</code> see
@@ -109,6 +112,45 @@
 <p>For more information about <code>-inputhandler</code> see
 <a href="inputhandler.html">InputHandler</a>.
 
+<h3><a name="libs">Library Directories</a></h3>
+<p>
+Prior to Ant 1.6, all jars in the ANT_HOME/lib would be added to the CLASSPATH
+used to run Ant. This was done in the scripts that started Ant. From Ant 1.6,
+two directories are scanned by default and more can be added as required. The
+default directories scanned are ANT_HOME/lib and a user specific directory,
+${user.home}/.ant/lib. This arrangement allows the Ant installation to be
+shared by many users while still allowing each user to deploy additional jars.
+Such additional jars could be support jars for Ant's optional tasks or jars
+containing third-party tasks to be used in the build. It also allows the main Ant
+installation to be locked down which will please system adminstrators.
+</p>
+
+<p>
+Additional directories to be searched may be added by using the -lib option.
+The -lib option specifies a search path. Any jars or classes in the directories
+of the path will be added to Ant's classloader. The order in which jars are
+added to the classpath is as follows
+</p>
+
+<ul>
+  <li>-lib jars in the order specified by the -lib elements on the command line</li>
+  <li>jars from ${user.home}/.ant/lib</li>
+  <li>jars from ANT_HOME/lib</li>
+</ul>
+
+<p>
+Note that the CLASSPATH environment variable is passed to Ant using a -lib
+option. Ant itself is started with a very minimalistic classpath.
+</p>
+
+<p>
+The location of ${user.home}/.ant/lib is somewhat dependent on the JVM. On Unix
+systems ${user.home} maps to the user's home directory whilst on recent
+versions of Windows it will be somewhere such as
+C:\Documents&nbsp;and&nbsp;Settings\username\.ant\lib. You should consult your
+JVM documentation for more details.
+</p>
+
 <h3>Examples</h3>
 <blockquote>
   <pre>ant</pre>
@@ -132,6 +174,13 @@
 the target called <code>dist</code>, setting the <code>build</code> property
 to the value <code>build/classes</code>.</p>
 
+<blockquote>
+  <pre>ant -lib /home/ant/extras</pre>
+</blockquote>
+<p>runs Ant picking up additional task and support jars from the
+/home/ant/extras location
+</p>
+
 <h3><a name="files">Files</a></h3>
 
 <p>The Ant wrapper script for Unix will source (read and evaluate) the
@@ -207,19 +256,35 @@
 
 <h2><a name="viajava">Running Ant via Java</a></h2>
 <p>If you have installed Ant in the do-it-yourself way, Ant can be started
-with:</p>
+with two entry points:</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>
+<blockquote>
+  <pre>java -Dant.home=c:\ant org.apache.tools.ant.launch.Launcher [options] [target]</pre>
+</blockquote>
+
+<p>
+The first method runs Ant's traditional entry point. The second method uses
+the Ant Launcher introduced in Ant 1.6. The former method does not support
+the -lib option and all required classes are loaded from the CLASSPATH. You must
+ensure that all required jars are available. At a minimum the CLASSPATH should
+include:
+</p>
+
 <ul>
-<li><code>ant.jar</code></li>
+<li><code>ant.jar</code> and <code>ant-launcher.jar</code></li>
 <li>jars/classes for your XML parser</li>
 <li>the JDK's required jar/zip files</li>
 </ul>
+
+<p>
+The latter method supports the -lib option and will load jars from the
+specified ANT_HOME. You should start the latter with the most minimal
+classpath possible, generally just the ant-launcher.jar.
+</p>
+
 <br>
 <hr>
 <p align="center">Copyright &copy; 2000-2003 Apache Software Foundation. All rights
diff --git a/docs/manual/runninglist.html b/docs/manual/runninglist.html
index 587aad9..e88ca22 100644
--- a/docs/manual/runninglist.html
+++ b/docs/manual/runninglist.html
@@ -4,6 +4,7 @@
 <meta http-equiv="Content-Language" content="en-us">
 <title>Apache Ant User Manual</title>
 <base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -13,6 +14,7 @@
 <h3>Running Ant</h3>
 <a href="running.html#commandline">Command Line</a><br>
 &nbsp;&nbsp;<a href="running.html#options">Options</a><br>
+&nbsp;&nbsp;<a href="running.html#libs">Library Directories</a><br>
 &nbsp;&nbsp;<a href="running.html#files">Files</a><br>
 &nbsp;&nbsp;<a href="running.html#envvars">Environment Variables</a><br>
 &nbsp;&nbsp;<a href="running.html#cygwin">Cygwin Users</a><br>
diff --git a/docs/manual/stylesheets/antmanual.css b/docs/manual/stylesheets/antmanual.css
new file mode 100644
index 0000000..365ad50
--- /dev/null
+++ b/docs/manual/stylesheets/antmanual.css
@@ -0,0 +1,56 @@
+/*
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2003 The Apache Software Foundation.  All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution, if
+ *    any, must include the following acknowlegement:
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowlegement may appear in the software itself,
+ *    if and wherever such third-party acknowlegements 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 names without prior written
+ *    permission of the Apache Group.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+body {
+    background-image:url(/images/beta.png)
+}
diff --git a/docs/manual/sysclasspath.html b/docs/manual/sysclasspath.html
index e348f58..c64b58e 100644
--- a/docs/manual/sysclasspath.html
+++ b/docs/manual/sysclasspath.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>build.sysclasspath</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/tasksoverview.html b/docs/manual/tasksoverview.html
index 703ca0c..8b24403 100644
--- a/docs/manual/tasksoverview.html
+++ b/docs/manual/tasksoverview.html
@@ -3,6 +3,7 @@
   <meta http-equiv="Content-Language" content="en-us">
   <title>Overview of Ant Tasks</title>
   <base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
@@ -426,7 +427,7 @@
 
   <tr valign="top">
     <td nowrap><a href="CoreTasks/subant.html">Subant</a></td>
-    <td><p><i>EXPERIMENTAL:</i> This task is experimental and may be under continual change till Ant1.6 ships; it may even be omitted from the product. <p> Calls a given target for all defined sub-builds. This is an extension of ant for bulk project execution.</p></td>
+    <td><p> Calls a given target for all defined sub-builds. This is an extension of ant for bulk project execution.</p></td>
   </tr>
 
   <tr valign="top">
@@ -589,6 +590,11 @@
   </tr>
 
   <tr valign="top">
+    <td nowrap><a href="CoreTasks/sync.html">Sync</a></td>
+    <td><p>Synchronize two directory trees.</p></td>
+  </tr>
+
+  <tr valign="top">
     <td nowrap><a href="CoreTasks/tempfile.html">Tempfile</a></td>
     <td><p>Generates a name for a new temporary file and sets the specified
      property to that name.</p></td>
@@ -725,6 +731,12 @@
   </tr>
 
   <tr valign="top">
+    <td nowrap><a href="CoreTasks/defaultexcludes.html">Defaultexcludes</a></td>
+    <td><p>Modify the list of default exclude patterns from within
+    your build file.</p></td>
+  </tr>
+
+  <tr valign="top">
     <td nowrap><a href="CoreTasks/echo.html">Echo</a></td>
     <td><p>Echoes text to <code>System.out</code> or to a file.</p></td>
   </tr>
@@ -859,6 +871,12 @@
   </tr>
 
   <tr valign="top">
+    <td nowrap><a href="CoreTasks/import.html">Import</a></td>
+    <td><p>Import another build file and potentially override targets
+    in it with targets of your own.</p></td>
+  </tr>
+
+  <tr valign="top">
     <td nowrap><a href="OptionalTasks/javacc.html">JavaCC</a></td>
     <td><p>Invokes the
      <a HREF="http://javacc.dev.java.net/" target="_top">
@@ -891,6 +909,11 @@
   </tr>
 
   <tr valign="top">
+    <td nowrap><a href="CoreTasks/macrodef.html">Macrodef</a></td>
+    <td><p>Define a new task as a macro built-up upon other tasks.</p></td>
+  </tr>
+
+  <tr valign="top">
     <td nowrap><a href="OptionalTasks/mparse.html">MParse</a></td>
     <td><p>Invokes the Metamata <a HREF="http://www.metamata.com/parse.html">
      MParse</a> compiler-compiler on a grammar file.</p></td>
@@ -905,6 +928,12 @@
   </tr>
 
   <tr valign="top">
+    <td nowrap><a href="CoreTasks/presetdef.html">Presetdef</a></td>
+    <td><p>Define a new task by instrumenting an existing task with
+    default values for attributes or child elements.</p>
+  </tr>
+
+  <tr valign="top">
     <td nowrap><a href="OptionalTasks/translate.html">Translate</a></td>
     <td><p>Identifies keys in files, delimited by special tokens, and
      translates them with values read from resource bundles.</p></td>
@@ -914,6 +943,7 @@
     <td nowrap><a href="CoreTasks/style.html">Xslt/Style</a></td>
     <td><p>Processes a set of documents via XSLT.</p></td>
   </tr>
+
 </table>
 
 <p></p>
@@ -1013,6 +1043,11 @@
   </tr>
 
   <tr valign="top">
+    <td nowrap><a href="CoreTasks/whichresource.html">Whichresource</a></td>
+    <td><p>Find a class or resource.</p></td>
+  </tr>
+
+  <tr valign="top">
     <td nowrap><a href="CoreTasks/xmlproperty.html">XmlProperty</a></td>
     <td><p>Loads property values from a valid XML file.</p></td>
   </tr>
@@ -1041,17 +1076,32 @@
   </tr>
 
   <tr valign="top">
-    <td nowrap><a href="OptionalTasks/telnet.html">Telnet</a></td>
-    <td><p>Task to automate a remote <i>telnet</i> session. This task uses
-     nested <code>&lt;read&gt;</code> and <code>&lt;write&gt;</code> tags
-     to indicate strings to wait for and specify text to send.</p></td>
+    <td nowrap><a href="OptionalTasks/rexec.html">Rexec</a></td>
+    <td><p>Task to automate a remote rexec session.</p></td>
   </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/scp.html">Scp</a></td>
+    <td><p>Copy files to or from a remote server using SSH.</p></td>
+  </tr>
+
   <tr valign="top">
     <td nowrap><a href="OptionalTasks/setproxy.html">setproxy</a></td>
     <td><p>Sets Java's web proxy properties, so that tasks and code run
  in the same JVM can have through-the-firewall access to remote web sites.</p></td>
   </tr>
 
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/sshexec.html">Sshexec</a></td>
+    <td><p>Execute a command on a remote server using SSH.</p></td>
+  </tr>
+
+  <tr valign="top">
+    <td nowrap><a href="OptionalTasks/telnet.html">Telnet</a></td>
+    <td><p>Task to automate a remote <i>telnet</i> session. This task uses
+     nested <code>&lt;read&gt;</code> and <code>&lt;write&gt;</code> tags
+     to indicate strings to wait for and specify text to send.</p></td>
+  </tr>
 
 </table>
 
diff --git a/docs/manual/toc.html b/docs/manual/toc.html
index 0a05a46..b301c4b 100644
--- a/docs/manual/toc.html
+++ b/docs/manual/toc.html
@@ -4,6 +4,7 @@
 <meta http-equiv="Content-Language" content="en-us">
 <title>Apache Ant User Manual</title>
 <base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/tutorial-writing-tasks.html b/docs/manual/tutorial-writing-tasks.html
index 9484109..57038df 100644
--- a/docs/manual/tutorial-writing-tasks.html
+++ b/docs/manual/tutorial-writing-tasks.html
@@ -8,6 +8,7 @@
   .output { color: #FFFFFF; background: #837A67; }
   -->
   </style>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 <body>
 <h1>Tutorial: Writing Tasks</h1>
@@ -756,4 +757,4 @@
 Reserved.</p>
 
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/docs/manual/using.html b/docs/manual/using.html
index e49be65..8259768 100644
--- a/docs/manual/using.html
+++ b/docs/manual/using.html
@@ -3,6 +3,7 @@
 <head>
 <meta http-equiv="Content-Language" content="en-us">
 <title>Writing a Simple Buildfile</title>
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/docs/manual/usinglist.html b/docs/manual/usinglist.html
index f37d49d..edea772 100644
--- a/docs/manual/usinglist.html
+++ b/docs/manual/usinglist.html
@@ -4,6 +4,7 @@
 <meta http-equiv="Content-Language" content="en-us">
 <title>Apache Ant User Manual</title>
 <base target="mainFrame">
+<link rel="stylesheet" type="text/css" href="stylesheets/antmanual.css">
 </head>
 
 <body>
diff --git a/src/etc/testcases/filters/concat.xml b/src/etc/testcases/filters/concat.xml
index 4fe1951..2c61182 100644
--- a/src/etc/testcases/filters/concat.xml
+++ b/src/etc/testcases/filters/concat.xml
@@ -19,7 +19,7 @@
 
   <target name="testFilterReaderNoArgs" depends="init">
     <copy file="input/concatfilter.test"
-          tofile="result/concat.filterReaderNoArgs.test">
+          tofile="result/concat.FilterReaderNoArgs.test">
       <filterchain>
         <filterreader classname="org.apache.tools.ant.filters.ConcatFilter"/>
       </filterchain>
@@ -28,7 +28,7 @@
 
   <target name="testFilterReaderPrepend" depends="init">
     <copy file="input/concatfilter.test"
-          tofile="result/concat.filterReaderPrepend.test">
+          tofile="result/concat.FilterReaderPrepend.test">
       <filterchain>
         <filterreader classname="org.apache.tools.ant.filters.ConcatFilter">
           <param name="prepend" value="result/prepend.txt"/>
@@ -39,7 +39,7 @@
 
   <target name="testFilterReaderAppend" depends="init">
     <copy file="input/concatfilter.test"
-          tofile="result/concat.filterReaderAppend.test">
+          tofile="result/concat.FilterReaderAppend.test">
       <filterchain>
         <filterreader classname="org.apache.tools.ant.filters.ConcatFilter">
           <param name="append" value="result/append.txt"/>
@@ -50,7 +50,7 @@
 
   <target name="testFilterReaderPrependAppend" depends="init">
     <copy file="input/concatfilter.test"
-          tofile="result/concat.filterReaderPrependAppend.test">
+          tofile="result/concat.FilterReaderPrependAppend.test">
       <filterchain>
         <filterreader classname="org.apache.tools.ant.filters.ConcatFilter">
           <param name="prepend" value="result/prepend.txt"/>
@@ -63,7 +63,7 @@
   <target name="testConcatFilter" depends="init">
     <typedef name="concatfilter" classname="org.apache.tools.ant.filters.ConcatFilter"/>
     <copy file="input/concatfilter.test"
-          tofile="result/concat.concatfilter.test">
+          tofile="result/concat.ConcatFilter.test">
       <filterchain>
         <concatfilter/>
       </filterchain>
@@ -73,7 +73,7 @@
   <target name="testConcatFilterPrepend" depends="init">
     <typedef name="concatfilter" classname="org.apache.tools.ant.filters.ConcatFilter"/>
     <copy file="input/concatfilter.test"
-          tofile="result/concat.concatfilterPrepend.test">
+          tofile="result/concat.ConcatFilterPrepend.test">
       <filterchain>
         <concatfilter prepend="result/prepend.txt"/>
       </filterchain>
@@ -83,7 +83,7 @@
   <target name="testConcatFilterAppend" depends="init">
     <typedef name="concatfilter" classname="org.apache.tools.ant.filters.ConcatFilter"/>
     <copy file="input/concatfilter.test"
-          tofile="result/concat.concatfilterAppend.test">
+          tofile="result/concat.ConcatFilterAppend.test">
       <filterchain>
         <concatfilter append="result/append.txt"/>
       </filterchain>
@@ -93,7 +93,7 @@
   <target name="testConcatFilterPrependAppend" depends="init">
     <typedef name="concatfilter" classname="org.apache.tools.ant.filters.ConcatFilter"/>
     <copy file="input/concatfilter.test"
-          tofile="result/concat.concatfilterPrependAppend.test">
+          tofile="result/concat.ConcatFilterPrependAppend.test">
       <filterchain>
         <concatfilter prepend="result/prepend.txt" append="result/append.txt"/>
       </filterchain>
diff --git a/src/etc/testcases/taskdefs/macrodef.xml b/src/etc/testcases/taskdefs/macrodef.xml
index 8a67d47..4669a6c 100644
--- a/src/etc/testcases/taskdefs/macrodef.xml
+++ b/src/etc/testcases/taskdefs/macrodef.xml
@@ -45,14 +45,4 @@
     </nested>
   </target>
 
-  <target name="xpathstyle">
-    <macrodef name="testing" attributestyle="xpath">
-      <attribute name="abc"/>
-      <sequential>
-        <echo>attribute is @abc@abc</echo>
-      </sequential>
-    </macrodef>
-
-    <testing abc="this is a test"/>
-  </target>
 </project>
diff --git a/src/etc/testcases/taskdefs/optional/dotnet.xml b/src/etc/testcases/taskdefs/optional/dotnet.xml
index 2eed369..c8f4c17 100644
--- a/src/etc/testcases/taskdefs/optional/dotnet.xml
+++ b/src/etc/testcases/taskdefs/optional/dotnet.xml
@@ -90,10 +90,15 @@
    <echo> dotnetapps.found=${dotnetapps.found}</echo>
 
    <condition property="mono.executable" value="mono">
-      <or>
-        <available file="mono"     filepath="${env.PATH}" />
-        <available file="mono.exe" filepath="${env.PATH}" />
-      </or>
+      <and>
+        <not>
+          <os family="mac"/>
+        </not>
+        <or>
+          <available file="mono"     filepath="${env.PATH}" />
+          <available file="mono.exe" filepath="${env.PATH}" />
+        </or>
+      </and>
    </condition>
    <property name="mono.executable" value="mint"/>
   </target>
@@ -142,7 +147,7 @@
       destFile="${testCSC.exe}"
       targetType="exe"
       executable="mcs"
-      includedefaultreferences="false"
+      includedefaultreferences="true"
       >
     </csc>
     <available property="app.created" file="${testCSC.exe}"/>
@@ -179,7 +184,7 @@
       targetType="exe"
       srcDir="."
       executable="mcs"
-      includedefaultreferences="false"
+      includedefaultreferences="true"
       >
     </csc>
     <available property="app.created" file="${testCSC.exe}"/>
@@ -213,7 +218,7 @@
       destFile="${testCSC.dll}"
       targetType="library"
       executable="mcs"
-      includedefaultreferences="false"
+      includedefaultreferences="true"
       >
       <src dir="${src.dir}" includes="example2.cs"/>
     </csc>
@@ -251,7 +256,7 @@
       destFile="${testCscReferences.exe}"
       targetType="exe"
       executable="mcs"
-      includedefaultreferences="false"
+      includedefaultreferences="true"
       >
       <src file="${src.dir}/example.cs"/>
       <reference file="${testCSC.dll}" />
diff --git a/src/etc/testcases/taskdefs/optional/net/ftp.xml b/src/etc/testcases/taskdefs/optional/net/ftp.xml
index e9c7e59..d647d31 100644
--- a/src/etc/testcases/taskdefs/optional/net/ftp.xml
+++ b/src/etc/testcases/taskdefs/optional/net/ftp.xml
@@ -4,9 +4,9 @@
     <property name="ftp.host" value="localhost"/>
     <property name="ftp.port" value="21" />
     <property name="ftp.password" value="sunshine" />
+    <property name="ftp.filesep" value="/"/>
     <property name="tmp.dir" location="tmp"/>
     <property name="tmp.get.dir" location="tmp.get"/>
-    <property name="ftp.filesep" value="/"/>
     <fileset dir="${tmp.get.dir}" id="fileset-destination-with-selector">
         <include name="alpha/**"/>
         <filename name="**/alpha.xml" />
@@ -34,6 +34,7 @@
             server="${ftp.host}"
             userid="${ftp.user}"
             password="${ftp.password}"
+            separator="${ftp.filesep}"
             remotedir="${tmp.dir}">
             <fileset refid="fileset-destination-with-selector"/>
         </ftp>
@@ -57,6 +58,7 @@
             server="${ftp.host}"
             userid="${ftp.user}"
             password="${ftp.password}"
+            separator="${ftp.filesep}"
             remotedir="${tmp.dir}"
             >
             <fileset refid="fileset-destination-followsymlinks"/>
@@ -67,6 +69,7 @@
             server="${ftp.host}"
             userid="${ftp.user}"
             password="${ftp.password}"
+            separator="${ftp.filesep}"
             remotedir="${tmp.dir}"
             >
             <fileset refid="fileset-destination-nofollowsymlinks"/>
@@ -77,4 +80,29 @@
         <symlink link="${tmp.dir}/alpha/beta/gamma/gamma.xml"
             resource="${tmp.dir}/alpha/beta/beta.xml"/>
     </target>
+    <target name="ftp-delete">
+        <!-- this target can produce an error if the rmdir does not work -->
+        <!-- there can be problems with the rmdir action if the directories are not removed in a proper order -->
+        <!-- which means beginning by the leaves of the tree, going back to the trunk -->
+        <ftp action="del"
+            server="${ftp.host}"
+            userid="${ftp.user}"
+            password="${ftp.password}"
+            separator="${ftp.filesep}"
+            remotedir="${tmp.dir}">
+            <fileset dir="${tmp.get.dir}">
+                <include name="**"/>
+            </fileset>
+        </ftp>
+        <ftp action="rmdir"
+            server="${ftp.host}"
+            userid="${ftp.user}"
+            password="${ftp.password}"
+            separator="${ftp.filesep}"
+            remotedir="${tmp.dir}">
+            <fileset dir="${tmp.get.dir}">
+                <include name="**"/>
+            </fileset>
+        </ftp>
+    </target>
 </project>
\ No newline at end of file
diff --git a/src/etc/testcases/taskdefs/optional/xmlvalidate.xml b/src/etc/testcases/taskdefs/optional/xmlvalidate.xml
index 76c26fc..7dcd5af 100644
--- a/src/etc/testcases/taskdefs/optional/xmlvalidate.xml
+++ b/src/etc/testcases/taskdefs/optional/xmlvalidate.xml
@@ -25,6 +25,16 @@
     </xmlvalidate>
   </target>
 
+  <target name="xmlcatalogViaRefid">
+    <xmlcatalog classpath="xml" id="cat">
+      <dtd publicID="-//stevo//DTD doc 1.0//EN" location="doc.dtd"/>
+    </xmlcatalog>
+    <xmlvalidate warn="false">
+      <xmlcatalog refid="cat"/>
+      <fileset dir="xml" includes="**/about.xml"/>
+    </xmlvalidate>
+  </target>
+
   <target name="xmlcatalognested">
     <xmlvalidate warn="false">
       <fileset dir="xml" includes="**/about.xml"/>
diff --git a/src/etc/testcases/taskdefs/replace.xml b/src/etc/testcases/taskdefs/replace.xml
index 079d34a..44eb0c1 100644
--- a/src/etc/testcases/taskdefs/replace.xml
+++ b/src/etc/testcases/taskdefs/replace.xml
@@ -2,6 +2,8 @@
 
 <project name="xxx-test" basedir="." default="test1">
 
+  <property name="tmp.dir" location="replace/tmp"/>
+
   <target name="test1">
     <replace/>
   </target>
@@ -41,13 +43,22 @@
     </replace>
   </target>
 
-  <target name="test9">
-    <copy file="replace/source.txt" tofile="replace/output.txt"/>
-    <loadfile srcFile="replace/value.txt" property="content"/>
-    <replace file="replace/output.txt" token="@@@Replace this@@@" value="${content}"/>
+  <target name="test9-setup">
+    <!-- this fixing of line endings is necessary because the replace task is transforming the line endings -->
+    <!-- of the replacement tokens and values to the platform default -->
+    <!-- in certain cases (checkout done with cvs of cygwin, the line endings of the various files do not match-->
+    <!-- the system property line.separator -->
+    <copy file="replace/source.txt" tofile="${tmp.dir}/output.txt"/>
+    <copy file="replace/value.txt" tofile="${tmp.dir}/value.txt" />
+    <copy file="replace/result.txt" tofile="${tmp.dir}/result.txt" />
+    <fixcrlf srcdir="${tmp.dir}" includes="*.txt"/>
+  </target>
+  <target name="test9" depends="test9-setup">
+    <loadfile srcFile="${tmp.dir}/value.txt" property="content"/>
+    <replace file="${tmp.dir}/output.txt" token="@@@Replace this@@@" value="${content}"/>
   </target>
 
   <target name="cleanup">
-      <delete file="replace/output.txt" quiet="true"/>
+      <delete dir="${tmp.dir}" quiet="true"/>
   </target>
 </project>
diff --git a/src/etc/testcases/taskdefs/replace/result.txt b/src/etc/testcases/taskdefs/replace/result.txt
index 15b2d69..a74e06e 100644
--- a/src/etc/testcases/taskdefs/replace/result.txt
+++ b/src/etc/testcases/taskdefs/replace/result.txt
@@ -4,3 +4,4 @@
 This is line four
 This is line five
 This is line six
+
diff --git a/src/etc/testcases/types/addtype.xml b/src/etc/testcases/types/addtype.xml
index accc59d..9f9eff8 100644
--- a/src/etc/testcases/types/addtype.xml
+++ b/src/etc/testcases/types/addtype.xml
@@ -70,7 +70,7 @@
     <typedef loaderref="nested.loader" classpathref="nested.classes"
              name = "myvalue" 
              classname="${nested.package}AddTypeTest$MyValue"/>
- </target>
+  </target>
 
   <target name="nested.a" depends="init">
     <nested.container>
@@ -83,7 +83,7 @@
       <nested.b/>
     </nested.container>
   </target>
-
+  
   <target name="nested.c" depends="init">
     <nested.container>
       <nested.c/>
@@ -102,18 +102,21 @@
     <nested.condition.type/>
     <echo>after</echo>
   </target>
+
   <target name="condition.task" depends="init">
     <echo>before</echo>
     <nested.condition.task/>
     <echo>after</echo>
   </target>
+
   <target name="condition.condition.type" depends="init">
     <condition property="condition.condition.type">
       <nested.condition.type/>
     </condition>
   </target>
+
   <target name="condition.condition.task" depends="init">
-    <condition property="condition.condition.task">>
+    <condition property="condition.condition.task">
       <nested.condition.task/>
     </condition>
   </target>
@@ -124,4 +127,11 @@
     </myaddconfigured>
   </target>
 
+  <target name="namespacetest" xmlns:prefix="uri">
+    <typedef name="eq" uri="uri"
+             classname="org.apache.tools.ant.taskdefs.condition.Equals"/>
+    <condition property="p">
+      <prefix:eq arg1="a" arg2="b"/>
+    </condition>
+  </target>
 </project>
diff --git a/src/etc/testcases/types/assertions.xml b/src/etc/testcases/types/assertions.xml
new file mode 100644
index 0000000..d9d8a78
--- /dev/null
+++ b/src/etc/testcases/types/assertions.xml
@@ -0,0 +1,153 @@
+<?xml version="1.0"?>
+
+<project name="assertions" basedir="." default="init">
+
+  <property name="build.dir" location="assertions/build"/>
+  <property name="src.dir" location="assertions"/>
+  <property name="classname" value="AssertionTest"/>
+  
+  <path id="assert.classpath">
+    <pathelement location="${build.dir}"/>
+  </path>
+  
+  <target name="setup" >
+    <mkdir dir="${build.dir}"/>
+    <javac srcdir="${src.dir}"
+      includes="*.java"
+      source="1.4"
+      debug="true"
+      destdir="${build.dir}"
+      />
+  </target>
+  
+  <target name="teardown" >
+    <delete dir="${build.dir}"/>
+  </target>
+
+  <!-- if per-class assertions work, this run asserts -->
+  <target name="test-classname" depends="setup">
+    <java fork="true" failonerror="true"
+      classname="${classname}"
+      classpathref="assert.classpath">
+      <assertions enablesystemassertions="true">
+        <enable class="${classname}" />
+      </assertions>
+    </java>
+  </target>
+  
+  <!-- if package works, this run asserts -->
+  <target name="test-package" depends="setup">
+    <java fork="true"  failonerror="true"
+      classname="${classname}"
+      classpathref="assert.classpath">
+      <assertions enableSystemAssertions="false" >
+        <enable package="..." />
+      </assertions>
+    </java>
+  </target>
+
+  <!-- this test should run the app successfully -->
+  <target name="test-empty-assertions" depends="setup">
+    <java fork="true"  failonerror="true"
+      classname="${classname}"
+      classpathref="assert.classpath">
+      <assertions/>
+    </java>
+  </target>  
+
+  <!-- this test should run the app successfully -->
+  <target name="test-disable" depends="setup">
+    <java fork="true" failonerror="true"
+      classname="${classname}"
+      classpathref="assert.classpath">
+      <assertions enableSystemAssertions="false" >
+        <enable package="..." />
+        <disable class="${classname}" />
+      </assertions>
+    </java>
+  </target>  
+
+  <!-- repeated settigns result in the last declaration winning
+    except that the rule 'classes win over packages takes priority
+    this run will assert -->
+  <target name="test-override" depends="setup">
+    <java fork="true" failonerror="true"
+      classname="${classname}"
+      classpathref="assert.classpath">
+      <assertions enableSystemAssertions="false" >
+        <enable package="..." />
+        <disable class="${classname}" />
+        <enable class="${classname}" />
+        <disable package="..." />
+      </assertions>
+    </java>
+  </target>  
+
+  <!-- repeated settigns result in the last declaration winning;
+    this run will not assert -->
+  <target name="test-override2" depends="setup">
+    <java fork="true" failonerror="true"
+      classname="${classname}"
+      classpathref="assert.classpath">
+      <assertions enableSystemAssertions="false" >
+        <enable package="..." />
+        <enable class="${classname}" />
+        <disable class="${classname}" />
+      </assertions>
+    </java>
+  </target>  
+  
+  <!-- if references work, this run asserts -->
+  <target name="test-references">
+  <assertions id="project.assertions" >
+    <enable package="org.apache.test" />
+    <disable package="org.apache.log4j"/>
+    <enable package="..."/>
+  </assertions>  
+    <java fork="true" failonerror="true"
+      classname="${classname}"
+      classpathref="assert.classpath">
+      <assertions refid="project.assertions"/>
+    </java>
+  </target>
+  
+  <!-- when fork=false; we need to reject the construct -->
+  <target name="test-nofork" depends="setup">
+    <java fork="false" failonerror="true"
+      classname="${classname}"
+      classpathref="assert.classpath">
+      <assertions enablesystemassertions="true">
+        <enable class="${classname}" />
+      </assertions>
+    </java>
+  </target>  
+
+  <!-- this throws a build error -->
+  <target name="test-multiple-assertions" depends="setup">
+    <java fork="true" failonerror="true"
+      classname="${classname}"
+      classpathref="assert.classpath">
+      <assertions enablesystemassertions="true">
+        <enable class="${classname}" />
+      </assertions>
+      <assertions/>
+    </java>
+  </target>  
+  
+  <!-- should throw a build exception -->
+  <target name="test-reference-abuse" depends="setup">
+  <assertions id="project.assertions2" >
+    <enable package="org.apache.test" />
+    <disable package="org.apache.log4j"/>
+    <enable package="..."/>
+  </assertions>  
+    <java fork="true" failonerror="true"
+      classname="${classname}"
+      classpathref="assert.classpath">
+      <assertions refid="project.assertions2">
+        <disable class="${classname}" />
+      </assertions>      
+    </java>
+  </target>    
+  
+</project>
diff --git a/src/etc/testcases/types/assertions/AssertionTest.java b/src/etc/testcases/types/assertions/AssertionTest.java
new file mode 100644
index 0000000..60158ca
--- /dev/null
+++ b/src/etc/testcases/types/assertions/AssertionTest.java
@@ -0,0 +1,66 @@
+/*
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2003 The Apache Software Foundation.  All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution, if
+ *    any, must include the following acknowlegement:
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowlegement may appear in the software itself,
+ *    if and wherever such third-party acknowlegements 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 names without prior written
+ *    permission of the Apache Group.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+ 
+
+/**
+ * this is an assertion tester
+ */
+public class AssertionTest {
+    
+    public static void main(String args[]) {
+		assert true == false : "there exist no facts that are both true and false";
+		System.out.println("Assertions are disabled");
+    }
+    
+}
diff --git a/src/etc/testcases/types/selectors.xml b/src/etc/testcases/types/selectors.xml
index 08e9d7c..0644ac5 100644
--- a/src/etc/testcases/types/selectors.xml
+++ b/src/etc/testcases/types/selectors.xml
@@ -130,8 +130,12 @@
   <target name="modifiedselectortest-scenario-prepare">
       <mkdir dir="${test.dir}/src"/>
       <copy todir="${test.dir}/src">
-          <fileset dir="${ant.home}/lib" includes="ant.jar"/>
-          <fileset dir="${ant.home}/bin"/>
+          <fileset dir="${ant.home}/lib" includes="ant.jar">
+              <type type="file"/>
+          </fileset>
+          <fileset dir="${ant.home}/bin">
+                <type type="file"/>
+          </fileset>
       </copy>
       <touch datetime="12/24/2002 4:00 pm">
           <fileset dir="${test.dir}"/>
diff --git a/src/main/org/apache/tools/ant/DirectoryScanner.java b/src/main/org/apache/tools/ant/DirectoryScanner.java
index 9b7b1b6..d26ffe1 100644
--- a/src/main/org/apache/tools/ant/DirectoryScanner.java
+++ b/src/main/org/apache/tools/ant/DirectoryScanner.java
@@ -65,6 +65,7 @@
 import java.util.Set;
 import java.util.Vector;
 
+import org.apache.tools.ant.taskdefs.condition.Os;
 import org.apache.tools.ant.types.Resource;
 import org.apache.tools.ant.types.ResourceFactory;
 import org.apache.tools.ant.types.selectors.FileSelector;
@@ -163,6 +164,8 @@
 public class DirectoryScanner
        implements FileScanner, SelectorScanner, ResourceFactory {
 
+    /** Is OpenVMS the operating system we're running on? */
+    private static final boolean ON_VMS = Os.isFamily("openvms");
 
     /**
      * Patterns which should be excluded by default.
@@ -725,7 +728,7 @@
                         File canonFile = myfile.getCanonicalFile();
                         String path = fileUtils.removeLeadingPath(canonBase,
                                                                   canonFile);
-                        if (!path.equals(currentelement)) {
+                        if (!path.equals(currentelement) || ON_VMS) {
                             myfile = findFile(basedir, currentelement);
                             if (myfile != null) {
                                 currentelement =
diff --git a/src/main/org/apache/tools/ant/IntrospectionHelper.java b/src/main/org/apache/tools/ant/IntrospectionHelper.java
index 2c314b7..ef01eb6 100644
--- a/src/main/org/apache/tools/ant/IntrospectionHelper.java
+++ b/src/main/org/apache/tools/ant/IntrospectionHelper.java
@@ -594,7 +594,8 @@
     private NestedCreator getNestedCreator(Project project, Object parent,
         String elementName) throws BuildException {
 
-        NestedCreator nc = (NestedCreator) nestedCreators.get(elementName);
+        NestedCreator nc = (NestedCreator) nestedCreators.get(
+            elementName.toLowerCase(Locale.US));
         if (nc == null) {
             nc = createAddTypeCreator(project, parent, elementName);
         }
@@ -696,7 +697,7 @@
      * @return true if the given nested element is supported
      */
     public boolean supportsNestedElement(String elementName) {
-        return nestedCreators.containsKey(elementName)
+        return nestedCreators.containsKey(elementName.toLowerCase(Locale.US))
             || DynamicConfigurator.class.isAssignableFrom(bean)
             || addTypeMethods.size() != 0;
     }
@@ -726,7 +727,8 @@
         if (elementName == null) {
             return;
         }
-        NestedCreator ns = (NestedCreator) nestedCreators.get(elementName);
+        NestedCreator ns = (NestedCreator) nestedCreators.get(
+            elementName.toLowerCase(Locale.US));
         if (ns == null) {
             return;
         }
diff --git a/src/main/org/apache/tools/ant/Main.java b/src/main/org/apache/tools/ant/Main.java
index c8aa58b..b5492dd 100644
--- a/src/main/org/apache/tools/ant/Main.java
+++ b/src/main/org/apache/tools/ant/Main.java
@@ -290,7 +290,9 @@
     }
 
     /**
-     * Process command line arguments
+     * Process command line arguments.
+     * When ant is started from Launcher, the -lib argument does not get
+     * passed through to this routine.
      *
      * @param args the command line arguments.
      *
@@ -807,6 +809,7 @@
         msg.append("  -verbose, -v           be extra verbose" + lSep);
         msg.append("  -debug, -d             print debugging information" + lSep);
         msg.append("  -emacs, -e             produce logging information without adornments" + lSep);
+        msg.append("  -lib <path>            specifies a path to search for jars and classes" + lSep);
         msg.append("  -logfile <file>        use given file for log" + lSep);
         msg.append("    -l     <file>                ''" + lSep);
         msg.append("  -logger <classname>    the class which is to perform logging" + lSep);
diff --git a/src/main/org/apache/tools/ant/UnknownElement.java b/src/main/org/apache/tools/ant/UnknownElement.java
index 2a76def..a6844fa 100644
--- a/src/main/org/apache/tools/ant/UnknownElement.java
+++ b/src/main/org/apache/tools/ant/UnknownElement.java
@@ -57,7 +57,6 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Locale;
 import java.io.IOException;
 
 /**
@@ -515,10 +514,8 @@
     private boolean handleChild(IntrospectionHelper ih,
                                 Object parent, UnknownElement child,
                                 RuntimeConfigurable childWrapper) {
-        // backwards compatibility - element names of nested
-        // elements have been all lower-case in Ant, except for
-        // TaskContainers
-        String childName = child.getTag().toLowerCase(Locale.US);
+        String childName = ProjectHelper.genComponentName(
+            child.getNamespace(), child.getTag());
         if (ih.supportsNestedElement(childName)) {
             IntrospectionHelper.Creator creator =
                 ih.getElementCreator(getProject(), parent, childName);
@@ -552,6 +549,7 @@
             return false;
         }
         UnknownElement other = (UnknownElement) obj;
+        // Are the names the same ?
         if (!equalsString(elementName, other.elementName)) {
             return false;
         }
@@ -561,12 +559,25 @@
         if (!qname.equals(other.qname)) {
             return false;
         }
+        // Are attributes the same ?
         if (!getWrapper().getAttributeMap().equals(
                 other.getWrapper().getAttributeMap())) {
             return false;
         }
-        if (children == null) {
-            return other.children == null;
+        // Is the text the same?
+        //   Need to use equals on the string and not
+        //   on the stringbuffer as equals on the string buffer
+        //   does not compare the contents.
+        if (!getWrapper().getText().toString().equals(
+                other.getWrapper().getText().toString())) {
+            return false;
+        }
+        // Are the sub elements the same ?
+        if (children == null || children.size() == 0) {
+            return other.children == null || other.children.size() == 0;
+        }
+        if (other.children == null) {
+            return false;
         }
         if (children.size() != other.children.size()) {
             return false;
diff --git a/src/main/org/apache/tools/ant/filters/ConcatFilter.java b/src/main/org/apache/tools/ant/filters/ConcatFilter.java
index 87d9809..529ff4f 100644
--- a/src/main/org/apache/tools/ant/filters/ConcatFilter.java
+++ b/src/main/org/apache/tools/ant/filters/ConcatFilter.java
@@ -76,7 +76,7 @@
  * file.</p>
  *
  * @since 1.6
- * @version 2003-09-17
+ * @version 2003-09-23
  * @author Jan Matèrne
  */
 public final class ConcatFilter extends BaseParamFilterReader
@@ -89,10 +89,10 @@
     private File append;
 
     /** Reader for prepend-file. */
-    private Reader prependReader = new EmptyReader();
+    private Reader prependReader = null;
 
     /** Reader for append-file. */
-    private Reader appendReader = new EmptyReader();
+    private Reader appendReader = null;
 
     /**
      * Constructor for "dummy" instances.
@@ -136,12 +136,28 @@
 
         // The readers return -1 if they end. So simply read the "prepend"
         // after that the "content" and at the end the "append" file.
-        ch = prependReader.read();
+        if (prependReader != null) {
+            ch = prependReader.read();
+            if (ch == -1) {
+                // I am the only one so I have to close the reader
+                prependReader.close();
+                prependReader = null;
+            }
+        }
         if (ch == -1) {
             ch = super.read();
         }
         if (ch == -1) {
-            ch = appendReader.read();
+            // don´t call super.close() because that reader is used
+            // on other places ...
+            if (appendReader != null) {
+                ch = appendReader.read();
+                if (ch == -1) {
+                    // I am the only one so I have to close the reader
+                    appendReader.close();
+                    appendReader = null;
+                }
+            }
         }
 
         return ch;
@@ -233,14 +249,4 @@
             appendReader = new BufferedReader(new FileReader(append));
         }
    }
-
-   /**
-    * Reader which is always at the end of file.
-    * Used for easier algorithm (polymorphism instead if-cascades).
-    */
-   private class EmptyReader extends Reader {
-       public int read(char[] ch, int i1, int i2) { return -1; }
-       public void close() { }
-   }
-
 }
\ No newline at end of file
diff --git a/src/main/org/apache/tools/ant/launch/LaunchException.java b/src/main/org/apache/tools/ant/launch/LaunchException.java
new file mode 100644
index 0000000..4ca8a27
--- /dev/null
+++ b/src/main/org/apache/tools/ant/launch/LaunchException.java
@@ -0,0 +1,77 @@
+/*
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2003 The Apache Software Foundation.  All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution, if
+ *    any, must include the following acknowlegement:
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowlegement may appear in the software itself,
+ *    if and wherever such third-party acknowlegements 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 names without prior written
+ *    permission of the Apache Group.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+package org.apache.tools.ant.launch;
+
+import java.io.PrintStream;
+import java.io.PrintWriter;
+
+/**
+ * Signals an error condition during launching
+ *
+ * @author Conro MacNeill
+ * @since Ant 1.6
+ */
+public class LaunchException extends Exception {
+
+    /**
+     * Constructs an exception with the given descriptive message.
+     *
+     * @param message A description of or information about the exception.
+     *            Should not be <code>null</code>.
+     */
+    public LaunchException(String message) {
+        super(message);
+    }
+
+}
diff --git a/src/main/org/apache/tools/ant/launch/Launcher.java b/src/main/org/apache/tools/ant/launch/Launcher.java
index 4dc5eaa..b23fe1d 100644
--- a/src/main/org/apache/tools/ant/launch/Launcher.java
+++ b/src/main/org/apache/tools/ant/launch/Launcher.java
@@ -57,6 +57,11 @@
 import java.net.URLClassLoader;
 import java.net.MalformedURLException;
 import java.io.File;
+import java.util.StringTokenizer;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Iterator;
+
 
 /**
  *  This is a launcher for Ant.
@@ -83,6 +88,8 @@
         try {
             Launcher launcher = new Launcher();
             launcher.run(args);
+        } catch (LaunchException e) {
+            System.err.println(e.getMessage());
         } catch (Throwable t) {
             t.printStackTrace();
         }
@@ -97,7 +104,7 @@
      * @exception MalformedURLException if the URLs required for the classloader
      *            cannot be created.
      */
-    private void run(String[] args) throws MalformedURLException {
+    private void run(String[] args) throws LaunchException, MalformedURLException {
         String antHomeProperty = System.getProperty(ANTHOME_PROPERTY);
         File antHome = null;
 
@@ -114,10 +121,51 @@
         }
 
         if (!antHome.exists()) {
-            throw new IllegalStateException("Ant home is set incorrectly or "
+            throw new LaunchException("Ant home is set incorrectly or "
                 + "ant could not be located");
         }
 
+        List libPaths = new ArrayList();
+        List argList = new ArrayList();
+        String[] newArgs;
+
+        for (int i = 0; i < args.length; ++i) {
+            if (args[i].equals("-lib")) {
+                if (i == args.length - 1) {
+                    throw new LaunchException("The -lib argument must "
+                        + "be followed by a library location");
+                }
+                libPaths.add(args[++i]);
+            } else {
+                argList.add(args[i]);
+            }
+        }
+
+        if (libPaths.size() == 0) {
+            newArgs = args;
+        } else {
+            newArgs = (String[]) argList.toArray(new String[0]);
+        }
+
+        List libPathURLs = new ArrayList();
+        for (Iterator i = libPaths.iterator(); i.hasNext();) {
+            String libPath = (String) i.next();
+            StringTokenizer myTokenizer
+                = new StringTokenizer(libPath, System.getProperty("path.separator"));
+            while (myTokenizer.hasMoreElements()) {
+                File element = new File(myTokenizer.nextToken());
+                if (element.isDirectory()) {
+                    // add any jars in the directory
+                    URL[] dirURLs = Locator.getLocationURLs(element);
+                    for (int j = 0; j < dirURLs.length; ++j) {
+                        libPathURLs.add(dirURLs[j]);
+                    }
+                }
+                libPathURLs.add(element.toURL());
+            }
+        }
+
+        URL[] libJars = (URL[])libPathURLs.toArray(new URL[0]);
 
         // Now try and find JAVA_HOME
         File toolsJar = Locator.getToolsJar();
@@ -129,13 +177,14 @@
         URL[] userJars = Locator.getLocationURLs(userLibDir);
 
 
-        int numJars = userJars.length + systemJars.length;
+        int numJars = libJars.length + userJars.length + systemJars.length;
         if (toolsJar != null) {
             numJars++;
         }
         URL[] jars = new URL[numJars];
-        System.arraycopy(userJars, 0, jars, 0, userJars.length);
-        System.arraycopy(systemJars, 0, jars, userJars.length,
+        System.arraycopy(libJars, 0, jars, 0, libJars.length);
+        System.arraycopy(userJars, 0, jars, libJars.length, userJars.length);
+        System.arraycopy(systemJars, 0, jars, userJars.length + libJars.length,
             systemJars.length);
 
         if (toolsJar != null) {
@@ -146,6 +195,10 @@
         // now update the class.path property
         StringBuffer baseClassPath
             = new StringBuffer(System.getProperty("java.class.path"));
+        if (baseClassPath.charAt(baseClassPath.length() - 1)
+                == File.pathSeparatorChar) {
+            baseClassPath.setLength(baseClassPath.length() - 1);
+        }
 
         for (int i = 0; i < jars.length; ++i) {
             baseClassPath.append(File.pathSeparatorChar);
@@ -159,7 +212,7 @@
         try {
             Class mainClass = loader.loadClass(MAIN_CLASS);
             AntMain main = (AntMain) mainClass.newInstance();
-            main.startAnt(args, null, null);
+            main.startAnt(newArgs, null, null);
         } catch (Throwable t) {
             t.printStackTrace();
         }
diff --git a/src/main/org/apache/tools/ant/taskdefs/AbstractCvsTask.java b/src/main/org/apache/tools/ant/taskdefs/AbstractCvsTask.java
index c03868e..ecd0745 100644
--- a/src/main/org/apache/tools/ant/taskdefs/AbstractCvsTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/AbstractCvsTask.java
@@ -571,6 +571,10 @@
     /**
      * The directory where the checked out files should be placed.
      *
+     * <p>Note that this is different from CVS's -d command line
+     * switch as Ant will never shorten pathnames to avoid empty
+     * directories.</p>
+     *
      * @param dest directory where the checked out files should be placed
      */
     public void setDest(File dest) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/Ant.java b/src/main/org/apache/tools/ant/taskdefs/Ant.java
index cd13ee5..a67b3ba 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Ant.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Ant.java
@@ -450,10 +450,12 @@
         Set set = new HashSet();
         for (int i = properties.size() - 1; i >= 0; --i) {
             Property p = (Property) properties.get(i);
-            if (set.contains(p.getName())) {
-                properties.remove(i);
-            } else {
-                set.add(p.getName());
+            if (p.getName() != null && !p.getName().equals("")) {
+                if (set.contains(p.getName())) {
+                    properties.remove(i);
+                } else {
+                    set.add(p.getName());
+                }
             }
         }
         Enumeration e = properties.elements();
diff --git a/src/main/org/apache/tools/ant/taskdefs/Classloader.java b/src/main/org/apache/tools/ant/taskdefs/Classloader.java
deleted file mode 100644
index 009d66e..0000000
--- a/src/main/org/apache/tools/ant/taskdefs/Classloader.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2002-2003 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. The end-user documentation included with the redistribution, if
- *    any, must include the following acknowlegement:
- *       "This product includes software developed by the
- *        Apache Software Foundation (http://www.apache.org/)."
- *    Alternately, this acknowlegement may appear in the software itself,
- *    if and wherever such third-party acknowlegements 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 names without prior written
- *    permission of the Apache Group.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation.  For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- */
-
-package org.apache.tools.ant.taskdefs;
-
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.MagicNames;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.AntClassLoader;
-import org.apache.tools.ant.types.Reference;
-import org.apache.tools.ant.types.Path;
-
-import java.io.File;
-
-/**
- * EXPERIMENTAL
- * Create or modifies ClassLoader. The required pathRef parameter
- * will be used to add classpath elements.
- *
- * The classpath is a regular path. Currently only file components are
- * supported (future extensions may allow URLs).
- *
- * You can modify the core loader by not specifying any name or using
- * "ant.coreLoader". (the core loader is used to load system ant
- * tasks and for taskdefs that don't specify an explicit path).
- *
- * Taskdef and typedef can use the loader you create if the name follows
- * the "ant.loader.NAME" pattern. NAME will be used as a pathref when
- * calling taskdef.
- *
- * This tasks will not modify the core loader if "build.sysclasspath=only"
- *
- * The typical use is:
- * <pre>
- *  &lt;path id="ant.deps" &gt;
- *     &lt;fileset dir="myDir" &gt;
- *        &lt;include name="junit.jar, bsf.jar, js.jar, etc"/&gt;
- *     &lt;/fileset&gt;
- *  &lt;/path&gt;
- *
- *  &lt;classloader pathRef="ant.deps" /&gt;
- *
- * </pre>
- *
- * @author Costin Manolache
- */
-public class Classloader extends Task {
-    /** @see MagicNames#SYSTEM_LOADER_REF */
-    public static final String SYSTEM_LOADER_REF = MagicNames.SYSTEM_LOADER_REF;
-
-    private String name = null;
-    private Path classpath;
-    private boolean reset = false;
-    private boolean parentFirst = true;
-    private String parentName = null;
-
-    /**
-     * Default constructor
-     */
-    public Classloader() {
-    }
-
-    /** Name of the loader. If none, the default loader will be modified
-     *
-     * @param name the name of this loader
-     */
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    /**
-     * Reset the classloader, if it already exists. A new loader will
-     * be created and all the references to the old one will be removed.
-     * (it is not possible to remove paths from a loader). The new
-     * path will be used.
-     *
-     * @param b true if the loader is to be reset.
-     */
-    public void setReset(boolean b) {
-        this.reset = b;
-    }
-
-    public void setReverse(boolean b) {
-        this.parentFirst = !b;
-    }
-
-    public void setParentFirst(boolean b) {
-        this.parentFirst = b;
-    }
-
-    // TODO: add exceptions for delegation or reverse
-
-    // TODO
-    public void setParentName(String name) {
-        this.parentName = name;
-    }
-
-
-    /** Specify which path will be used. If the loader already exists
-     *  and is an AntClassLoader (or any other loader we can extend),
-     *  the path will be added to the loader.
-     */
-    public void setClasspathRef(Reference pathRef) throws BuildException {
-        classpath = (Path) pathRef.getReferencedObject(getProject());
-    }
-
-    /**
-     * Set the classpath to be used when searching for component being defined
-     *
-     * @param classpath an Ant Path object containing the classpath.
-     */
-    public void setClasspath(Path classpath) {
-        if (this.classpath == null) {
-            this.classpath = classpath;
-        } else {
-            this.classpath.append(classpath);
-        }
-    }
-
-    public Path createClasspath() {
-        if (this.classpath == null) {
-            this.classpath = new Path(null);
-        }
-        return this.classpath.createPath();
-    }
-
-
-    public void execute() {
-        try {
-            // Gump friendly - don't mess with the core loader if only classpath
-            if ("only".equals(getProject().getProperty("build.sysclasspath"))
-                && (name == null || SYSTEM_LOADER_REF.equals(name))) {
-                log("Changing the system loader is disabled "
-                    + "by build.sysclasspath=only", Project.MSG_WARN);
-                return;
-            }
-
-            String loaderName = (name == null) ? SYSTEM_LOADER_REF : name;
-
-            Object obj = getProject().getReference(loaderName);
-            if (reset) {
-                // Are any other references held ? Can we 'close' the loader
-                // so it removes the locks on jars ?
-                obj = null; // a new one will be created.
-            }
-
-            // XXX maybe use reflection to addPathElement (other patterns ?)
-            if (obj != null && !(obj instanceof AntClassLoader)) {
-                log("Referenced object is not an AntClassLoader",
-                        Project.MSG_ERR);
-                return;
-            }
-
-            AntClassLoader acl = (AntClassLoader) obj;
-
-            if (acl == null) {
-                // Construct a new class loader
-                Object parent = null;
-                if (parentName != null) {
-                    parent = getProject().getReference(parentName);
-                    if (!(parent instanceof ClassLoader)) {
-                        parent = null;
-                    }
-                }
-                // TODO: allow user to request the system or no parent
-                if (parent == null) {
-                    parent = this.getClass().getClassLoader();
-                }
-
-                if (name == null) {
-                    // The core loader must be reverse
-                    //reverse=true;
-                }
-                getProject().log("Setting parent loader " + name + " "
-                    + parent + " " + parentFirst, Project.MSG_DEBUG);
-
-                // The param is "parentFirst"
-                acl = new AntClassLoader((ClassLoader) parent,
-                         getProject(), classpath, parentFirst);
-
-                getProject().addReference(loaderName, acl);
-
-                if (name == null) {
-                    // This allows the core loader to load optional tasks
-                    // without delegating
-                    acl.addLoaderPackageRoot("org.apache.tools.ant.taskdefs.optional");
-                    getProject().setCoreLoader(acl);
-                }
-            }
-            if (classpath != null) {
-                String[] list = classpath.list();
-                for (int i = 0; i < list.length; i++) {
-                    File f = new File(list[i]);
-                    if (f.exists()) {
-                        acl.addPathElement(f.getAbsolutePath());
-                        log("Adding to class loader " +  acl + " " + f.getAbsolutePath(),
-                                Project.MSG_DEBUG);
-                    }
-                }
-            }
-
-            // XXX add exceptions
-
-        } catch (Exception ex) {
-            ex.printStackTrace();
-        }
-    }
-}
diff --git a/src/main/org/apache/tools/ant/taskdefs/Execute.java b/src/main/org/apache/tools/ant/taskdefs/Execute.java
index 44f6e40..7794995 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Execute.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Execute.java
@@ -124,7 +124,7 @@
             // Ignore and keep trying
         }
 
-        if (Os.isFamily("mac")) {
+        if (Os.isFamily("mac") && !Os.isFamily("unix")) {
             // Mac
             shellLauncher = new MacCommandLauncher(new CommandLauncher());
         } else if (Os.isFamily("os/2")) {
@@ -621,6 +621,13 @@
      * @return the patched environment
      */
     private String[] patchEnvironment() {
+        // On OpenVMS Runtime#exec() doesn't support the environment array,
+        // so we only return the new values which then will be set in
+        // the generated DCL script, inheriting the parent process environment
+        if (Os.isFamily("openvms")) {
+                return env;
+        }
+
         Vector osEnv = (Vector) getProcEnvironment().clone();
         for (int i = 0; i < env.length; i++) {
             int pos = env[i].indexOf('=');
@@ -1119,7 +1126,7 @@
          */
         public Process exec(Project project, String[] cmd, String[] env)
             throws IOException {
-            String[] vmsCmd = {createCommandFile(cmd).getPath()};
+            String[] vmsCmd = {createCommandFile(cmd, env).getPath()};
             return super.exec(project, vmsCmd, env);
         }
 
@@ -1131,7 +1138,7 @@
          */
         public Process exec(Project project, String[] cmd, String[] env,
                             File workingDir) throws IOException {
-            String[] vmsCmd = {createCommandFile(cmd).getPath()};
+            String[] vmsCmd = {createCommandFile(cmd, env).getPath()};
             return super.exec(project, vmsCmd, env, workingDir);
         }
 
@@ -1139,17 +1146,34 @@
          * Writes the command into a temporary DCL script and returns the
          * corresponding File object.  The script will be deleted on exit.
          */
-        private File createCommandFile(String[] cmd) throws IOException {
+        private File createCommandFile(String[] cmd, String[] env)
+            throws IOException {
             File script = File.createTempFile("ANT", ".COM");
             script.deleteOnExit();
             PrintWriter out = null;
             try {
                 out = new PrintWriter(new FileWriter(script));
-                StringBuffer dclCmd = new StringBuffer("$");
-                for (int i = 0; i < cmd.length; i++) {
-                    dclCmd.append(' ').append(cmd[i]);
+
+                // add the environment as logicals to the DCL script
+                if (env != null) {
+                    int eqIndex;
+                    for (int i = 1; i < env.length ; i++) {
+                        eqIndex = env[i].indexOf('=');
+                        if (eqIndex != -1) {
+                            out.print("$ DEFINE/NOLOG ");
+                            out.print(env[i].substring(0, eqIndex));
+                            out.print(" \"");
+                            out.print(env[i].substring(eqIndex + 1));
+                            out.println('\"');
+                        }
+                    }
                 }
-                out.println(dclCmd.toString());
+
+                out.print("$ " + cmd[0]);
+                for (int i = 1; i < cmd.length ; i++) {
+                    out.println(" -");
+                    out.print(cmd[i]);
+                }
             } finally {
                 if (out != null) {
                     out.close();
diff --git a/src/main/org/apache/tools/ant/taskdefs/FixCRLF.java b/src/main/org/apache/tools/ant/taskdefs/FixCRLF.java
index 2386272..2e83dc5 100644
--- a/src/main/org/apache/tools/ant/taskdefs/FixCRLF.java
+++ b/src/main/org/apache/tools/ant/taskdefs/FixCRLF.java
@@ -404,6 +404,7 @@
             // Set up the output Writer
             try {
                 tmpFile = fileUtils.createTempFile("fixcrlf", "", null);
+                tmpFile.deleteOnExit();
                 Writer writer = (encoding == null) ? new FileWriter(tmpFile)
                     : new OutputStreamWriter(new FileOutputStream(tmpFile),
                                              encoding);
diff --git a/src/main/org/apache/tools/ant/taskdefs/ImportTask.java b/src/main/org/apache/tools/ant/taskdefs/ImportTask.java
index d569e55..119a906 100644
--- a/src/main/org/apache/tools/ant/taskdefs/ImportTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/ImportTask.java
@@ -64,8 +64,6 @@
 import java.util.Vector;
 
 /**
- * <i>EXPERIMENTAL:</i> This task is experimental and may be under continual
- * change till Ant1.6 ships; it may even be omitted from the product.
  * <p>
  * Task to import another build file into the current project.
  * <p>
@@ -96,8 +94,19 @@
  */
 public class ImportTask extends Task {
     private String file;
+    private boolean optional;
 
     /**
+     * sets the optional attribute
+     *
+     * @param optional if true ignore files that are not present,
+     *                 default is false
+     */
+    public void setOptional(boolean optional) {
+        this.optional = true;
+    }
+    
+    /**
      * the name of the file to import. How relative paths are resolved is still
      * in flux: use absolute paths for safety.
      * @param file the name of the file
@@ -151,9 +160,15 @@
         }
 
         if (!importedFile.exists()) {
-                throw new BuildException(
-                    "Cannot find " + file + " imported from "
-                    + buildFile.getAbsolutePath());
+            String message =
+                "Cannot find " + file + " imported from "
+                + buildFile.getAbsolutePath();
+            if (optional) {
+                getProject().log(message, Project.MSG_VERBOSE);
+                return;
+            } else {
+                throw new BuildException(message);
+            }
         }
 
         importedFile = new File(getPath(importedFile));
diff --git a/src/main/org/apache/tools/ant/taskdefs/Input.java b/src/main/org/apache/tools/ant/taskdefs/Input.java
index 0997508..714d5dc 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Input.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Input.java
@@ -142,6 +142,7 @@
             && getProject().getProperty(addproperty) != null) {
             log("skipping " + getTaskName() + " as property " + addproperty
                 + " has already been set.");
+            return;
         }
 
         InputRequest request = null;
@@ -164,4 +165,4 @@
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/src/main/org/apache/tools/ant/taskdefs/Java.java b/src/main/org/apache/tools/ant/taskdefs/Java.java
index 7875bf0..9f947c0 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Java.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Java.java
@@ -156,6 +156,10 @@
             throw new BuildException("You have used an attribute which is "
             + "not compatible with spawn");
         }
+        if (cmdl.getAssertions() != null && !fork) {
+            log("Assertion statements are currently ignored in non-forked mode");
+        }
+
         if (fork) {
             if (perm != null) {
                 log("Permissions can not be set this way in forked mode.", Project.MSG_WARN);
@@ -591,7 +595,10 @@
      * @since Ant 1.6
      * @param asserts assertion set
      */
-    public void setAssertions(Assertions asserts) {
+    public void addAssertions(Assertions asserts) {
+        if(cmdl.getAssertions() != null) {
+            throw new BuildException("Only one assertion declaration is allowed");
+        }
         cmdl.setAssertions(asserts);
     }
 
diff --git a/src/main/org/apache/tools/ant/taskdefs/Javadoc.java b/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
index 8c266e5..14cf3db 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Javadoc.java
@@ -1919,6 +1919,7 @@
             if (useExternalFile) {
                 if (tmpList == null) {
                     tmpList = fileUtils.createTempFile("javadoc", "", null);
+                    tmpList.deleteOnExit();
                     toExecute.createArgument()
                         .setValue("@" + tmpList.getAbsolutePath());
                 }
diff --git a/src/main/org/apache/tools/ant/taskdefs/LoadProperties.java b/src/main/org/apache/tools/ant/taskdefs/LoadProperties.java
index 5ddaf53..ef20d27 100644
--- a/src/main/org/apache/tools/ant/taskdefs/LoadProperties.java
+++ b/src/main/org/apache/tools/ant/taskdefs/LoadProperties.java
@@ -1,7 +1,7 @@
 /*
  * The Apache Software License, Version 1.1
  *
- * Copyright (c) 2002 The Apache Software Foundation.  All rights
+ * Copyright (c) 2002-2003 The Apache Software Foundation.  All rights
  * reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -140,10 +140,10 @@
         FileInputStream fis = null;
         BufferedInputStream bis = null;
         Reader instream = null;
+        ByteArrayInputStream tis = null;
 
         try {
             final long len = srcFile.length();
-            final int size = (int) len;
 
             //open up the file
             fis = new FileInputStream(srcFile);
@@ -155,7 +155,6 @@
             }
 
             ChainReaderHelper crh = new ChainReaderHelper();
-            crh.setBufferSize(size);
             crh.setPrimaryReader(instream);
             crh.setFilterChains(filterChains);
             crh.setProject(getProject());
@@ -168,7 +167,6 @@
                     text = text + "\n";
                 }
 
-                ByteArrayInputStream tis = null;
                 if (encoding == null) {
                     tis = new ByteArrayInputStream(text.getBytes());
                 } else {
@@ -176,16 +174,11 @@
                 }
                 final Properties props = new Properties();
                 props.load(tis);
-                final Enumeration e = props.keys();
-                while (e.hasMoreElements()) {
-                    final String key = (String) e.nextElement();
-                    final String value = props.getProperty(key);
-                    if (key != null && value != null
-                            && value.trim().length() > 0) {
-                        getProject().setNewProperty(key, value);
-                    }
-                }
-                tis.close();
+
+                Property propertyTask = 
+                    (Property) getProject().createTask("property");
+                propertyTask.setTaskName(getTaskName());
+                propertyTask.addProperties(props);
             }
 
         } catch (final IOException ioe) {
@@ -201,6 +194,13 @@
             } catch (IOException ioex) {
                 //ignore
             }
+            try {
+                if (tis != null) {
+                    tis.close();
+                }
+            } catch (IOException ioex) {
+                //ignore
+            }
         }
     }
 
diff --git a/src/main/org/apache/tools/ant/taskdefs/MacroDef.java b/src/main/org/apache/tools/ant/taskdefs/MacroDef.java
index 6dd19b6..61548a6 100644
--- a/src/main/org/apache/tools/ant/taskdefs/MacroDef.java
+++ b/src/main/org/apache/tools/ant/taskdefs/MacroDef.java
@@ -81,7 +81,6 @@
     private String     name;
     private List       attributes = new ArrayList();
     private Map        elements = new HashMap();
-    private int        attributeStyle = AttributeStyle.ANT;
 
     /**
      * Name of the definition
@@ -92,55 +91,6 @@
     }
 
     /**
-     * Enumerated type for attributeStyle attribute
-     *
-     * @see EnumeratedAttribute
-     */
-    public static class AttributeStyle extends EnumeratedAttribute {
-        /** Enumerated values */
-        public static final int ANT = 0, XPATH = 1;
-
-        /**
-         * get the values
-         * @return an array of the allowed values for this attribute.
-         */
-        public String[] getValues() {
-            return new String[] {"ant", "xpath"};
-        }
-    }
-
-    /**
-     * <em>Experimental</em>
-     * I am uncertain at the moment how to encode attributes
-     * using ant style ${attribute} or xpath style @attribute.
-     * The first may get mixed up with ant properties and
-     * the second may get mixed up with xpath.
-     * The default at the moment is ant s
-     *
-     * @param style an <code>AttributeStyle</code> value
-     */
-    public void setAttributeStyle(AttributeStyle style) {
-        attributeStyle = style.getIndex();
-    }
-
-    /**
-     * <em>Experimental</em>
-     * @return the attribute style
-     */
-    public int getAttributeStyle() {
-        return attributeStyle;
-    }
-
-    /**
-     * Set the class loader.
-     * Not used
-     * @param classLoader a <code>ClassLoader</code> value
-     */
-    public void setAntlibClassLoader(ClassLoader classLoader) {
-        // Ignore
-    }
-
-    /**
      * Add a nested task to ExtendType
      * @param nestedTask  Nested task/type to extend
      */
@@ -319,15 +269,17 @@
             }
             Attribute other = (Attribute) obj;
             if (name == null) {
-                return other.name == null;
-            }
-            if (!name.equals(other.name)) {
+                if (other.name != null) {
+                    return false;
+                }
+            } else if (!name.equals(other.name)) {
                 return false;
             }
             if (defaultValue == null) {
-                return other.defaultValue == null;
-            }
-            if (!name.equals(other.defaultValue)) {
+                if (other.defaultValue != null) {
+                    return false;
+                }
+            } else if (!defaultValue.equals(other.defaultValue)) {
                 return false;
             }
             return true;
@@ -393,9 +345,10 @@
             }
             TemplateElement other = (TemplateElement) obj;
             if (name == null) {
-                return other.name == null;
-            }
-            if (!name.equals(other.name)) {
+                if (other.name != null) {
+                    return false;
+                }
+            } else if (!name.equals(other.name)) {
                 return false;
             }
             return optional == other.optional;
@@ -435,9 +388,6 @@
             }
         }
 
-        if (attributeStyle != other.attributeStyle) {
-            return false;
-        }
         if (!nestedTask.similar(other.nestedTask)) {
             return false;
         }
diff --git a/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java b/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
index 326067c..eeb9f7c 100644
--- a/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
+++ b/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
@@ -90,7 +90,7 @@
      *
      * @param macroDef a <code>MacroDef</code> value
      */
-    protected void setMacroDef(MacroDef macroDef) {
+    public void setMacroDef(MacroDef macroDef) {
         this.macroDef = macroDef;
     }
 
@@ -146,7 +146,7 @@
         }
     }
 
-    private String macroSubsAnt(String s, Map macroMapping) {
+    private String macroSubs(String s, Map macroMapping) {
         StringBuffer ret = new StringBuffer();
         StringBuffer macroName = new StringBuffer();
         boolean inMacro = false;
@@ -179,59 +179,6 @@
         return ret.toString();
     }
 
-    private String macroSubsXPath(String s, Map macroMapping) {
-        StringBuffer ret = new StringBuffer();
-        StringBuffer macroName = new StringBuffer();
-        boolean inMacro = false;
-        for (int i = 0; i < s.length(); ++i) {
-            char c = s.charAt(i);
-            if (!inMacro) {
-                if (c == '@') {
-                    inMacro = true;
-                } else {
-                    ret.append(c);
-                }
-            } else {
-                if (MacroDef.isValidNameCharacter(c)) {
-                    macroName.append(c);
-                } else {
-                    inMacro = false;
-                    String name = macroName.toString();
-                    String value = (String) macroMapping.get(name);
-                    if (value == null) {
-                        ret.append("@" + name);
-                    } else {
-                        ret.append(value);
-                    }
-                    if (c == '@') {
-                        inMacro = true;
-                    } else {
-                        ret.append(c);
-                    }
-                    macroName = new StringBuffer();
-                }
-            }
-        }
-        if (inMacro) {
-            String name = macroName.toString();
-            String value = (String) macroMapping.get(name);
-            if (value == null) {
-                ret.append("@" + name);
-            } else {
-                ret.append(value);
-            }
-        }
-        return ret.toString();
-    }
-
-    private String macroSubs(String s, Map macroMapping) {
-        if (macroDef.getAttributeStyle() == MacroDef.AttributeStyle.ANT) {
-            return macroSubsAnt(s, macroMapping);
-        } else {
-            return macroSubsXPath(s, macroMapping);
-        }
-    }
-
     private UnknownElement copy(UnknownElement ue) {
         UnknownElement ret = new UnknownElement(ue.getTag());
         ret.setNamespace(ue.getNamespace());
diff --git a/src/main/org/apache/tools/ant/taskdefs/Manifest.java b/src/main/org/apache/tools/ant/taskdefs/Manifest.java
index 49957f8..a4ec215 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Manifest.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Manifest.java
@@ -619,6 +619,10 @@
                     if (classpathAttribute == null) {
                         storeAttribute(attribute);
                     } else {
+                        warnings.addElement("Multiple Class-Path attributes "
+                            + "are supported but violate the Jar "
+                            + "specification and may not be correctly "
+                            + "processed in all environments");
                         Enumeration e = attribute.getValues();
                         while (e.hasMoreElements()) {
                             String value = (String) e.nextElement();
diff --git a/src/main/org/apache/tools/ant/taskdefs/PreSetDef.java b/src/main/org/apache/tools/ant/taskdefs/PreSetDef.java
index b43860c..8dc78f8 100644
--- a/src/main/org/apache/tools/ant/taskdefs/PreSetDef.java
+++ b/src/main/org/apache/tools/ant/taskdefs/PreSetDef.java
@@ -77,10 +77,9 @@
  * @author Peter Reilly
  * @since Ant 1.6
  */
-public class PreSetDef extends Task implements AntlibInterface, TaskContainer {
+public class PreSetDef extends AntlibDefinition implements TaskContainer {
     private UnknownElement nestedTask;
     private String         name;
-    private String         uri;
 
     /**
      * Name of the definition
@@ -89,29 +88,6 @@
      public void setName(String name) {
         this.name = name;
     }
-    /**
-     * The URI for this definition.
-     * @param uri the namespace URI
-     * @throws BuildException if uri is not allowed
-     */
-    public void setURI(String uri) throws BuildException {
-        if (uri.equals(ProjectHelper.ANT_CORE_URI)) {
-            uri = "";
-        }
-        if (uri.startsWith("ant:")) {
-            throw new BuildException("Attempt to use a reserved URI " + uri);
-        }
-        this.uri = uri;
-    }
-    /**
-     * Set the class loader.
-     * Not used
-     * @param classLoader a <code>ClassLoader</code> value
-     */
-    public void setAntlibClassLoader(ClassLoader classLoader) {
-        // Ignore
-    }
-
 
     /**
      * Add a nested task to predefine attributes and elements on
@@ -140,7 +116,7 @@
             throw new BuildException("Name not specified");
         }
 
-        name = ProjectHelper.genComponentName(uri, name);
+        name = ProjectHelper.genComponentName(getURI(), name);
 
         ComponentHelper helper = ComponentHelper.getComponentHelper(
             getProject());
diff --git a/src/main/org/apache/tools/ant/taskdefs/ProcessDestroyer.java b/src/main/org/apache/tools/ant/taskdefs/ProcessDestroyer.java
index c3ff0bc..8a59902 100644
--- a/src/main/org/apache/tools/ant/taskdefs/ProcessDestroyer.java
+++ b/src/main/org/apache/tools/ant/taskdefs/ProcessDestroyer.java
@@ -116,8 +116,10 @@
             removeShutdownHookMethod =
                 Runtime.class.getMethod("removeShutdownHook", paramTypes);
             // wait to add shutdown hook as needed
-        } catch (Exception e) {
+        } catch (NoSuchMethodException e) {
             // it just won't be added as a shutdown hook... :(
+        } catch (Exception e) {
+            e.printStackTrace();
         }
     }
 
@@ -133,9 +135,9 @@
                 addShutdownHookMethod.invoke(Runtime.getRuntime(), args);
                 added = true;
             } catch (IllegalAccessException e) {
-                // it just won't be added as a shutdown hook... :(
+                e.printStackTrace();
             } catch (InvocationTargetException e) {
-                // it just won't be added as a shutdown hook... :(
+                e.printStackTrace();
             }
         }
     }
@@ -157,6 +159,7 @@
                 }
                 // start the hook thread, a unstarted thread may not be
                 // eligible for garbage collection
+                // Cf.: http://developer.java.sun.com/developer/bugParade/bugs/4533087.html
                 destroyProcessThread.setShouldDestroy(false);
                 destroyProcessThread.start();
                 // this should return quickly, since Process.destroy()
@@ -169,7 +172,9 @@
                 destroyProcessThread = null;
                 added = false;
             } catch (IllegalAccessException e) {
+                e.printStackTrace();
             } catch (InvocationTargetException e) {
+                e.printStackTrace();
             }
         }
     }
diff --git a/src/main/org/apache/tools/ant/taskdefs/Replace.java b/src/main/org/apache/tools/ant/taskdefs/Replace.java
index 8d23d91..048a4dd 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Replace.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Replace.java
@@ -399,6 +399,7 @@
 
         File temp = fileUtils.createTempFile("rep", ".tmp",
                                              fileUtils.getParentFile(src));
+        temp.deleteOnExit();
 
         Reader reader = null;
         Writer writer = null;
diff --git a/src/main/org/apache/tools/ant/taskdefs/SubAnt.java b/src/main/org/apache/tools/ant/taskdefs/SubAnt.java
index a5faa0b..7f1338f 100644
--- a/src/main/org/apache/tools/ant/taskdefs/SubAnt.java
+++ b/src/main/org/apache/tools/ant/taskdefs/SubAnt.java
@@ -72,9 +72,6 @@
 
 
 /**
- * <i>EXPERIMENTAL:</i> This task is experimental and may be under continual
- * change till Ant1.6 ships; it may even be omitted from the product.
- * <p>
  * Calls a given target for all defined sub-builds. This is an extension
  * of ant for bulk project execution.
  * <p>
diff --git a/src/main/org/apache/tools/ant/taskdefs/Zip.java b/src/main/org/apache/tools/ant/taskdefs/Zip.java
index 8eefd3e..0cb65be 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Zip.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Zip.java
@@ -416,6 +416,7 @@
                 renamedFile =
                     fileUtils.createTempFile("zip", ".tmp",
                                              fileUtils.getParentFile(zipFile));
+                renamedFile.deleteOnExit();
 
                 try {
                     fileUtils.rename(zipFile, renamedFile);
diff --git a/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java b/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java
index 6dd3e08..83c1741 100644
--- a/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java
+++ b/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java
@@ -445,6 +445,7 @@
                         userDir = new File(userDirName);
                     }
                     tmpFile = fileUtils.createTempFile("files", "", userDir);
+                    tmpFile.deleteOnExit();
                     out = new PrintWriter(new FileWriter(tmpFile));
                     for (int i = firstFileName; i < args.length; i++) {
                         if (quoteFiles && args[i].indexOf(" ") > -1) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/cvslib/CvsTagDiff.java b/src/main/org/apache/tools/ant/taskdefs/cvslib/CvsTagDiff.java
index 4b2c983..6c62f69 100644
--- a/src/main/org/apache/tools/ant/taskdefs/cvslib/CvsTagDiff.java
+++ b/src/main/org/apache/tools/ant/taskdefs/cvslib/CvsTagDiff.java
@@ -245,6 +245,7 @@
         File tmpFile = null;
         try {
             tmpFile = myfileUtils.createTempFile("cvstagdiff", ".log", null);
+            tmpFile.deleteOnExit();
             setOutput(tmpFile);
 
             // run the cvs command
diff --git a/src/main/org/apache/tools/ant/taskdefs/defaults.properties b/src/main/org/apache/tools/ant/taskdefs/defaults.properties
index e259c02..c400791 100644
--- a/src/main/org/apache/tools/ant/taskdefs/defaults.properties
+++ b/src/main/org/apache/tools/ant/taskdefs/defaults.properties
@@ -70,7 +70,6 @@
 concat=org.apache.tools.ant.taskdefs.Concat
 cvstagdiff=org.apache.tools.ant.taskdefs.cvslib.CvsTagDiff
 tempfile=org.apache.tools.ant.taskdefs.TempFile
-classloader=org.apache.tools.ant.taskdefs.Classloader
 import=org.apache.tools.ant.taskdefs.ImportTask
 whichresource=org.apache.tools.ant.taskdefs.WhichResource
 subant=org.apache.tools.ant.taskdefs.SubAnt
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/Cab.java b/src/main/org/apache/tools/ant/taskdefs/optional/Cab.java
index 6c24803..e68e824 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/Cab.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/Cab.java
@@ -192,6 +192,7 @@
     protected File createListFile(Vector files)
         throws IOException {
         File listFile = fileUtils.createTempFile("ant", "", null);
+        listFile.deleteOnExit();
 
         PrintWriter writer = new PrintWriter(new FileOutputStream(listFile));
 
@@ -322,6 +323,7 @@
 
                 if (!doVerbose) {
                     outFile = fileUtils.createTempFile("ant", "", null);
+                    outFile.deleteOnExit();
                     exec.setOutput(outFile);
                 }
 
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java b/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java
index 708c6b3..8955fc4 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java
@@ -58,11 +58,14 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileReader;
+import java.io.FileOutputStream;
 import java.io.FileWriter;
 import java.io.InputStreamReader;
 import java.io.IOException;
+import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.io.Reader;
+import java.io.Writer;
 import java.util.Vector;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.DirectoryScanner;
@@ -318,17 +321,20 @@
     protected void doReplace(File f, int options)
          throws IOException {
         File temp = fileUtils.createTempFile("replace", ".txt", null);
+        temp.deleteOnExit();
 
         Reader r = null;
-        FileWriter w = null;
+        Writer w = null;
 
         try {
             if (encoding == null) {
                 r = new FileReader(f);
+                w = new FileWriter(temp);
             } else {
                 r = new InputStreamReader(new FileInputStream(f), encoding);
+                w = new OutputStreamWriter(new FileOutputStream(temp),
+                                           encoding);
             }
-            w = new FileWriter(temp);
 
             BufferedReader br = new BufferedReader(r);
             BufferedWriter bw = new BufferedWriter(w);
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/CSharp.java b/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/CSharp.java
index 77de9c9..04ba9a5 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/CSharp.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/CSharp.java
@@ -75,81 +75,57 @@
 /**
  *  Compiles C# source into executables or modules.
  *
- *  The task will only work on win2K until other platforms support
- *  csc.exe or an equivalent. CSC.exe must be on the execute path too. <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. <p>
- *
+ * csc.exe must be on the execute path, unless another executable
+ * or the full path to that executable is specified in the <tt>executable</tt>
+ * parameter
+ * <p>
+ * All parameters are optional: &lt;csc/&gt; should suffice to produce a debug
+ * build of all *.cs files. However, naming an <tt>destFile</tt>stops the
+ * csc compiler from choosing an output name from random, and
+ * allows the dependency checker to determine if the file is out of date.
+ * <p>
  *  The task is a directory based task, so attributes like <b>includes="*.cs"
  *  </b> and <b>excludes="broken.cs"</b> can be used to control the files pulled
  *  in. By default, all *.cs files from the project folder down are included in
  *  the command. When this happens the output file -if not specified- is taken
  *  as the first file in the list, which may be somewhat hard to control.
- *  Specifying the output file with <b>'outfile'</b> seems prudent. <p>
+ *  Specifying the output file with <tt>destFile</tt> seems prudent. <p>
  *
- *  <p>
+ * <p>
+ * For more complex source trees, nested <tt>src</tt> elemements can be
+ * supplied. When such an element is present, the implicit fileset is ignored.
+ * This makes sense, when you think about it :)
+ * <p>
  *
- *  TODO
- *  <ol>
- *    <li> is incremental build still broken in beta-1?
- *    <li> is Win32Icon broken?
- *    <li> all the missing options
- *  </ol>
- *  <p>
+ * References to external files can be made through the references attribute,
+ * or (since Ant1.6), via nested &lt;reference&gt; filesets. With the latter,
+ * the timestamps of the references are also used in the dependency
+ * checking algorithm.
+ * <p>
  *
- *  History
- *  <Table>
+ * Example
  *
- *    <tr>
- *
- *      <td>
- *        0.3
- *      </td>
- *
- *      <td>
- *        Beta 1 edition
- *      </td>
- *
- *      <td>
- *        To avoid having to remember which assemblies to include, the task
- *        automatically refers to the main dotnet libraries in Beta1.
- *      </tr>
- *
- *      <tr>
- *
- *        <td>
- *          0.2
- *        </td>
- *
- *        <td>
- *          Slightly different
- *        </td>
- *
- *        <td>
- *          Split command execution to a separate class;
- *        </tr>
- *
- *        <tr>
- *
- *          <td>
- *            0.1
- *          </td>
- *
- *          <td>
- *            "I can't believe it's so rudimentary"
- *          </td>
- *
- *          <td>
- *            First pass; minimal builds only support;
- *          </tr>
- *
- *        </table>
+ * <pre>&lt;csc
+ * 	optimize=&quot;true&quot;
+ * 	debug=&quot;false&quot;
+ * 	docFile=&quot;documentation.xml&quot;
+ * 	warnLevel=&quot;4&quot;
+ * 	unsafe=&quot;false&quot;
+ * 	targetType=&quot;exe&quot;
+ * 	incremental=&quot;false&quot;
+ * 	mainClass = &quot;MainApp&quot;
+ * 	destFile=&quot;NetApp.exe&quot;
+ * 	&gt;
+ * 	     &lt;src dir="src" includes="*.cs" /&gt;
+ *       &lt;reference file="${testCSC.dll}" /&gt;
+ *       &lt;define name="RELEASE" /&gt;
+ *       &lt;define name="DEBUG" if="debug.property"/&gt;
+ *       &lt;define name="def3" unless="def3.property"/&gt;
+ *    &lt;/csc&gt;
+ * </pre>
  *
  *
- * @author      Steve Loughran steve_l@iseran.com
- * @version     0.5
+ * @author      Steve Loughran
  * @ant.task    name="csc" category="dotnet"
  * @since Ant 1.3
  */
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/DotnetCompile.java b/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/DotnetCompile.java
index e6ab0ff..a963682 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/DotnetCompile.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/DotnetCompile.java
@@ -115,7 +115,7 @@
     /**
      *  flag to enable automatic reference inclusion
      */
-    private boolean includeDefaultReferences;
+    private boolean includeDefaultReferences = true;
 
     /**
      *  icon for incorporation into apps
@@ -313,7 +313,7 @@
      * in dotnet, and tells the compiler to link in mscore.dll.
      *
      *  set the automatic reference inclusion flag on or off this flag controls
-     *  the string of references and the /nostdlib option in CSC
+     *  the /nostdlib option in CSC
      *
      *@param  f  on/off flag
      */
@@ -642,8 +642,6 @@
     }
 
 
-
-
     /**
      * add a define to the list of definitions
      * @param define
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/Ilasm.java b/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/Ilasm.java
index 6cb3236..718c40b 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/Ilasm.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/Ilasm.java
@@ -69,9 +69,11 @@
 import org.apache.tools.ant.types.FileSet;
 
 /**
- *  Assembles .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>
+ * Assembles .NET Intermediate Language files.
+ * ilasm.exe must be on the execute path, unless another executable
+ * or the full path to that executable is specified in the <tt>executable</tt>
+ * parameter
+ *  <p>
  *
  *  <p>
  *
@@ -82,13 +84,13 @@
  *  /out:file ... /verbose is used some places; /quiet here in ildasm... etc.]
  *  It would be nice if someone made all the command line tools consistent (and
  *  not as brittle as the java cmdline tools) <p>
- *
+ *  <p>
  *  The task is a directory based task, so attributes like <b>includes="*.il"
  *  </b> and <b>excludes="broken.il"</b> can be used to control the files pulled
  *  in. You can also use nested &lt;src&gt filesets to refer to source.
- *
- * @author     Steve Loughran steve_l@iseran.com
- * @version    0.6
+ * <p>
+ * 
+ * @author     Steve Loughran
  * @ant.task    name="ilasm" category="dotnet"
  */
 
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/Ildasm.java b/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/Ildasm.java
index dde841d..5075635 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/Ildasm.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/Ildasm.java
@@ -56,6 +56,7 @@
 import org.apache.tools.ant.types.EnumeratedAttribute;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Task;
+import org.apache.tools.ant.Project;
 import org.apache.tools.ant.util.FileUtils;
 
 import java.io.File;
@@ -65,7 +66,7 @@
  * into ILASM assembly code. Useful when converting imported typelibs into
  * assembler before patching and recompiling, as one has to do when doing
  * advanced typelib work.
- *
+ * <p>
  * As well as generating the named output file, the ildasm program
  * will also generate resource files <code>Icons.resources</code>
  * <code>Message.resources</code> and a .res file whose filename stub is derived
@@ -76,13 +77,13 @@
  * creates the resources in the directory specified by <code>resourceDir</code> if
  * set, else in the same directory as the <code>destFile</code>.
  *
- *
+ * <p>
  * This task requires the .NET SDK installed and ildasm on the path.
  * To disassemble using alternate CLR systems, set the executable attribute
  * to the name/path of the alternate implementation -one that must
  * support all the classic ildasm commands.
  *
- *
+ * <p>
  * Dependency logic: the task executes the command if the output file is missing
  * or older than the source file. It does not take into account changes
  * in the options of the task, or timestamp differences in resource files.
@@ -90,6 +91,7 @@
  * .il file in place with some error message. To prevent this from confusing
  * the dependency logic, the file specified by the <code>dest</code>
  * attribute is <i>always</i> deleted after an unsuccessful build.
+ * @ant.task category="dotnet"
  */
 public class Ildasm extends Task {
 
@@ -351,16 +353,26 @@
     }
 
     /**
-     *
-     * @return
+     * Test for disassembly being needed; use existence and granularity
+     * correct date stamps
+     * @return true iff a rebuild is required.
      */
     private boolean isDisassemblyNeeded() {
         if (!destFile.exists()) {
+            log("Destination file does not exist: a build is required",
+                    Project.MSG_VERBOSE);
             return true;
         }
         long sourceTime = sourceFile.lastModified();
         long destTime = destFile.lastModified();
-        return sourceTime > (destTime + FileUtils.newFileUtils().getFileTimestampGranularity());
+        if(sourceTime > (destTime + FileUtils.newFileUtils().getFileTimestampGranularity())) {
+            log("Source file is newer than the dest file: a rebuild is required",
+                    Project.MSG_VERBOSE);
+            return true;
+        } else {
+            log("The .il file is up to date", Project.MSG_VERBOSE);
+            return false;
+        }
 
     }
     /**
@@ -369,6 +381,9 @@
      */
     public void execute() throws BuildException {
         validate();
+        if(!isDisassemblyNeeded()) {
+            return;
+        }
         NetCommand command = new NetCommand(this, "ildasm", executable);
         command.setFailOnError(true);
         //fill in args
@@ -422,6 +437,7 @@
         } catch (BuildException e) {
             //forcibly delete the output file in case of trouble
             if (destFile.exists()) {
+                log("Deleting destination file as it may be corrupt");
                 destFile.delete();
             }
             //then rethrow the exception
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/ImportTypelib.java b/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/ImportTypelib.java
index 1c0e9bf..f361836 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/ImportTypelib.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/ImportTypelib.java
@@ -57,16 +57,28 @@
 import org.apache.tools.ant.Task;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Project;
+import org.apache.tools.ant.util.FileUtils;
 
 import java.io.File;
 
 /**
- * Wrapper to .NET's tlbimport; imports a tlb file to a NET assembly
+ * Import a COM type library into the .NET framework.
+ * <p>
+ *
+ * This task is a wrapper to .NET's tlbimport; it imports a tlb file to a NET assembly
  * by generating a binary assembly (.dll) that contains all the binding
- * metadata. Uses date timestamps to minimise rebuilds.
+ * metadata. It uses date timestamps to minimise rebuilds.
+ * <p>
+ * Example
+ * <pre>
+ *     &lt;importtypelib
+ *       srcfile="xerces.tlb"
+ *       destfile="xerces.dll"
+ *       namespace="Apache.Xerces"/&gt;
+ * </pre>
  * @since Ant 1.6
  * @author steve loughran
- * @ant.task    name="ImportTypelib" category="dotnet"
+ * @ant.task category="dotnet"
  */
 public class ImportTypelib extends Task {
 
@@ -162,7 +174,7 @@
             throw new BuildException(
                     "destination file is a directory");
         }
-        if (srcFile != null || !srcFile.exists()) {
+        if (srcFile == null || !srcFile.exists()) {
             throw new BuildException(
                     "source file does not exist");
         }
@@ -176,6 +188,31 @@
     }
 
     /**
+     * Test for disassembly being needed; use existence and granularity
+     * correct date stamps
+     * @return true iff a rebuild is required.
+     */
+    private boolean isExecuteNeeded() {
+        if (!destFile.exists()) {
+            log("Destination file does not exist: a build is required",
+                    Project.MSG_VERBOSE);
+            return true;
+        }
+        long sourceTime = srcFile.lastModified();
+        long destTime = destFile.lastModified();
+        if (sourceTime > (destTime + FileUtils.newFileUtils().getFileTimestampGranularity())) {
+            log("Source file is newer than the dest file: a rebuild is required",
+                    Project.MSG_VERBOSE);
+            return true;
+        } else {
+            log("The output file is up to date", Project.MSG_VERBOSE);
+            return false;
+        }
+
+    }
+
+
+    /**
      * Create a typelib command
      * @exception BuildException if something goes wrong with the build
      */
@@ -185,9 +222,7 @@
             + " to assembly " + destFile
             + " in namespace " + namespace, Project.MSG_VERBOSE);
         //rebuild unless the dest file is newer than the source file
-        if (srcFile.exists() && destFile.exists()
-            && srcFile.lastModified() <= destFile.lastModified()) {
-            log("The typelib is up to date", Project.MSG_VERBOSE);
+        if(!isExecuteNeeded()) {
             return;
         }
 
@@ -205,5 +240,6 @@
             command.addArgument("/unsafe");
         }
         command.addArgument(extraOptions);
+        command.runCommand();
     }
 }
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/JSharp.java b/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/JSharp.java
index 65ce8f6..a23d6b3 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/JSharp.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/JSharp.java
@@ -58,14 +58,18 @@
 
 /**
  * Compile J# source down to a managed .NET application.
+ * <p>
  * J# is not Java. But it is the language closest to Java in the .NET framework.
- * This task compiles jsharp source (assumes a .jsl extension, incidentally), and
+ * This task compiles jsharp source (.java files), and
  * generates a .NET managed exe or dll.
- * See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vjsharp/html/vjoriMicrosoftVisualJ.asp
- * for vjc command options in glory detail.
+ * <p>
+ *
+ * @see <A=ref="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vjsharp/html/vjoriMicrosoftVisualJ.asp">
+ * Visual J++ online documentation</a>
+ *
  * @author Steve Loughran
  * @since ant1.6
- * @ant.task    name="jsharpc" category="dotnet"
+ * @ant.task category="dotnet"
  */
 public class JSharp extends DotnetCompile {
 
@@ -120,14 +124,12 @@
         return ";";
     }
 
-
-
     /**
      * Get the extension of filenames to compile.
      * @return The string extension of files to compile.
      */
     public String getFileExtension() {
-        return ".jsl";
+        return ".java";
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/VisualBasicCompile.java b/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/VisualBasicCompile.java
index e5e9bb2..737cbdd 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/VisualBasicCompile.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/VisualBasicCompile.java
@@ -59,13 +59,52 @@
 
 /**
  * This task compiles Visual Basic.NET source into executables or modules.
- * The task will only work on win2K until other platforms support vbc.exe or
- * an equivalent. VBC.exe must be on the execute path, too.
+ * The task requires vbc.exe on the execute path, unless it or an equivalent
+ * program is specified in the <tt>executable</tt> parameter
  *
  * <p>
  * All parameters are optional: &lt;vbc/&gt; should suffice to produce a debug
  * build of all *.vb files.
  *
+ * <p>
+
+ * The task is a directory based task, so attributes like
+ * <tt>includes=&quot;**\/*.vb&quot;</tt> and
+ * <tt>excludes=&quot;broken.vb&quot;</tt> can be used to control
+ * the files pulled in. By default,
+ * all *.vb files from the project folder down are included in the command.
+ * When this happens the destFile -if not specified-
+ * is taken as the first file in the list, which may be somewhat hard to control.
+   Specifying the output file with <tt>destfile</tt> is prudent.
+ </p>
+ <p>
+ * Also, dependency checking only works if destfile is set.
+ *
+ * As with &lt;csc&gt; nested <tt>src</tt> filesets of source,
+ * reference filesets, definitions and resources can be provided.
+ *
+ * <p>
+ * Example
+ * </p>
+ * <pre>&lt;vbc
+ *   optimize=&quot;true&quot;
+ *   debug=&quot;false&quot;
+ *   warnLevel=&quot;4&quot;
+ *   targetType=&quot;exe&quot;
+ *   definitions=&quot;RELEASE&quot;
+ *   excludes=&quot;src/unicode_class.vb&quot;
+ *   mainClass = &quot;MainApp&quot;
+ *   destFile=&quot;NetApp.exe&quot;
+ *   optionExplicit=&quot;true&quot;
+ *   optionCompare=&quot;text&quot;
+ *   references="System.Xml,System.Web.Xml"
+ *   &gt;
+ *          &lt;reference file="${testCSC.dll}" /&gt;
+ *          &lt;define name="RELEASE" /&gt;
+ *          &lt;define name="DEBUG" if="debug.property"/&gt;
+ *          &lt;define name="def3" unless="def2.property"/&gt;
+ *   &lt;/vbc&gt;
+ </pre>
  * @author Brian Felder bfelder@providence.org
  * @author Steve Loughran
  * @ant.task    name="vbc" category="dotnet"
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/WsdlToDotnet.java b/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/WsdlToDotnet.java
index 2eeb8e4..d0ce89d 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/WsdlToDotnet.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/dotnet/WsdlToDotnet.java
@@ -60,11 +60,23 @@
 /**
  * Converts a WSDL file or URL resource into a .NET language.
  *
+ * Why add a wrapper to the MS WSDL tool?
+ * So that you can verify that your web services, be they written with Axis or
+ *anyone else's SOAP toolkit, work with .NET clients.
+ *
+ *This task is dependency aware when using a file as a source and destination;
+ *so if you &lt;get&gt; the file (with <code>usetimestamp="true"</code>) then
+ *you only rebuild stuff when the WSDL file is changed. Of course,
+ *if the server generates a new timestamp every time you ask for the WSDL,
+ *this is not enough...use the &lt;filesmatch&gt; &lt;condition&gt; to
+ *to byte for byte comparison against a cached WSDL file then make
+ *the target conditional on that test failing.
+
  * See "Creating an XML Web Service Proxy", "wsdl.exe" docs in
  * the framework SDK documentation
- * @author      Steve Loughran steve_l@iseran.com
+ * @author      Steve Loughran 
  * @version     0.5
- * @ant.task    name="wsdltodotnet" category="dotnet"
+ * @ant.task    category="dotnet"
  * @since       Ant 1.5
  */
 
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java
index 05105a1..289f392 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WebsphereDeploymentTool.java
@@ -275,9 +275,9 @@
     /**
      * Flag to disable informational messages; optional, default false.
      *
-     * @param noinfom
+     * @param noinform if true disables informational messages
      */
-    public void setNoinform(boolean noinfom) {
+    public void setNoinform(boolean noinform) {
         this.noinform = noinform;
     }
 
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java b/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java
index d6cb01c..0e082ab 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/extension/ExtensionUtil.java
@@ -1,7 +1,7 @@
 /*
  * The Apache Software License, Version 1.1
  *
- * Copyright (c) 2002 The Apache Software Foundation.  All rights
+ * Copyright (c) 2002-2003 The Apache Software Foundation.  All rights
  * reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -238,7 +238,11 @@
         throws BuildException {
         try {
             final JarFile jarFile = new JarFile(file);
-            return jarFile.getManifest();
+            Manifest m = jarFile.getManifest();
+            if (m == null) {
+                throw new BuildException(file + " doesn't have a MANIFEST");
+            }
+            return m;
         } catch (final IOException ioe) {
             throw new BuildException(ioe.getMessage(), ioe);
         }
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
index 8ac0100..9d57b67 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
@@ -568,7 +568,10 @@
      * @since Ant 1.6
      * @param asserts assertion set
      */
-    public void setAssertions(Assertions asserts) {
+    public void addAssertions(Assertions asserts) {
+        if (commandline.getAssertions() != null) {
+            throw new BuildException("Only one assertion declaration is allowed");
+        }
         commandline.setAssertions(asserts);
     }
 
@@ -766,6 +769,7 @@
         File propsFile =
             FileUtils.newFileUtils().createTempFile("junit", ".properties",
                 tmpDir != null ? tmpDir : getProject().getBaseDir());
+        propsFile.deleteOnExit();
         cmd.createArgument().setValue("propsfile="
                                       + propsFile.getAbsolutePath());
         Hashtable p = getProject().getProperties();
@@ -1153,9 +1157,9 @@
                             OutputStream out) {
         formatter.setOutput(out);
         formatter.startTestSuite(test);
-        test.setCounts(0, 0, 1);
+        test.setCounts(1, 0, 1);
         Test t = new Test() {
-            public int countTestCases() { return 0; }
+            public int countTestCases() { return 1; }
             public void run(TestResult r) {
                 throw new AssertionFailedError("Timeout occurred");
             }
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java
index 985dcbe..c67b6e1 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java
@@ -247,11 +247,9 @@
             try {
                 // check if there is a suite method
                 suiteMethod = testClass.getMethod("suite", new Class[0]);
-            } catch (Exception e) {
+            } catch (NoSuchMethodException e) {
                 // no appropriate suite method found. We don't report any
-                // error here since it might be perfectly normal. We don't
-                // know exactly what is the cause, but we're doing exactly
-                // the same as JUnit TestRunner do. We swallow the exceptions.
+                // error here since it might be perfectly normal.
             }
             if (suiteMethod != null) {
                 // if there is a suite method available, then try
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/PlainJUnitResultFormatter.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/PlainJUnitResultFormatter.java
index fb7c0ad..cdfb268 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/PlainJUnitResultFormatter.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/PlainJUnitResultFormatter.java
@@ -1,7 +1,7 @@
 /*
  * The Apache Software License, Version 1.1
  *
- * Copyright (c) 2000-2002 The Apache Software Foundation.  All rights
+ * Copyright (c) 2000-2003 The Apache Software Foundation.  All rights
  * reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -198,12 +198,12 @@
      * <p>A Test is finished.
      */
     public void endTest(Test test) {
+        if (Boolean.TRUE.equals(failed.get(test))) {
+            return;
+        }
         synchronized (wri) {
             wri.print("Testcase: "
                       + JUnitVersionHelper.getTestCaseName(test));
-            if (Boolean.TRUE.equals(failed.get(test))) {
-                return;
-            }
             Long l = (Long) testStarts.get(test);
             double seconds = 0;
             // can be null if an error occured in setUp
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/metamata/AbstractMetamataTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/metamata/AbstractMetamataTask.java
index 88a238f..bc3708b 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/metamata/AbstractMetamataTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/metamata/AbstractMetamataTask.java
@@ -320,7 +320,10 @@
     }
 
     protected final File createTmpFile() {
-        return FileUtils.newFileUtils().createTempFile("metamata", ".tmp", getProject().getBaseDir());
+        File tmpFile = FileUtils.newFileUtils()
+            .createTempFile("metamata", ".tmp", getProject().getBaseDir());
+        tmpFile.deleteOnExit();
+        return tmpFile;
     }
 
     /**
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java b/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java
index a78fecf..2b79484 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java
@@ -273,7 +273,7 @@
             // construct it
             if (newroots.containsKey("")) {
                 // we are going to scan everything anyway
-                scandir(remotedir, "", true);
+                scandir(rootPath, "", true);
             } else {
                 // only scan directories that can include matched files or
                 // directories
@@ -1357,30 +1357,34 @@
                 }
                 bw = new BufferedWriter(new FileWriter(listing));
             }
-
-            for (int i = 0; i < dsfiles.length; i++) {
-                switch (action) {
-                    case SEND_FILES:
-                        sendFile(ftp, dir, dsfiles[i]);
-                        break;
-                    case GET_FILES:
-                        getFile(ftp, dir, dsfiles[i]);
-                        break;
-                    case DEL_FILES:
-                        delFile(ftp, dsfiles[i]);
-                        break;
-                    case LIST_FILES:
-                        listFile(ftp, bw, dsfiles[i]);
-                        break;
-                    case CHMOD:
-                        doSiteCommand(ftp, "chmod " + chmod + " " + resolveFile(dsfiles[i]));
-                        transferred++;
-                        break;
-                    case RM_DIR:
-                        rmDir(ftp, dsfiles[i]);
-                        break;
-                    default:
-                        throw new BuildException("unknown ftp action " + action);
+            if (action == RM_DIR) {
+                // to remove directories, start by the end of the list
+                // the trunk does not let itself be removed before the leaves
+                for (int i = dsfiles.length - 1; i >= 0; i--) {
+                    rmDir(ftp, dsfiles[i]);
+                }
+            }   else {
+                for (int i = 0; i < dsfiles.length; i++) {
+                    switch (action) {
+                        case SEND_FILES:
+                            sendFile(ftp, dir, dsfiles[i]);
+                            break;
+                        case GET_FILES:
+                            getFile(ftp, dir, dsfiles[i]);
+                            break;
+                        case DEL_FILES:
+                            delFile(ftp, dsfiles[i]);
+                            break;
+                        case LIST_FILES:
+                            listFile(ftp, bw, dsfiles[i]);
+                            break;
+                        case CHMOD:
+                            doSiteCommand(ftp, "chmod " + chmod + " " + resolveFile(dsfiles[i]));
+                            transferred++;
+                            break;
+                        default:
+                            throw new BuildException("unknown ftp action " + action);
+                    }
                 }
             }
         } finally {
@@ -1572,6 +1576,7 @@
                 throw new BuildException(ioe, getLocation());
             }
             if (!found) {
+                localFile.deleteOnExit();
                 return localFile;
             }
         }
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Submit.java b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Submit.java
index 3989b00..1baad54 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Submit.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Submit.java
@@ -98,7 +98,7 @@
      */
     public void execute() throws BuildException {
         if (change != null) {
-            execP4Command("submit -c " + change, (P4HandlerAdapter) new P4SubmitAdapter());
+            execP4Command("submit -c " + change, (P4HandlerAdapter) new P4SubmitAdapter(this));
         } else {
             //here we'd parse the output from change -o into submit -i
             //in order to support default change.
@@ -109,13 +109,16 @@
     /**
      * internal class used to process the output of p4 submit
      */
-    public class P4SubmitAdapter extends P4HandlerAdapter {
+    public class P4SubmitAdapter extends SimpleP4OutputHandler {
+        public P4SubmitAdapter(P4Base parent) {
+            super(parent);
+        }
         /**
          * process a line of stdout/stderr coming from Perforce
          * @param line line of stdout or stderr coming from Perforce
          */
         public void process(String line) {
-            log(line, Project.MSG_VERBOSE);
+            super.process(line);
             getProject().setProperty("p4.needsresolve", "0");
             // this type of output might happen
             // Change 18 renamed change 20 and submitted.
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/CovMerge.java b/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/CovMerge.java
index e5eb25e..daa3812 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/CovMerge.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/CovMerge.java
@@ -196,6 +196,7 @@
     protected File createParamFile() throws BuildException {
         File[] snapshots = getSnapshots();
         File file = createTempFile("jpcovm");
+        file.deleteOnExit();
         FileWriter fw = null;
         try {
             fw = new FileWriter(file);
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/Coverage.java b/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/Coverage.java
index c9c7020..e19f155 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/Coverage.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/sitraka/Coverage.java
@@ -449,6 +449,7 @@
     protected File createParamFile() throws BuildException {
         //@todo change this when switching to JDK 1.2 and use File.createTmpFile()
         File file = createTempFile("jpcov");
+        file.deleteOnExit();
         log("Creating parameter file: " + file, Project.MSG_VERBOSE);
 
         // options need to be one per line in the parameter file
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/splash/SplashTask.java b/src/main/org/apache/tools/ant/taskdefs/optional/splash/SplashTask.java
index 21a65e8..d77906b 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/splash/SplashTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/splash/SplashTask.java
@@ -198,7 +198,13 @@
         }
 
         if (in == null) {
-            in = SplashTask.class.getClassLoader().getResourceAsStream("images/ant_logo_large.gif");
+            ClassLoader cl = SplashTask.class.getClassLoader();
+            if (cl != null) {
+                in = cl.getResourceAsStream("images/ant_logo_large.gif");
+            } else {
+                in = ClassLoader
+                    .getSystemResourceAsStream("images/ant_logo_large.gif");
+            }
         }
 
         if (in != null) {
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHBase.java b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHBase.java
index cbb97ea..385f6a9 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHBase.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHBase.java
@@ -77,7 +77,6 @@
     private String host;
     private String keyfile;
     private String knownHosts;
-    private boolean trust = false;
     private int port = SSH_PORT;
     private boolean failOnError = true;
     private SSHUserInfo userInfo;
@@ -185,7 +184,6 @@
     public void init() throws BuildException {
         super.init();
         this.knownHosts = System.getProperty("user.home") + "/.ssh/known_hosts";
-        this.trust = false;
         this.port = SSH_PORT;
     }
 
@@ -195,7 +193,7 @@
             jsch.addIdentity(userInfo.getKeyfile());
         }
 
-        if (knownHosts != null) {
+        if (!userInfo.getTrust() && knownHosts != null) {
             log("Using known hosts: " + knownHosts, Project.MSG_DEBUG);
             jsch.setKnownHosts(knownHosts);
         }
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHUserInfo.java b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHUserInfo.java
index b2ae766..4d002dc 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHUserInfo.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHUserInfo.java
@@ -70,7 +70,7 @@
 
     public SSHUserInfo() {
         super();
-        this.trustAllCertificates = true;
+        this.trustAllCertificates = false;
     }
 
     public SSHUserInfo(String password, boolean trustAllCertificates) {
@@ -147,6 +147,13 @@
     }
 
     /**
+     * @return whether to trust or not.
+     */
+    public boolean getTrust() {
+        return this.trustAllCertificates;
+    }
+
+    /**
      * Returns the passphrase.
      * @return String
      */
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/starteam/StarTeamLabel.java b/src/main/org/apache/tools/ant/taskdefs/optional/starteam/StarTeamLabel.java
index 1e91d42..3672569 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/starteam/StarTeamLabel.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/starteam/StarTeamLabel.java
@@ -93,7 +93,7 @@
     private String description;
 
     /**
-     * If true, this will be a build label.  If false, it will be a build
+     * If true, this will be a build label.  If false, it will be a non-build
      * label.  The default is false.  Has no effect if revision label is
      * true.
      */
@@ -123,7 +123,7 @@
     }
 
     /**
-     * Optional description of the label to be stored in the StarTeam project.
+     * Description of the label to be stored in the StarTeam project.
      */
     public void setDescription(String description) {
         this.description = description;
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java b/src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java
index b1e341e..abb9ce4 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java
@@ -417,6 +417,7 @@
         File parentDir = new File(parentStr);
         FileUtils fu = FileUtils.newFileUtils();
         File temp = fu.createTempFile("symlink", ".tmp", parentDir);
+        temp.deleteOnExit();
         try {
             try {
                 fu.rename(canfil, temp);
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/vss/MSVSS.java b/src/main/org/apache/tools/ant/taskdefs/optional/vss/MSVSS.java
index d79454b..93ef91b 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/vss/MSVSS.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/vss/MSVSS.java
@@ -377,18 +377,24 @@
      */
     protected String getLabel() {
         if (m_Label != null && m_Label.length() > 0) {
-            if (m_Label.length() > 31) {
-                String label = m_Label.substring(0, 30);
-                log("Label is longer than 31 characters, truncated to: " + label, Project.MSG_WARN);
-                return FLAG_LABEL + label;
-            } else {
-                return FLAG_LABEL + m_Label;
-            }
+                return FLAG_LABEL + getShortLabel();
         } else {
             return "";
         }
     }
-
+    /**
+     * return at most the 30 first chars of the label, logging a warning message about the truncation
+     * @return at most the 30 first chars of the label
+     */
+    private String getShortLabel() {
+        if (m_Label !=  null && m_Label.length() > 31) {
+            String label = m_Label.substring(0, 30);
+            log("Label is longer than 31 characters, truncated to: " + label, Project.MSG_WARN);
+            return label;
+        } else {
+            return m_Label;
+        }
+    }
     /**
      *  Gets the style string. "-Lbuild1"
      *
@@ -410,10 +416,10 @@
         } else if (m_Date != null) {
             return FLAG_VERSION_DATE + m_Date;
         } else {
-            // Use getLabel() so labels longer then 30 char are truncated
+            // Use getShortLabel() so labels longer then 30 char are truncated
             // and the user is warned
-            String label = getLabel();
-            if (!label.equals("") && label != null) {
+            String label = getShortLabel();
+            if (label != null && !label.equals("")) {
                 return FLAG_VERSION_LABEL + label;
             }
         }
diff --git a/src/main/org/apache/tools/ant/types/Assertions.java b/src/main/org/apache/tools/ant/types/Assertions.java
index f2b9e7c..2d37ca9 100644
--- a/src/main/org/apache/tools/ant/types/Assertions.java
+++ b/src/main/org/apache/tools/ant/types/Assertions.java
@@ -55,14 +55,15 @@
 package org.apache.tools.ant.types;
 
 import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
 
 import java.util.List;
 import java.util.ArrayList;
 import java.util.Iterator;
 
 /**
- * implement the assertion datatype. This type describes
- * assertion settings for the &lt;java&gt; task and derivatives.
+ * The assertion datatype. This type describes
+ * assertion settings for the &lt;java&gt; task and others.
  * One can set the system assertions, and enable/disable those in
  * packages & classes.
  * Assertions can only be enabled or disabled when forking Java.
@@ -127,7 +128,7 @@
      * disable assertions
      * @param assertion
      */
-    public void addDisable(EnabledAssertion assertion) {
+    public void addDisable(DisabledAssertion assertion) {
         checkChildrenAllowed();
         assertionList.add(assertion);
     }
@@ -196,11 +197,14 @@
      * @param commandList
      */
     public void applyAssertions(List commandList) {
+        getProject().log("Applying assertions",Project.MSG_DEBUG);
         Assertions clause = getFinalReference();
         //do the system assertions
         if (Boolean.TRUE.equals(clause.enableSystemAssertions)) {
+            getProject().log("Enabling system assertions", Project.MSG_DEBUG);
             commandList.add("-enablesystemassertions");
         } else if (Boolean.FALSE.equals(clause.enableSystemAssertions)) {
+            getProject().log("disabling system assertions", Project.MSG_DEBUG);
             commandList.add("-disablesystemassertions");
         }
 
@@ -209,6 +213,7 @@
         while (it.hasNext()) {
             BaseAssertion assertion = (BaseAssertion) it.next();
             String arg = assertion.toCommand();
+            getProject().log("adding assertion "+arg, Project.MSG_DEBUG);
             commandList.add(arg);
         }
     }
diff --git a/src/main/org/apache/tools/ant/types/XMLCatalog.java b/src/main/org/apache/tools/ant/types/XMLCatalog.java
index ac40024..39cb4dd 100644
--- a/src/main/org/apache/tools/ant/types/XMLCatalog.java
+++ b/src/main/org/apache/tools/ant/types/XMLCatalog.java
@@ -208,7 +208,7 @@
      * @return the elements of the catalog - ResourceLocation objects
      */
     private Vector getElements() {
-        return elements;
+        return getRef().elements;
     }
 
     /**
@@ -217,7 +217,7 @@
      * @return the classpath
      */
     private Path getClasspath() {
-        return classpath;
+        return getRef().classpath;
     }
 
     /**
@@ -335,7 +335,7 @@
      * @return the catalog path
      */
     public Path getCatalogPath() {
-        return this.catalogPath;
+        return getRef().catalogPath;
     }
 
 
@@ -421,17 +421,6 @@
         if (!elements.isEmpty()) {
             throw tooManyAttributes();
         }
-        // change this to get the objects from the other reference
-        Object o = r.getReferencedObject(getProject());
-        // we only support references to other XMLCatalogs
-        if (o instanceof XMLCatalog) {
-            // set all elements from referenced catalog to this one
-            XMLCatalog catalog = (XMLCatalog) o;
-            setElements(catalog.getElements());
-        } else {
-            String msg = r.getRefId() + " does not refer to an XMLCatalog";
-            throw new BuildException(msg);
-        }
         super.setRefid(r);
     }
 
@@ -443,6 +432,10 @@
     public InputSource resolveEntity(String publicId, String systemId)
         throws SAXException, IOException {
 
+        if (isReference()) {
+            return getRef().resolveEntity(publicId, systemId);
+        }
+
         if (!isChecked()) {
             // make sure we don't have a circular reference here
             Stack stk = new Stack();
@@ -472,6 +465,10 @@
     public Source resolve(String href, String base)
         throws TransformerException {
 
+        if (isReference()) {
+            return getRef().resolve(href, base);
+        }
+
         if (!isChecked()) {
             // make sure we don't have a circular reference here
             Stack stk = new Stack();
@@ -516,6 +513,16 @@
     }
 
     /**
+     * @since Ant 1.6
+     */
+    private XMLCatalog getRef() {
+        if (!isReference()) {
+            return this;
+        }
+        return (XMLCatalog) getCheckedRef(XMLCatalog.class, "xmlcatalog");
+    }
+
+    /**
      * The instance of the CatalogResolver strategy to use.
      */
     private CatalogResolver catalogResolver = null;
@@ -576,9 +583,8 @@
                     && getCatalogPath().list().length != 0) {
                         log("Warning: catalogpath listing external catalogs"
                             + " will be ignored", Project.MSG_WARN);
-                        log("Failed to load Apache resolver: "
-                            + ex, Project.MSG_DEBUG);
                     }
+                log("Failed to load Apache resolver: " + ex, Project.MSG_DEBUG);
             }
         }
         return catalogResolver;
diff --git a/src/main/org/apache/tools/ant/types/ZipFileSet.java b/src/main/org/apache/tools/ant/types/ZipFileSet.java
index d3aaaea..f2fb884 100644
--- a/src/main/org/apache/tools/ant/types/ZipFileSet.java
+++ b/src/main/org/apache/tools/ant/types/ZipFileSet.java
@@ -172,10 +172,7 @@
      * @param prefix The prefix to prepend to entries in the zip file.
      */
     public void setPrefix(String prefix) {
-        if (isReference()) {
-             throw tooManyAttributes();
-         }
-        if (!fullpath.equals("")) {
+        if (!prefix.equals("") && !fullpath.equals("")) {
             throw new BuildException("Cannot set both fullpath and prefix attributes");
         }
         this.prefix = prefix;
@@ -198,10 +195,7 @@
      * @param fullpath the full pathname of the single entry in this fileset.
      */
     public void setFullpath(String fullpath) {
-        if (isReference()) {
-             throw tooManyAttributes();
-         }
-        if (!prefix.equals("")) {
+        if (!prefix.equals("") && !fullpath.equals("")) {
             throw new BuildException("Cannot set both fullpath and prefix attributes");
         }
         this.fullpath = fullpath;
@@ -246,9 +240,6 @@
      * @since Ant 1.5.2
      */
     public void setFileMode(String octalString) {
-        if (isReference()) {
-             throw tooManyAttributes();
-        }
         fileModeHasBeenSet = true;
         this.fileMode =
             UnixStat.FILE_FLAG | Integer.parseInt(octalString, 8);
@@ -284,9 +275,6 @@
      * @since Ant 1.5.2
      */
     public void setDirMode(String octalString) {
-        if (isReference()) {
-             throw tooManyAttributes();
-        }
         dirModeHasBeenSet = true;
         this.dirMode =
             UnixStat.DIR_FLAG | Integer.parseInt(octalString, 8);
@@ -328,7 +316,14 @@
         if (o instanceof ZipFileSet) {
             return (AbstractFileSet) o;
         } else if (o instanceof FileSet) {
-           return (new ZipFileSet((FileSet) o));
+            ZipFileSet zfs = new ZipFileSet((FileSet) o);
+            zfs.setPrefix(prefix);
+            zfs.setFullpath(fullpath);
+            zfs.fileModeHasBeenSet = fileModeHasBeenSet;
+            zfs.fileMode = fileMode;
+            zfs.dirModeHasBeenSet = dirModeHasBeenSet;
+            zfs.dirMode = dirMode;
+            return zfs;
         } else {
             String msg = getRefid().getRefId() + " doesn\'t denote a zipfileset or a fileset";
             throw new BuildException(msg);
diff --git a/src/main/org/apache/tools/ant/types/defaults.properties b/src/main/org/apache/tools/ant/types/defaults.properties
index e257088..6dd5200 100644
--- a/src/main/org/apache/tools/ant/types/defaults.properties
+++ b/src/main/org/apache/tools/ant/types/defaults.properties
@@ -19,4 +19,4 @@
 zipfileset=org.apache.tools.ant.types.ZipFileSet
 scriptfilter=org.apache.tools.ant.types.optional.ScriptFilter
 propertyset=org.apache.tools.ant.types.PropertySet
-assertion=org.apache.tools.ant.types.Assertion
\ No newline at end of file
+assertions=org.apache.tools.ant.types.Assertions
\ No newline at end of file
diff --git a/src/main/org/apache/tools/ant/util/FileUtils.java b/src/main/org/apache/tools/ant/util/FileUtils.java
index eada52f..cc6ae3a 100644
--- a/src/main/org/apache/tools/ant/util/FileUtils.java
+++ b/src/main/org/apache/tools/ant/util/FileUtils.java
@@ -824,6 +824,8 @@
      *   <li>DOS style paths that start with a drive letter will have
      *     \ as the separator.</li>
      * </ul>
+     * Unlike <code>File#getCanonicalPath()</code> it specifically doesn't
+     * resolve symbolic links.
      *
      * @param path the path to be normalized
      * @return the normalized version of the path.
@@ -938,6 +940,65 @@
     }
 
     /**
+     * Returns a VMS String representation of a <code>File</code> object.
+     * This is useful since the JVM by default internally converts VMS paths
+     * to Unix style.
+     * The returned String is always an absolute path.
+     * 
+     * @param f The <code>File</code> to get the VMS path for.
+     * @return The absolute VMS path to <code>f</code>.
+     */
+    public String toVMSPath(File f) {
+        // format: "DEVICE:[DIR.SUBDIR]FILE"
+        String osPath;
+        String path = normalize(f.getAbsolutePath()).getPath();
+        String name = f.getName();
+        boolean isAbsolute = path.charAt(0) == File.separatorChar;
+        // treat directories specified using .DIR syntax as files
+        boolean isDirectory = f.isDirectory() &&
+            !name.regionMatches(true, name.length() - 4, ".DIR", 0, 4); 
+
+        String device = null;
+        StringBuffer directory = null;
+        String file = null;
+
+        int index = 0;
+
+        if (isAbsolute) {
+            index = path.indexOf(File.separatorChar, 1);
+            if (index == -1) {
+                return path.substring(1) + ":[000000]";
+            } else {
+                device = path.substring(1, index++);
+            }
+        }
+        if (isDirectory) {
+            directory = new StringBuffer(path.substring(index).
+                                         replace(File.separatorChar, '.'));
+        } else {
+            int dirEnd =
+                path.lastIndexOf(File.separatorChar, path.length());
+            if (dirEnd == -1 || dirEnd < index) {
+                file = path.substring(index);
+            } else {
+                directory = new StringBuffer(path.substring(index, dirEnd).
+                                             replace(File.separatorChar, '.'));
+                index = dirEnd + 1;
+                if (path.length() > index) {
+                    file = path.substring(index);
+                }
+            }
+        }
+        if (!isAbsolute && directory != null) {
+            directory.insert(0, '.');
+        }
+        osPath = ((device != null) ? device + ":" : "") +
+            ((directory != null) ? "[" + directory + "]" : "") +
+            ((file != null) ? file : "");
+        return osPath;
+    }
+
+    /**
      * Create a temporary file in a given directory.
      *
      * <p>The file denoted by the returned abstract pathname did not
diff --git a/src/script/ant b/src/script/ant
index b383d44..38407ec 100644
--- a/src/script/ant
+++ b/src/script/ant
@@ -34,7 +34,7 @@
            ;;
 esac
 
-if [ -z "$ANT_HOME" ] ; then
+if [ -z "$ANT_HOME" -o ! -d "$ANT_HOME" ] ; then
   # try to find ANT
   if [ -d /opt/ant ] ; then
     ANT_HOME=/opt/ant
@@ -71,8 +71,6 @@
     ANT_HOME=`cygpath --unix "$ANT_HOME"`
   [ -n "$JAVA_HOME" ] &&
     JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-  [ -n "$CLASSPATH" ] &&
-    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
 fi
 
 # set ANT_LIB location
@@ -100,10 +98,6 @@
   exit 1
 fi
 
-if [ -n "$CLASSPATH" ] ; then
-  LOCALCLASSPATH="$CLASSPATH"
-fi
-
 # in rpm_mode get ant/optional/xml parser&api from JAVALIBDIR
 if $rpm_mode; then
   JAVALIBDIR=/usr/share/java
@@ -149,21 +143,20 @@
 if $cygwin; then
   ANT_HOME=`cygpath --windows "$ANT_HOME"`
   JAVA_HOME=`cygpath --windows "$JAVA_HOME"`
-  CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
   LOCALCLASSPATH=`cygpath --path --windows "$LOCALCLASSPATH"`
   CYGHOME=`cygpath --windows "$HOME"`
 fi
 
 if [ -n "$CYGHOME" ]; then
   if [ -n "$JIKESPATH" ]; then
-    exec "$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" -Djikes.class.path="$JIKESPATH" -Dcygwin.user.home="$CYGHOME" org.apache.tools.ant.launch.Launcher $ANT_ARGS "$@"
+    exec "$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" -Djikes.class.path="$JIKESPATH" -Dcygwin.user.home="$CYGHOME" org.apache.tools.ant.launch.Launcher $ANT_ARGS -lib "$CLASSPATH" "$@"
   else
-    exec "$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" -Dcygwin.user.home="$CYGHOME" org.apache.tools.ant.launch.Launcher $ANT_ARGS "$@"
+    exec "$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" -Dcygwin.user.home="$CYGHOME" org.apache.tools.ant.launch.Launcher $ANT_ARGS -lib "$CLASSPATH" "$@"
   fi
 else
   if [ -n "$JIKESPATH" ]; then
-    exec "$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" -Djikes.class.path="$JIKESPATH" org.apache.tools.ant.launch.Launcher $ANT_ARGS "$@"
+    exec "$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" -Djikes.class.path="$JIKESPATH" org.apache.tools.ant.launch.Launcher $ANT_ARGS -lib "$CLASSPATH" "$@"
   else
-    exec "$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" org.apache.tools.ant.launch.Launcher $ANT_ARGS "$@"
+    exec "$JAVACMD" $ANT_OPTS -classpath "$LOCALCLASSPATH" -Dant.home="${ANT_HOME}" org.apache.tools.ant.launch.Launcher $ANT_ARGS -lib "$CLASSPATH" "$@"
   fi
 fi
diff --git a/src/script/ant.bat b/src/script/ant.bat
index 6075466..aaa8232 100755
--- a/src/script/ant.bat
+++ b/src/script/ant.bat
@@ -54,7 +54,6 @@
 
 :checkJava
 set _JAVACMD=%JAVACMD%
-set LOCALCLASSPATH=%ANT_HOME%\lib\ant-launcher.jar;%CLASSPATH%
 
 if "%JAVA_HOME%" == "" goto noJavaHome
 if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome
@@ -68,15 +67,24 @@
 if not "%JIKESPATH%"=="" goto runAntWithJikes
 
 :runAnt
-"%_JAVACMD%" %ANT_OPTS% -classpath "%LOCALCLASSPATH%" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%
+if not "%CLASSPATH%"=="" goto runAntWithClasspath
+"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%
+goto end
+
+:runAntWithClasspath
+"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% -lib "%CLASSPATH%" %ANT_CMD_LINE_ARGS%
 goto end
 
 :runAntWithJikes
-"%_JAVACMD%" %ANT_OPTS% -classpath "%LOCALCLASSPATH%" "-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%
+if not "%CLASSPATH%"=="" goto runAntWithJikesAndClasspath
+"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%
+goto end
+
+:runAntWithJikesAndClasspath
+"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%" org.apache.tools.ant.launch.Launcher %ANT_ARGS%  -lib "%CLASSPATH%" %ANT_CMD_LINE_ARGS%
 goto end
 
 :end
-set LOCALCLASSPATH=
 set _JAVACMD=
 set ANT_CMD_LINE_ARGS=
 
diff --git a/src/script/runant.pl b/src/script/runant.pl
index 80fb2b1..5232a9d 100644
--- a/src/script/runant.pl
+++ b/src/script/runant.pl
@@ -39,7 +39,7 @@
 #use warnings;
 
 #and set $debug to 1 to turn on trace info
-my $debug=0;
+my $debug=1;
 
 #######################################################################
 #
@@ -74,26 +74,7 @@
         }
 
 #build up standard classpath
-my $localpath=$ENV{CLASSPATH};
-if ($localpath eq "")
-        {
-        print "warning: no initial classpath\n" if ($debug);
-        $localpath="";
-        }
-if ($onnetware == 1)
-{
-# avoid building a command line bigger than 512 characters - make localpath
-# only include the "extra" stuff, and add in the system classpath as an expanded
-# variable. 
-  $localpath="";
-} 
-
-if ($localpath eq "") {
-  $localpath = "$HOME/lib/ant-launcher.jar";
-} else {
-  $localpath = "$HOME/lib/ant-launcher.jar$s$localpath";
-}
-
+my $localpath = "$HOME/lib/ant-launcher.jar";
 #set JVM options and Ant arguments, if any
 my @ANT_OPTS=split(" ", $ENV{ANT_OPTS});
 my @ANT_ARGS=split(" ", $ENV{ANT_ARGS});
@@ -110,25 +91,21 @@
 
 my $CYGHOME = "";
 
+my $classpath=$ENV{CLASSPATH};
 if ($oncygwin == 1) {
   $localpath = `cygpath --path --windows $localpath`;
   chomp ($localpath);
+  if (! $classpath eq "")
+  {
+    $classpath = `cygpath --path --windows "$classpath"`;
+    chomp ($classpath);
+  }
   $HOME = `cygpath --path --windows $HOME`;
   chomp ($HOME);
   $CYGHOME = `cygpath --path --windows $ENV{HOME}`;
   chomp ($CYGHOME);
 }
-if ($onnetware == 1)
-{
-# make classpath literally $CLASSPATH; and then the contents of $localpath
-# this is to avoid pushing us over the 512 character limit
-# even skip the ; - that is already in $localpath
-  push @ARGS, "-classpath", "\$CLASSPATH$localpath";
-}
-else
-{
-  push @ARGS, "-classpath", "$localpath";
-}
+push @ARGS, "-classpath", "$localpath";
 push @ARGS, "-Dant.home=$HOME";
 if ( ! $CYGHOME eq "" )
 {
@@ -136,7 +113,20 @@
 }
 push @ARGS, "org.apache.tools.ant.launch.Launcher", @ANT_ARGS;
 push @ARGS, @ARGV;
-
+if (! $classpath eq "")
+{
+  if ($onnetware == 1)
+  {
+    # make classpath literally $CLASSPATH
+    # this is to avoid pushing us over the 512 character limit
+    # even skip the ; - that is already in $localpath
+    push @ARGS, "-lib", "\$CLASSPATH";
+  }
+  else
+  {
+    push @ARGS, "-lib", "$classpath";
+  }
+}
 print "\n $JAVACMD @ARGS\n\n" if ($debug);
 
 my $returnValue = system $JAVACMD, @ARGS;
diff --git a/src/script/runant.py b/src/script/runant.py
index 45bf523..1343f68 100644
--- a/src/script/runant.py
+++ b/src/script/runant.py
@@ -17,7 +17,6 @@
  Assumptions:
 
  - the "java" executable/script is on the command path
- - ANT_HOME has been set
 """
 import os, os.path, string, sys
 
@@ -25,52 +24,62 @@
 debug = 0
 
 #######################################################################
-#
-# check to make sure environment is setup
-#
+
+# If ANT_HOME is not set default to script's parent directory
 if os.environ.has_key('ANT_HOME'):
     ANT_HOME = os.environ['ANT_HOME']
 else:
     ANT_HOME = os.path.dirname(os.path.dirname(os.path.abspath(sys.argv[0])))
 
-# Add jar files
+# set ANT_LIB location
 ANT_LIB = os.path.join(ANT_HOME, 'lib')
 
+# set JAVACMD (check variables JAVACMD and JAVA_HOME)
+JAVACMD = None
 if not os.environ.has_key('JAVACMD'):
-    JAVACMD = 'java'
+    if os.environ.has_key('JAVA_HOME'):
+        if not os.path.exists(os.environ['JAVA_HOME']):
+            print "Warning: JAVA_HOME is not defined correctly."
+        else:
+            JAVACMD = os.path.join(os.environ['JAVA_HOME'], 'bin', 'java')
+    else:
+        print "Warning: JAVA_HOME not set."
 else:
     JAVACMD = os.environ['JAVACMD']
-
-# Build up standard classpath
-localpath = ''
-if os.environ.has_key('CLASSPATH'):
-    localpath = os.environ['CLASSPATH']
-else:
-    if debug:
-        print 'Warning: no initial classpath\n'
+if not JAVACMD:
+    JAVACMD = 'java'
 
 launcher_jar = os.path.join(ANT_LIB, 'ant-launcher.jar')
 if not os.path.exists(launcher_jar):
     print 'Unable to locate ant-launcher.jar. Expected to find it in %s' % \
         ANT_LIB
-if localpath:
-    localpath = launcher_jar + os.pathsep + localpath
-else:
-    localpath = launcher_jar
 
-ANT_OPTS = []
+# Build up standard classpath (LOCALCLASSPATH)
+LOCALCLASSPATH = launcher_jar
+if os.environ.has_key('LOCALCLASSPATH'):
+    LOCALCLASSPATH += os.pathsep + os.environ['LOCALCLASSPATH']
+
+ANT_OPTS = ""
 if os.environ.has_key('ANT_OPTS'):
-    ANT_OPTS = string.split(os.environ['ANT_OPTS'])
+    ANT_OPTS = os.environ['ANT_OPTS']
 
-OPTS = []
+OPTS = ""
 if os.environ.has_key('JIKESPATH'):
-    OPTS.append('-Djikes.class.path=' + os.environ['JIKESPATH'])
+    OPTS = '-Djikes.class.path=\"%s\"' % os.environ['JIKESPATH']
+
+ANT_ARGS = ""
+if os.environ.has_key('ANT_ARGS'):
+    ANT_ARGS = os.environ['ANT_ARGS']
+
+CLASSPATH = ""
+if os.environ.has_key('CLASSPATH'):
+    CLASSPATH = os.environ['CLASSPATH']
 
 # Builds the commandline
-cmdline = ('%s %s -classpath %s -Dant.home=\"%s\" %s ' + \
-    'org.apache.tools.ant.launch.Launcher %s') \
-     % (JAVACMD, string.join(ANT_OPTS,' '), localpath, ANT_HOME, \
-        string.join(OPTS,' '), string.join(sys.argv[1:], ' '))
+cmdline = ('%s %s -classpath \"%s\" \"-Dant.home=%s\" %s ' + \
+    'org.apache.tools.ant.launch.Launcher %s -lib \"%s\" \"%s\"') \
+     % (JAVACMD, ANT_OPTS, LOCALCLASSPATH, ANT_HOME, OPTS, ANT_ARGS, \
+        CLASSPATH, string.join(sys.argv[1:], ' '))
 
 if debug:
     print '\n%s\n\n' % (cmdline)
diff --git a/src/testcases/org/apache/tools/ant/filters/ConcatFilterTest.java b/src/testcases/org/apache/tools/ant/filters/ConcatFilterTest.java
index c97b68a..c9cc5d1 100644
--- a/src/testcases/org/apache/tools/ant/filters/ConcatFilterTest.java
+++ b/src/testcases/org/apache/tools/ant/filters/ConcatFilterTest.java
@@ -111,85 +111,80 @@
     }
 
     public void tearDown() {
-        // I dont know why - but on my machine I always get a
-        // "Unable to delete file ...result\append.txt" (or prepend.txt)
-        // from Delete.removeDir(Delete.java:612).
-        // Win2000, JDK 1.4.1_02
-        // A <sleep> before <delete> doesn´t work. From 10ms to 3000ms.
-        // I modified the taskdefs.Delete.DELETE_RETRY_SLEEP_MILLIS
-        // from 10 up to 2000 ms, but no success.
-        // So I give up - and hope for a suggestion from another one.
-        // But this shouldn´t let the testcases fail, so I do the cleanup
-        // inside a try-block
-        //    Jan
-        try {
-            executeTarget("cleanup");
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        executeTarget("cleanup");
     }
 
     public void testFilterReaderNoArgs() throws IOException {
         executeTarget("testFilterReaderNoArgs");
         File expected = getProject().resolveFile("input/concatfilter.test");
-        File result = getProject().resolveFile("result/concat.filterReaderNoArgs.test");
+        File result = getProject().resolveFile("result/concat.FilterReaderNoArgs.test");
         assertTrue("testFilterReaderNoArgs: Result not like expected", fu.contentEquals(expected, result));
     }
 
-    public void testFilterReaderBefore() throws IOException {
-        executeTarget("testFilterReaderPrepend");
-        File resultFile = getProject().resolveFile("result/concat.filterReaderPrepend.test");
-        String resultContent = fu.readFully(new java.io.FileReader(resultFile));
-        assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_PREPEND_WITH));
-        assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_APPEND));
+    public void testFilterReaderBefore() {
+        doTest("testFilterReaderPrepend", FILE_PREPEND_WITH, FILE_APPEND);
     }
 
-    public void testFilterReaderAfter() throws IOException {
-        executeTarget("testFilterReaderAppend");
-        File resultFile = getProject().resolveFile("result/concat.filterReaderAppend.test");
-        String resultContent = fu.readFully(new java.io.FileReader(resultFile));
-        assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_PREPEND));
-        assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_APPEND_WITH));
+    public void testFilterReaderAfter() {
+        doTest("testFilterReaderAppend", FILE_PREPEND, FILE_APPEND_WITH);
     }
 
-    public void testFilterReaderBeforeAfter() throws IOException {
-        executeTarget("testFilterReaderPrependAppend");
-        File resultFile = getProject().resolveFile("result/concat.filterReaderPrependAppend.test");
-        String resultContent = fu.readFully(new java.io.FileReader(resultFile));
-        assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_PREPEND_WITH));
-        assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_APPEND_WITH));
+    public void testFilterReaderBeforeAfter() {
+        doTest("testFilterReaderPrependAppend", FILE_PREPEND_WITH, FILE_APPEND_WITH);
     }
 
-    public void testConcatFilter() throws IOException {
-        executeTarget("testConcatFilter");
-        File resultFile = getProject().resolveFile("result/concat.concatfilter.test");
-        String resultContent = fu.readFully(new java.io.FileReader(resultFile));
-        assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_PREPEND));
-        assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_APPEND));
+    public void testConcatFilter() {
+        doTest("testConcatFilter", FILE_PREPEND, FILE_APPEND);
     }
 
-    public void testConcatFilterBefore() throws IOException {
-        executeTarget("testConcatFilterPrepend");
-        File resultFile = getProject().resolveFile("result/concat.concatfilterPrepend.test");
-        String resultContent = fu.readFully(new java.io.FileReader(resultFile));
-        assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_PREPEND_WITH));
-        assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_APPEND));
+    public void testConcatFilterBefore() {
+        doTest("testConcatFilterPrepend", FILE_PREPEND_WITH, FILE_APPEND);
     }
 
-    public void testConcatFilterAfter() throws IOException {
-        executeTarget("testConcatFilterAppend");
-        File resultFile = getProject().resolveFile("result/concat.concatfilterAppend.test");
-        String resultContent = fu.readFully(new java.io.FileReader(resultFile));
-        assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_PREPEND));
-        assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_APPEND_WITH));
+    public void testConcatFilterAfter() {
+        doTest("testConcatFilterAppend", FILE_PREPEND, FILE_APPEND_WITH);
     }
 
-    public void testConcatFilterBeforeAfter() throws IOException {
-        executeTarget("testConcatFilterPrependAppend");
-        File resultFile = getProject().resolveFile("result/concat.concatfilterPrependAppend.test");
-        String resultContent = fu.readFully(new java.io.FileReader(resultFile));
-        assertTrue("First 5 lines differs.", resultContent.startsWith(FILE_PREPEND_WITH));
-        assertTrue("Last 5 lines differs.", resultContent.endsWith(FILE_APPEND_WITH));
+    public void testConcatFilterBeforeAfter() {
+        doTest("testConcatFilterPrependAppend", FILE_PREPEND_WITH, FILE_APPEND_WITH);
     }
 
-}
\ No newline at end of file
+
+    /**
+     * Executes a target and checks the beginning and the ending of a file.
+     * The filename depends on the target name: target name <i>testHelloWorld</i>
+     * will search for a file <i>result/concat.HelloWorld.test</i>.
+     * @param target The target to invoke
+     * @param expectedStart The string which should be at the beginning of the file
+     * @param expectedEnd The string which should be at the end of the file
+     */
+    protected void doTest(String target, String expectedStart, String expectedEnd) {
+        executeTarget(target);
+        String resultContent = read("result/concat." + target.substring(4) + ".test");
+        assertTrue("First 5 lines differs.", resultContent.startsWith(expectedStart));
+        assertTrue("Last 5 lines differs.", resultContent.endsWith(expectedEnd));
+    }
+
+
+    /**
+     * Wrapper for FileUtils.readFully().
+     * Additionally it resolves the filename according the the projects basedir
+     * and closes the used reader.
+     * @param filename The name of the file to read
+     * @return the content of the file or <i>null</i> if something goes wrong
+     */
+    protected String read(String filename) {
+        String content = null;
+        try {
+            File file = getProject().resolveFile(filename);
+            java.io.FileReader rdr = new java.io.FileReader(file);
+            content = fu.readFully(rdr);
+            rdr.close();
+            rdr = null;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return content;
+    }
+
+}
diff --git a/src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java b/src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java
index e6b8987..24e40d1 100644
--- a/src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java
+++ b/src/testcases/org/apache/tools/ant/taskdefs/MacroDefTest.java
@@ -86,8 +86,5 @@
         expectLog("nested", "A nested element");
     }
 
-    public void testXPathStyle() {
-        expectLog("xpathstyle", "attribute is this is a testthis is a test");
-    }
 }
 
diff --git a/src/testcases/org/apache/tools/ant/taskdefs/ReplaceTest.java b/src/testcases/org/apache/tools/ant/taskdefs/ReplaceTest.java
index 66c1008..5fe4e95 100644
--- a/src/testcases/org/apache/tools/ant/taskdefs/ReplaceTest.java
+++ b/src/testcases/org/apache/tools/ant/taskdefs/ReplaceTest.java
@@ -1,7 +1,7 @@
 /*
  * The Apache Software License, Version 1.1
  *
- * Copyright (c) 2000-2001 The Apache Software Foundation.  All rights
+ * Copyright (c) 2000-2001,2003 The Apache Software Foundation.  All rights
  * reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -108,8 +108,9 @@
 
     public void test9() throws IOException{
         executeTarget("test9");
-        assertEqualContent(new File(TEST_PATH + "result.txt"),
-                    new File(TEST_PATH + "output.txt"));
+        String tmpdir = project.getProperty("tmp.dir");
+        assertEqualContent(new File(tmpdir, "result.txt"),
+                    new File(tmpdir, "output.txt"));
     }
     public void tearDown() {
         executeTarget("cleanup");
diff --git a/src/testcases/org/apache/tools/ant/taskdefs/optional/XmlValidateTest.java b/src/testcases/org/apache/tools/ant/taskdefs/optional/XmlValidateTest.java
index 80799ce..ce287e1 100644
--- a/src/testcases/org/apache/tools/ant/taskdefs/optional/XmlValidateTest.java
+++ b/src/testcases/org/apache/tools/ant/taskdefs/optional/XmlValidateTest.java
@@ -1,7 +1,7 @@
 /*
  *  The Apache Software License, Version 1.1
  *
- *  Copyright (c) 2002 The Apache Software Foundation.  All rights
+ *  Copyright (c) 2002-2003 The Apache Software Foundation.  All rights
  *  reserved.
  *
  *  Redistribution and use in source and binary forms, with or without
@@ -126,6 +126,13 @@
     }
 
     /**
+     *
+     */
+    public void testXmlCatalogViaRefid() {
+        executeTarget("xmlcatalogViaRefid");
+    }
+
+    /**
      * Test that the nested dtd element is used when resolver.jar is not
      * present.  This test should pass either way.
      */
diff --git a/src/testcases/org/apache/tools/ant/taskdefs/optional/net/FTPTest.java b/src/testcases/org/apache/tools/ant/taskdefs/optional/net/FTPTest.java
index be95394..4f77474 100644
--- a/src/testcases/org/apache/tools/ant/taskdefs/optional/net/FTPTest.java
+++ b/src/testcases/org/apache/tools/ant/taskdefs/optional/net/FTPTest.java
@@ -113,6 +113,11 @@
     }
 
     public void tearDown() {
+        try {
+            ftp.disconnect();
+        } catch (IOException ioe) {
+            // do nothing
+        }
         getProject().executeTarget("cleanup");
     }
     private boolean changeRemoteDir(String remoteDir) {
@@ -570,7 +575,12 @@
                      new String[] {"alpha/beta", "alpha/beta/gamma", "delta"});
 
     }
-
+    /**
+     *  this test is inspired by a user reporting that deletions of directories with the ftp task do not work
+     */
+    public void testFTPDelete() {
+        getProject().executeTarget("ftp-delete");
+    }
     private void compareFiles(DirectoryScanner ds, String[] expectedFiles,
                               String[] expectedDirectories) {
         String includedFiles[] = ds.getIncludedFiles();
diff --git a/src/testcases/org/apache/tools/ant/types/AddTypeTest.java b/src/testcases/org/apache/tools/ant/types/AddTypeTest.java
index a77a690..833e1eb 100644
--- a/src/testcases/org/apache/tools/ant/types/AddTypeTest.java
+++ b/src/testcases/org/apache/tools/ant/types/AddTypeTest.java
@@ -123,6 +123,11 @@
         expectLogContaining(
             "myaddconfigured", "value is Value Setexecute: value is Value Set");
     }
+
+    public void testNamespace() {
+        executeTarget("namespacetest");
+    }
+    
     // The following will be used as types and tasks
     
     public static interface A {}
diff --git a/src/testcases/org/apache/tools/ant/types/AssertionsTest.java b/src/testcases/org/apache/tools/ant/types/AssertionsTest.java
new file mode 100644
index 0000000..0193f9a
--- /dev/null
+++ b/src/testcases/org/apache/tools/ant/types/AssertionsTest.java
@@ -0,0 +1,132 @@
+/*
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2003 The Apache Software Foundation.  All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution, if
+ *    any, must include the following acknowlegement:
+ *       "This product includes software developed by the
+ *        Apache Software Foundation (http://www.apache.org/)."
+ *    Alternately, this acknowlegement may appear in the software itself,
+ *    if and wherever such third-party acknowlegements 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 names without prior written
+ *    permission of the Apache Group.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation.  For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ */
+package org.apache.tools.ant.types;
+
+import org.apache.tools.ant.BuildFileTest;
+
+/**
+ * test assertion handling
+ */
+public class AssertionsTest extends BuildFileTest {
+
+    public AssertionsTest(String name) {
+        super(name);
+    }
+
+    protected void setUp() throws Exception {
+        configureProject("src/etc/testcases/types/assertions.xml");
+    }
+
+    protected void tearDown() throws Exception {
+        executeTarget("teardown");
+    }
+
+    /**
+     * runs a test and expects an assertion thrown in forked code
+     * @param target
+     */
+    protected void expectAssertion(String target) {
+        expectBuildExceptionContaining(target,
+                "assertion not thrown in "+target,
+                "Java returned: 1");
+    }
+
+    public void testClassname() {
+        expectAssertion("test-classname");
+    }
+
+    public void testPackage() {
+        expectAssertion("test-package");
+    }
+
+    public void testEmptyAssertions() {
+        executeTarget("test-empty-assertions");
+    }
+
+    public void testDisable() {
+        executeTarget("test-disable");
+    }
+
+    public void testOverride() {
+        expectAssertion("test-override");
+    }
+
+    public void testOverride2() {
+        executeTarget("test-override2");
+    }
+    public void testReferences() {
+        expectAssertion("test-references");
+    }
+
+    public void testMultipleAssertions() {
+        expectBuildExceptionContaining("test-multiple-assertions",
+                "multiple assertions rejected",
+                "Only one assertion declaration is allowed");
+    }
+
+    public void testReferenceAbuse() {
+        expectBuildExceptionContaining("test-reference-abuse",
+                "reference abuse rejected",
+                "You must not specify more than one attribute when using refid");
+    }
+
+    public void testNofork() {
+        expectLogContaining("test-nofork",
+                "Assertion statements are currently ignored in non-forked mode");
+    }
+
+
+}
+
+
diff --git a/src/testcases/org/apache/tools/ant/types/CommandlineJavaTest.java b/src/testcases/org/apache/tools/ant/types/CommandlineJavaTest.java
index b7d5fb4..a176ad3 100644
--- a/src/testcases/org/apache/tools/ant/types/CommandlineJavaTest.java
+++ b/src/testcases/org/apache/tools/ant/types/CommandlineJavaTest.java
@@ -105,7 +105,7 @@
             fail("cloning should work without classpath specified");
         }
 
-        c.createClasspath(project).setLocation(project.resolveFile("lib/optional/junit.jar"));
+        c.createClasspath(project).setLocation(project.resolveFile("build.xml"));
         c.createClasspath(project).setLocation(project.resolveFile(
             System.getProperty("ant.home")+"/lib/ant.jar"));
         s = c.getCommandline();
@@ -113,8 +113,8 @@
         //        assertEquals("with classpath", "java", s[0]);
         assertEquals("with classpath", "-Djava.compiler=NONE", s[1]);
         assertEquals("with classpath", "-classpath", s[2]);
-        assertTrue("junit.jar contained",
-               s[3].indexOf("junit.jar"+java.io.File.pathSeparator) >= 0);
+        assertTrue("build.xml contained",
+               s[3].indexOf("build.xml"+java.io.File.pathSeparator) >= 0);
         assertTrue("ant.jar contained", s[3].endsWith("ant.jar"));
         assertEquals("with classpath", "junit.textui.TestRunner", s[4]);
         assertEquals("with classpath",
@@ -168,4 +168,4 @@
         assertNull(System.getProperty("key2"));
     }
 
-}
\ No newline at end of file
+}
diff --git a/src/testcases/org/apache/tools/ant/types/XMLCatalogTest.java b/src/testcases/org/apache/tools/ant/types/XMLCatalogTest.java
index d00b979..26fe950 100644
--- a/src/testcases/org/apache/tools/ant/types/XMLCatalogTest.java
+++ b/src/testcases/org/apache/tools/ant/types/XMLCatalogTest.java
@@ -1,7 +1,7 @@
 /*
  * The Apache Software License, Version 1.1
  *
- * Copyright (c) 2000-2002 The Apache Software Foundation.  All rights
+ * Copyright (c) 2000-2003 The Apache Software Foundation.  All rights
  * reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -172,14 +172,6 @@
     }
 
     public void testEmptyElementIfIsReference() {
-        try {
-            catalog.setRefid(new Reference("dummyref"));
-            fail("Can add reference to nonexistent XMLCatalog");
-        } catch (BuildException be) {
-            assertEquals("Reference dummyref not found.",
-                         be.getMessage());
-        }
-
         ResourceLocation dtd = new ResourceLocation();
         dtd.setPublicId("PUBLIC ID ONE");
         dtd.setLocation("i/dont/exist.dtd");
diff --git a/welcome.html b/welcome.html
index 33f6a2a..d1766f1 100644
--- a/welcome.html
+++ b/welcome.html
@@ -1,124 +1,328 @@
-<html>
-<head>
-<title>Welcome to Ant1.5</title>
-</head>
-<body bgcolor="#ffffff">
-<h1>Welcome to Ant1.5</h1>
-Hello, and welcome to Ant1.5
-<p>
-For new users to Ant, welcome to a new way to build your software.
-<p>
-For veteran Ant users, its been, what nine months since Ant 1.4.1 
-shipped, and we've been as busy enhancing it as you've been using it.
-<p>
-
-We know you've been using Ant, not just from the all the bug reports we
-see, but from the awards we've been getting from JavaWorld and SD Magazine
-and from the fact that it is now clearly a mainstream product. Every quality IDE,
-from the Open Source projects: Emacs, NetBeans, Eclipse, JEdit, to the
-commercial offerings such as IntelliJ IDEA and JBuilder now have high
-quality Ant integration  either built in or available as a
-download. And they do that not just because it improves their products,
-giving users the best of both worlds -great editors and a great build
-process, but because Java developers are starting to expect Ant (and
-JUnit) everywhere.
-<p>
-Even in mid-2001, if you said you were using Ant in your project, people
-would stare at you. Now, as long as you are talking with Java developers
-and not management or your family and friends, people will nod, shrug
-and maybe ask you questions about build file and Ant configurations. The good 
-news: Ant 1.5 includes more helpful error messages and a new
-<tt>-diagnostics</tt> command to look at your Ant installation and help work out why
-things arent working.
-<p>
-Now, when you tell people you work on Ant in your spare time,
-people used to give you very funny stares; now they ask you about how to
-set up automated build processes, or deploy to some random app server.
-The good news: Ant 1.5 makes it easier to answer those questions.
-
-The other sign of mainstream is that there are also books on the
-subject, first Java Tools for Extreme Programming, then Ant: The
-Definitive Guide, and the first Ant1.5 book, Java Development with Ant,
-due to ship at the end of the month. (Steve says: I prefer the one with 
-my name on the cover as co-author, but I'm biased). 
-As usual, the manual has improved too:
-regardless of whether you need a book to work with Ant or not, you need
-that on-line documentation. And as usual, any extra contributions to the
-docs are welcome indeed. 
-<p>
-Ant has also influenced how projects are built. Now when you download
-any open source project, or work with a closed source team, you expect
-to see a file called build.xml there. Equally important, you expect that
-build file to compile and run a set of tests using JUnit or a derivative
-thereof; if they are missing, you worry.
-<p>
-Together, Ant and JUnit have transformed the mainstream process for
-building and deploying Java projects. And that's pretty profound, when
-you think about it. What is equally impressive is that this was all done
-as a co-operative effort. Nobody works on Ant full-time; everybody uses
-it to solve their problems, to address their build crises and generally
-get something done in a hurry. It just so happens that the architectural
-model of Java classes bound via introspection to the XML build file
-makes it easy for people to add new tasks, extend existing ones and
-generally ease their way into developing and extending Ant. It is the
-users that have helped Ant become the success it is today, and will keep
-it that way tomorrow.
-<p>
-<h2>What has changed</h2>
-<p>
-So, what is new in Ant1.5? Lots of stuff. You will have to look at the
-<a href="WHATSNEW">whatsnew</a> file to see, but basically the changes
-fall into a number of categories
-<ol>
-<li>Bug fixes. We know, some things were broken in 1.4. In ant1.5 we
-have moved the bugs, fixing the ones we could, and no doubt adding
-different ones. Hopefully the total bug count has decreased.
-<li>Scalability. Changes in &lt;ant&gt; and a few other tasks should 
-make it easier to write large, scalable build files. 
-<li>Deployment. Take a look at the new &lt;serverdeploy&gt; task, add support
-for your server if it isnt there. Tomcat 4.1 has its own deployment
-tasks incidentally -fetch them from the tomcat pages.
-<li>Ease of use. We have added new attributes to make the archive tasks
-consistent with each other, new error messages for common problems (you
-get a screenful of help when a task wont instantiate, for example), and
-generally try and be helpful. As usual, we will accept contributions to 
-the documentation or the code for even more helpfulness. Hey, in ant1.5
-you dont need to double escape the $ sign to preserve it in a string!
-<li>Java 1.4 support. We build and test fine on Java 1.4, and have the
-extensions to javac needed to build code with assertions in. We should
-point out that we have more work to do in this area: if someone wants to
-write an &lt;assertionset&gt; datatype to give users control of which assertions
-to enable, and patch this in to things like the &lt;junit&gt; and 
-&lt;java&gt; tasks, things would get very interesting.
-<li>Continuous builds. Automated build tools are becoming more widely
-used; fork options on &lt;javac&gt; and &lt;javadoc&gt; are there to 
-stop memory use growth on a continuous process. 
-<li>New platforms: MacOS X for owners of those cute little laptops, 
-Novell Netware servers, and even z/OS and OS/390 for mainframe
-developers who write their build files on their virtual card punches.
-<li>Conditions. Take a look at the &lt;condition&gt; tag to see what you can
-look for, then at &lt;waitfor&gt; to use the same tests in deployment.
-Finally, notice the <tt>if</tt> and <tt>unless</tt> attributes on
-&lt;fail&gt; for easy halting of the build on a condition, without
-having to resort to conditional targets. 
-</ol>
- 
-There are many more enhancements, so we hope you will find your build
-projects easier. We have, as usual, jumped through hoops to keep
-existing builds working, even those build files that went out their way
-to not work on Java 1.4 (hint: dont ask for the classic compiler, it has
-gone away). If your build file stops working, and it isnt something listed 
-on the 'changes that may break your build' part of the WHATSNEW file, or
-something we know about on bugzilla, please dont hesitate to file a new
-bug report, preferably one with a replicable test and a patch to fix the
-problem.
-<p>
-Thanks,
-<p>
-The Ant development team.
-<p>
-PS: many thanks for Magesh to being the build manager for this release!
-He has been busy since Feb/March organizing it. Magesh -you are so good
-at this you should do it next time too :) 
-</body></html>
- 
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
+	<TITLE>Welcome to Apache Ant 1.6</TITLE>
+</HEAD>
+<BODY LANG="en-US" BGCOLOR="#ffffff" DIR="LTR">
+<H1>Welcome to Apache Ant 1.6</H1>
+<P><BR><BR>
+</P>
+<H2>Your life just got better. 
+</H2>
+<P>Not in big ways. Your social life isn't going to be helped, though
+with any luck you may now have more time for one. Nor is it going to
+take less time to write your Java code -although we note that running
+<A HREF="http://xdoclet.sf.net/" TARGET="other">XDoclet</A> under Ant
+lets you avoid writing so much code. Nor is a new release of Ant
+likely to provide a fundamental kick-start to the currently somewhat
+subdued technology and software industries. 
+</P>
+<P>No, Ant1.6 will not fundamentally change your life. But if you do
+have to get software out on time -"roughly what you asked for,
+roughly when you asked", then Ant1.6 provides lots of little
+improvements over the existing version. 
+</P>
+<P>Before we look at those details, lets look at the world of The
+Automated Build.</P>
+<P>Firstly, we'd like to thank everyone for all those awards that
+have been flowing in. The JavaWorld Editors' Choice Award for "Most
+Useful Java Community-Developed Technology", The Java
+Developer's Journal "Editors Choice Award", and Java Pro
+Reader's Choice award for "Most Valuable Java Deployment
+Technology." Wow. That's a lot of awards. Aardman Animations
+keep all their Wallace and Gromit -related oscars in a cabinet in
+their tea room. If the Apache organization had a tea room, those Ant
+awards would be forcing all the other (excellent) Apache products to
+fight hard for their cabinet space. 
+</P>
+<P>All those awards come for a reason: everyone, at least everyone
+working on any project of moderate complexity, needs to control their
+build process. Ant is one of the best ways to do it in Java, and,
+over the past four years, it has moved from a tool used simply to
+build Tomcat cross-platform, to a tool used across many open source
+projects, and now to a tool used by almost all Java projects. Indeed,
+pretty much the only competitor in the Java space is a sibling
+project under the Apache banner, <A HREF="http://maven.apache.org/" TARGET="other">Maven</A>.
+One of the obvious signs of Ant's success is that all the popular
+IDEs, from the Open Source -Emacs JDE, Eclipse, NetBeans and jEdit -
+to the commercial: IntelliJ IDEA, Borland JBuilder- all ship with
+built in Ant support. This lets you use your favourite IDE for what
+it is good at: editing text, creating Java source, refactoring
+existing code, debugging and the like, and you can turn to Ant for
+co-ordinating the build-test-deploy/deliver process. That Ant based
+process can be triggered from keystrokes in the IDE, command line
+invocations for those so inclined, and in automated scheduled builds
+so the machines can keep an eye on the engineers. Another sign is how
+Ant is helping the Java aisle of bookstores fight back against
+attempts by books about Macromedia Flash to take over all the space
+-there are now seven or eight books on the subject, with more on the
+way. Germany and Korea have their own native language books too,
+which shows how global the tool is -in use and in development terms. 
+</P>
+<P>The other metric of success is the pre-announcement hints from our
+distant software colleagues in Redmond, Microsoft, of a new build
+tool, "MSBuild", which "might be the single most
+important feature innovation in our pipeline", according to one
+MS developer. That is surely the greatest metric of success: XML
+based build tools are now viewed as so essential to the modern build
+process, that Microsoft has to come up with a competitor to Ant to
+win Java developers over to .NET. Let's hope they discover we like
+ubiquitous JUnit testing too, and refactoring IDEs that create and
+run the tests for us. 
+</P>
+<P>Success comes at a price, of course. One price is all those
+support calls. We try and stay on top of the bug reports, but one
+thing we cannot do is fix inconsistencies or things that seem like
+defects if they stand a significant chance of breaking existing
+builds. Its sad, but there are lots of little minor faults with Ant
+that we don't dare fix because, well, things might break. For
+example, why don't if= and unless= clauses also support
+if="${property}" clauses? Alternatively, why isn't it an
+error to use a property that isn't defined. Everyone that has ever
+seen directories called ${build.dir} popping up the source tree will
+understand why that behaviour is not always what you want. Well, we
+could fix these things, but we won't, because backwards compatibility
+is sacred. 
+</P>
+<P>That is the other price of success: all those users who have
+existing build files they want to work. And all those IDEs that host
+Ant, and who want an easy upgrade to a new version. This means we
+have lost a lot of the flexibility we used to have in the early days
+of the project, when different versions of Ant could have completely
+different property evaluation algorithms and nobody would bat an
+eyelid. Now, even the most obscure bug fix ends up generating 'you
+broke my build complaints'. 
+</P>
+<P>This explains why there will not be the 'incompatible upgrade'
+version of Ant, Ant2.0, that has long been discussed on our web site.
+</P>
+<H2>Where is Ant2.0?</H2>
+<P>For years we have been discussing Ant2.0, the complete rewrite
+version that would be cleaner and faster, and slightly incompatible
+with Ant1.x. It would be the opportunity to take the lessons from the
+1.x line, and support them cleanly. We even got as far as having
+multiple implementations of new Ant engines in the CVS repository,
+especially Mutant and Myrmidion. But we always seemed to have a hard
+time making progress -everyone was too busy using and firefighting
+Ant1.x that nobody got time to work on the 2.x codebase. Which is a
+shame, as all the proposals had interesting ideas.</P>
+<P>After Ant1.5 shipped, the future of Ant effectively resolved into
+one of evolution rather than revolution. There will be no Ant2.0 with
+a complete new engine underneath. There will be no need to run XSL
+transforms over existing build files to move them to the Ant2.0
+world. Instead Ant1.x is getting better underneath the build file
+-improving its internal design while retaining five-nines backwards
+compatibility with existing build files. 
+</P>
+<P>And that is what we have been up to.</P>
+<P>Under the hood, Ant1.6 contains some of the most major reworkings
+of the core Ant system yet seen. We haven't finished yet, and are
+holding back some of the more visible developments so we can see what
+works before their release in a product forces us to maintain them.
+But the underlying parts of Ant are now set up for the next stage in
+development. 
+</P>
+<P>Whether we call the next version of Ant 1.7 or 2.0 is something we
+have yet to decide. Maybe we should call it 3.0 just to surprise
+people.</P>
+<H2>What has changed</H2>
+<P>Look at the <A HREF="WHATSNEW" TARGET="other">WHATSNEW</A>
+document to get a full list of changes. Here are some of the core
+conceptual differences.</P>
+<H3>No more Java1.1</H3>
+<P>We got fed up of jumping through reflection hoops to do everything
+from weak references to setting file timestamps. After consultation
+with the Ant user mail list, Ant1.6 only runs on Java1.2 or later. It
+can still cross compile to Java1.1 if that is what you have to do. We
+haven't completely purged all 1.1 references in the docs, or 1.1
+support from the source, but that will come over time.</P>
+<H3>New classloader use.</H3>
+<P>This is going to make people nervous. If there is one thing Java
+developers have learned over time, only the very naive, the very
+brave, or the very competent do things with classloaders. We will let
+the Ant users decide what category to put us in, but before everyone
+panics, Costin, of Tomcat fame, did a lot of the work here. You don't
+write application servers without understanding classloaders inside
+and out. 
+</P>
+<P>The impact of these changes will trickle out over Ant versions. In
+1.6, the key features are 
+</P>
+<OL>
+	<LI><P>We have got rid of the bit in the batch file/shell script
+	that built up a really big classpath environment variable from
+	everything in ANT_HOME/lib. Now that is done in a launcher class
+	that does the work then calls tools.ant.Main as before.</P>
+	<LI><P>You can add new library directories to that classloader with
+	the -lib option on the command line. This option is interpreted by
+	the launcher class, so will not work with IDEs and other apps that
+	use the inner entry point.</P>
+	<LI><P>We have broken up optional.jar into many-many jar files, such
+	as ant-commons-logging.jar, ant-xalan2.jar, etc etc, and a
+	nodeps.jar for optional stuff without any dependencies. This creates
+	a lot of jar files.</P>
+	<LI><P>You can now &lt;taskdef&gt; existing tasks -like &lt;junit&gt;-
+	by including the specific ant jar <I>and</I> the dependent libraries
+	(i.e. junit.jar) in the declaration. This solves the problem of
+	ANT_HOME/lib needing to contain every jar possibly needed by every
+	user/project. You still have to declare the tasks one by one,
+	something we will fix in Ant1.7</P>
+</OL>
+<H3>Adapters</H3>
+<P>These are Java classes that <I>adapt</I>&gt; arbitrary Java
+classes into ant tasks or types. There has always been some of this
+stuff inside Ant, but now you can &lt;taskdef&gt; a task by naming
+not just the implementation class, but the adapter class. An adapter
+is essentially a meta task implementation -something that can be used
+to create new tasks dynamically. Which, when you consider that the
+core of Ant is fundamentally an XML to java mapping system and a
+simple workflow engine, may let you do very unusual things with Ant. 
+</P>
+<H3>Antlib: Ant libraries</H3>
+<P>This is something we will expand in future. Till now you could
+declare tasks and types with &lt;taskdef&gt; and &lt;typedef&gt;. If
+they were in a jar, you could write a properties file and name the
+resource path of the file in the jar. If you wanted to have both
+tasks and types, you had name a shared classloader. If you wanted to
+add more things -such as conditions or mappers, you were out of luck.</P>
+<P>Antlibs are Ant Libraries, JAR files containing the code to extend
+Ant, and an XML description file to describe how Ant is extended.
+Before anyone panics at 'yet another XML descriptor syntax' to learn:
+you may already know the syntax. We call it "Ant build files".
+Actually it is a subset: it can only contain those task declarations
+that are derived from org.apache.tools.ant.taskdefs.AntlibDefinition.
+That includes &lt;taskdef&gt; and &lt;typedef&gt;, and <I>any other
+task you choose to derive. </I>We are experimenting with scripting
+and some kind of task predefinition declarations in antlibs. With the
+latter, you will be able to write a predefined task -such as a
+&lt;javac&gt; derivative with the compiler options set, and then use
+it any of your build files. This is all too experimental to get into
+Ant1.6 -expect it in the successor. For now, start using antlibs and
+use the &lt;taskdef&gt; task to load them into your projects.</P>
+<H3>XML Namespace aware</H3>
+<P>Ant finally adopts XML namespaces. This is to address build file
+scalability; antlibs can be imported into their own namespaces, and
+so you can avoid namespace clashes with other libraries. If you do
+not know what namespaces are, do not worry -they are not compulsory.</P>
+<H2>New Tasks</H2>
+<P>As usual, the task base is growing and expanding. These days the
+ant core is resisting adopting many of the highly worthy donations of
+tasks from people, because they make maintenance and firefighting
+worse. Our current stance is that except in special circumstances,
+Ant tasks to support third party open source projects, should live
+with the projects themselves. This keeps them in sync with the
+libraries they integrate with, avoids GPL/Apache licensing issues,
+and reduces the Ant team's support workload, letting them focus on
+the core. The antlib mechanism is intended to make it easier for
+people to load tasks from libraries for this very reason.</P>
+<P>That said, we are pleased to introduce many new tasks. Of
+particular interest may be the SSH tasks, which let one deploy code
+to remote servers securely. Now you really can do live updates with
+Ant -if the operations team will let you. The other one that is quite
+interesting is &lt;subant&gt;. This is an extension of the &lt;ant&gt;
+task, to take an entire fileset of directories and run their build
+files. This is incredibly useful in very large projects. This does
+not mean that we are advocating the many-build-file development
+pattern, but in a sufficiently complex project it happens anyway.
+&lt;subant&gt; keeps things manageable.</P>
+<H2>What else</H2>
+<P>So, what is new in Ant1.6? Lots of stuff. You will have to look at
+the <A HREF="WHATSNEW">whatsnew</A> file to see, but here are some
+key points. 
+</P>
+<OL>
+	<LI><P STYLE="margin-bottom: 0in">Bug fixes. We know, some things
+	were broken in 1.5. In ant1.6 we have moved the bugs, fixing the
+	ones we could, and no doubt adding different ones. Hopefully the
+	total bug count has decreased. 
+	</P>
+	<LI><P STYLE="margin-bottom: 0in">New platforms: Open VMS and HP's
+	NonStop Kernel (Tandem) OS. OpenVMS is very different from the rest;
+	Read the &lt;exec&gt; task documentation carefully. 
+	</P>
+	<LI><P STYLE="margin-bottom: 0in">Spawning. &lt;java&gt; and &lt;exec&gt;
+	started applications can outlive Ant if you set spawn=true. Note
+	that the moment you do so, Ant cannot bind to their input or output,
+	for obvious reasons. 
+	</P>
+	<LI><P>Synchronisation with Java versions (heh, thought by moving
+	javah's entry point that you could hide from us? Think again).</P>
+	<LI><P>Synchronization with third party libraries. Of special note:
+	we have moved to the Apache commons-net.jar, the successor to
+	NetComponents for telnet and FTP as well as Apache BSF, the
+	successor to IBM BSF, for script.</P>
+</OL>
+<P>There are many more enhancements, so we hope you will find your
+build projects easier. We have, as usual, jumped through hoops to
+keep existing builds working. If your build file stops working, and
+it isn't something listed on the 'changes that may break your build'
+part of the WHATSNEW file, or something we know about on bugzilla,
+please don't hesitate to file a new bug report, preferably one with a
+replicable test and a patch to fix the problem. Please, please,
+please, do a search on bugzilla first. You do not want to be the
+seventy-third person to complain that Ant1.6 doesn't do something
+that it should. 
+</P>
+<P>Thanks, 
+</P>
+<P>The Ant development team. 
+</P>
+<H3>Acknowledgements</H3>
+<UL>
+	<LI><P>Many thanks for Antoine to being the build manager for this
+	release! 
+	</P>
+	<LI><P>Thank you to everyone who supplies the components we use in
+	Ant, particularly JUnit, commons-logging, log4J, Xerces, and Xalan. 
+	</P>
+	<LI><P>Everyone who has supplied bug reports, especially those with
+	patches and tests.</P>
+	<LI><P>IDE projects who incorporate Ant into their products. Not
+	only does this help Ant's success, you find lots of interesting
+	integration defects. Special mention to the Eclipse team for fixing
+	our memory leaks :)</P>
+</UL>
+<H3>Call to Action</H3>
+<P>It is an interesting time for Java. .NET is a serious challenger,
+and will get better. Microsoft are fully committed to .NET; as a
+software company it is their future. Sun, on the other hand, are
+still a hardware vendor who are trying to challenge both Microsoft
+and the PC vendors, and by implication Intel too. With those hardware
+margins under serious pressure from x86 and Linux+Win2K3, they cannot
+afford to cross-subsidize Java development the way they have done
+since 1995. We cannot rely on Sun alone for the survival of Java. So
+what then? IBM? In places, yes. IBM do contribute a lot. But the core
+strength of Java over .NET is its community. It is the community that
+gave the world leading edge development tools and other core
+components: Ant, JUnit, XDoclet, hsqldb, Hibernate, Struts, etc.
+These things weren't created by JCP committees, or built according to
+the strategic vision of a Fortune 100 company. They were written by
+Java developers, for Java developers, usually to meet their own
+tactical goals. 
+</P>
+<P>If Java is to survive -and we think it ought to- everyone who can
+needs to become active members of that community. It could be helping
+with Ant, but it could just as easily be helping with any other open
+source Java project, be hosted by Apache, FSF, Sourceforge or someone
+else, be it server-side, client-side or mobile-side. It could be an
+existing project, or it could be your own idea as to how things could
+be better. The key is: things will only be better if you put in the
+time to make it so. 
+</P>
+<H3>Call to Inaction</H3>
+<P>A special message to whoever it is in charge of commands in
+tools.jar: stop moving your entry points! In Ant1.5 we had to deal
+with the 'classic' javac entry point going away in Java1.4.0,
+seemingly coming back later. In Java 1.4.2, the javah entry point
+moved. The traditional command line invocation mechanism has been
+replaced by hosted invocation -Ant, Maven, IDEs, etc, and moving
+entry points around breaks these host applications. Even if we get a
+bug fix out in Ant a few weeks after the Java release, it takes
+months for this to trickle down to end users, especially via IDEs and
+other distributions. For example, Sun's own Java Web Services
+Developer Pack ships with Ant1.5.1, and so cannot run &lt;javah&gt;
+on a 1.4.2 installation. 
+</P>
+</BODY>
+</HTML>
\ No newline at end of file
diff --git a/xdocs/faq.xml b/xdocs/faq.xml
index 2072a9e..8f16f7d 100644
--- a/xdocs/faq.xml
+++ b/xdocs/faq.xml
@@ -199,7 +199,7 @@
 
   <faqsection title="How do I ...">
     <faq id="adding-external-tasks">
-      <question>How do I add an external task that I've written to the
+      <question>How do I add an external task that I&apos;ve written to the
       page &quot;External Tools and Task&quot;?</question>
       <answer>
 
@@ -215,7 +215,7 @@
           <li>a URL: entry linking to the main page of the tool/task</li>
           <li>a Contact: entry containing the email address or the URL
           of a webpage for the person or list to contact for issues
-          related to the tool/task.  <strong>Note that we'll add a
+          related to the tool/task.  <strong>Note that we&apos;ll add a
           link on the page, so any email address added there is not
           obfuscated and can (and probably will) be abused by robots
           harvesting websites for addresses to spam.</strong></li>
@@ -513,7 +513,7 @@
         declaration</a>.</p>  
 
         <p>By default the parser assumes you are using the UTF-8
-        encoding instead of your platform's default.  For most Western
+        encoding instead of your platform&apos;s default.  For most Western
         European countries you should set the encoding to
         <code>ISO-8859-1</code>.  To do so, make the very first line
         of you build file read like</p>
@@ -523,6 +523,23 @@
 ]]></source>
       </answer>
     </faq>
+
+    <faq id="use-zip-instead-of-jar">
+      <question>How do I use <code>jar</code>&apos;s <code>M</code> switch?
+      I don&apos;t want a MANIFEST.</question>
+
+      <answer>
+        <p>A JAR archive is a ZIP file, so if you don&apos;t want a
+        MANIFEST you can simply use <code>&lt;zip&gt;</code>.</p>
+
+        <p>If your file names contain national characters you should
+        know that Sun&apos;s <code>jar</code> utility like Ant&apos;s
+        <code>&lt;jar&gt;</code> uses UFT8 to encode their names while
+        <code>&lt;zip&gt;</code> uses your platforms default encoding.
+        Use the encoding attribute of <code>&lt;zip&gt;</code> if
+        necessary.</p>
+      </answer>
+    </faq>
   </faqsection>
 
   <faqsection title="It doesn&apos;t work (as expected)">
@@ -662,12 +679,12 @@
       <answer>
 
         <p>When <code>ant</code> loads properties from an external
-        file it dosn't touch the value of properties, trailing blanks
+        file it dosn&apos;t touch the value of properties, trailing blanks
         will not be trimmed for example.</p>
 
         <p>If the value represents a file path, like a jar needed to
         compile, the task which requires the value, javac for example
-        would fail to compile since it can't find the file due to
+        would fail to compile since it can&apos;t find the file due to
         trailing spaces.</p>
       </answer>
     </faq>
@@ -678,12 +695,12 @@
         <code>meta-inf</code> directory.</question>
 
       <answer>
-        <p>No it doesn't.</p>
+        <p>No it doesn&apos;t.</p>
 
         <p>You may have seen these lower-case directory names in
         WinZIP, but WinZIP is trying to be helpful (and fails).  If
         WinZIP encounters a filename that is all upper-case, it
-        assumes it has come from an old DOS box andchanges the case to
+        assumes it has come from an old DOS box and changes the case to
         all lower-case for you.</p>
 
         <p>If you extract (or just check) the archive with jar, you
@@ -845,6 +862,31 @@
    <!ENTITY include SYSTEM "file:./header.xml">
 ]>
 ]]></source>
+
+        <p>Starting with Ant 1.6, there is a new
+        <code>&lt;import&gt;</code> task that can (also) be used to
+        include build file fragments.  Unlike the snippets used with
+        entity includes, the referenced files have to be complete Ant
+        build files, though.</p>
+
+        <p>The example above would become:</p>
+        <source><![CDATA[
+<?xml version="1.0"?>
+<project name="test" default="test" basedir=".">
+
+  <target name="setup">
+    ...
+  </target>
+
+  <import file="../common.xml"/>
+
+  ...
+
+</project>
+]]></source>
+
+        <p>Unlike entity includes, <code>&lt;import&gt;</code> will
+        let you use Ant properties in the file name.</p>
       </answer>
     </faq>
 
@@ -1090,6 +1132,11 @@
         <code>ANT_HOME/lib</code>&quot; for the rest of this
         answer.</p>
 
+        <p>Technically the sentence above isn&apos;t true for Ant 1.6
+        and later anymore, but the result is the same.  For the sake
+        of this discussion, <code>CLASSPATH</code> and
+        <code>ANT_HOME/lib</code> are identical.</p>
+
         <p>This question collects a common type of problem: A task
         needs an external library and it has a nested classpath
         element so that you can point it to this external library, but
@@ -1154,6 +1201,9 @@
           the <code>CLASSPATH</code>.</li>
         </ol>
 
+        <p><strong>Using The Second Option with Ant 1.5.4 and
+        Earlier:</strong></p>
+
         <p>The easiest way to do this is to remove
         <code>optional.jar</code> from <code>ANT_HOME/lib</code>.  If
         you do so, you will have to <code>&lt;taskdef&gt;</code> all
@@ -1183,8 +1233,22 @@
         the <code>*Liaison</code> classes in
         <code>org/apache/tools/ant/taskdefs/optional</code>.</p>
 
+        <p><strong>Using The Second Option with Ant 1.6 and
+        later:</strong></p>
+
+        <p>In Ant 1.6 <code>optional.jar</code> has been split into
+        multiple jars, each one containing classes with the same
+        dependencies on external libraries.  You can move the
+        "offending" jar out of ANT_HOME/lib.  For the
+        <code>&lt;junit&gt;</code> task it would be
+        <code>ant-junit.jar</code> and for <code>&lt;style&gt;</code>
+        it would be <code>ant-trax.jar</code>,
+        <code>ant-xalan1.jar</code> or <code>ant-xslp.jar</code> -
+        depending on the processor you use.</p>
+
         <p>If you use the option to break up <code>optional.jar</code>
-        for <code>&lt;junit&gt;</code>, you still have to use a
+        for <code>&lt;junit&gt;</code> or remove
+        <code>ant-junit.jar</code>, you still have to use a
         <code>&lt;taskdef&gt;</code> with a nested
         <code>&lt;classpath&gt;</code> to define the junit task.</p>
       </answer>
diff --git a/xdocs/index.xml b/xdocs/index.xml
index 41cc13b..8306320 100644
--- a/xdocs/index.xml
+++ b/xdocs/index.xml
@@ -9,33 +9,27 @@
 
 <body>
 
-<section name="ApacheCon 2003">
-  <a href="http://apachecon.com/2003/US/index.html">
-    <img align="right"
-         border="0" src="http://jakarta.apache.org/images/logos/ac2003-150.gif"/>
-  </a>
-    <p>
-    <a href="http://apachecon.com/2003/US/index.html">ApacheCon US 2003</a>
-    is now open for registration. ApacheCon is the conference for all things
-    Apache. Come along and learn about a range of new technologies, meet some
-    Apache folks and share the knowledge.
-    </p>
-</section>
 
- <section name="Ant 1.5.4">
-    <p>Apache Ant 1.5.4 is now available for
-     <a href="http://ant.apache.org/bindownload.cgi">download</a>.
-    </p>
+    <section name="Ant 1.6beta2">
+       <p>Apache Ant 1.6beta2 is now available for <a
+       href="http://cvs.apache.org/dist/ant/v1.6beta2/">download</a>.  As
+       we've already said in the announcements of Ant 1.5.4, this release
+       requires JDK 1.2 or later to run.</p>
 
-    <div class="warning">
-    <div class="label">Note</div>
-    <div class="content">Ant 1.5.4 will be the last release that supports
-      JDK 1.1. The next major release of Ant, Ant 1.6, will require JDK 1.2 or
-      later
-    </div>
-    </div>
+       <p>We encourage user to give this beta a release a try and report
+       any bugs found so that we get a chance to fix them before we make
+       the final release of Ant 1.6.</p>
 
-  </section>
+       <p>Ant 1.6 adds a lot of new features, most prominently support
+       for XML namespaces as well as a new concept of Ant libraries that
+       makes use of namespaces to avoid name clashes of custom tasks.
+       For a longer list of fixed bugs and new features see the release
+       notes.</p>
+
+       <p>The manual of Ant 1.6 is available on line
+       <a href="manual-1.6beta/"> here</a>.</p>
+
+    </section>
 
   <section name="Apache Ant">