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

git-svn-id: https://svn.apache.org/repos/asf/ant/core/tags/ANT_MAIN_14B2@269591 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644
index 69abaa7..0000000
--- a/.cvsignore
+++ /dev/null
@@ -1,10 +0,0 @@
-.ant.properties
-dist
-build
-bootstrap
-distribution
-prj.el
-emacs-jprj.el
-bootstrap.bat.pif
-velocity.log
-
diff --git a/KEYS b/KEYS
deleted file mode 100644
index 1573ec5..0000000
--- a/KEYS
+++ /dev/null
@@ -1,70 +0,0 @@
-This file contains the PGP keys of various developers.
-Please don't use them for email unless you have to. Their main
-purpose is code signing.
-
-Users: pgp < KEYS
-Developers: 
-	pgp -kxa <your name> and append it to this file.
-	(pgpk -ll <your name> && pgpk -xa <your name>) >> this file.
-        (gpg --list-sigs <your name>
-             && gpg --armor --export <your name>) >> this file.
-
-Type Bits/KeyID    Date       User ID
-pub  1024/FEECAAED 1998/11/11 Stefan Bodewig <bodewig@bost.de>
-                              Stefan Bodewig <bodewig@apache.org>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3i
-
-mQCNAzZJoiMAAAEEAMzhUxTOC20Nprp6K4nLTiARt+EXii/dovNWWcfzZcYXi/lX
-r3zpUTTZxlKQpd4RaHjFmGgoOraZE4jCRFARVcFJgYmGUKpcWJZO7YKL36WUizTM
-+dyB2ycOtzlty1W5VmRL3FGqo67pKA9F/QHg3NSu9hY1W9xPPK7Kq3f+7KrtAAUR
-tCBTdGVmYW4gQm9kZXdpZyA8Ym9kZXdpZ0Bib3N0LmRlPokAlQIFEDZSrGXHcgyK
-jiW9zQEBshEEAMlG4qVjKp4/agdJG56M6izx9oaKecFLXHQJrFUy3w2PvZHFYtXc
-osXKorX6bPrE8uB57MxbY2WapKeVRodlG0+j39vAf501duK8q2rktfWt9Cl4JjJ4
-DbWhSWfV1ci62u2gCxwYQe22F9Wh+vhOR5NK9RTbSKhupdlFsnrk/i7xiQCVAwUQ
-NkmiI67Kq3f+7KrtAQGdxQQAlcFOzSv7G6M4uGbgvw7IGgrhx7rawtIyv9hLXgVC
-7ua9xaZV8G0Fl9gh8RnbdcZ4R/aT+KIiAFaslfZ3t6hlC4MTbnAJqvdS/NO98ZkJ
-YvnzZSKHflAbd5gyE7IVxBC9/xRlF/Wls5sYNwb6RjoRCaOjxN/y3WCLa3Va101v
-zNy0I1N0ZWZhbiBCb2Rld2lnIDxib2Rld2lnQGFwYWNoZS5vcmc+iQCVAwUQOxIo
-BK7Kq3f+7KrtAQGn6gP/SBACdHakA4H//otpyESSrk4PmyOaYF0Kyok43Gee2mT+
-m9+jZ3jLcC0oav6iH+otL/lhk9t/JDM8LjD2kAkdWWoIvvuPyCx97gOzojIo0Ve2
-1wuxJTF/VIjwyOtE8FzE7p4tkc6EubVpeZkV9Pq9HFRBCUcyKJDLnF4tbstScLU=
-=OBLe
------END PGP PUBLIC KEY BLOCK-----
-
-
-
-
-pub  1024D/51898504 2001-05-29 Conor MacNeill <conor@cortexebusiness.com.au>
-uid                            Conor MacNeill <conor@apache.org>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.0.6 (MingW32)
-Comment: For info see http://www.gnupg.org
-
-mQGiBDsTqygRBACiZckNdclTlQFonLaIKBFGhMy0KKByw0x8XA4iwdbCXuF6xNIc
-HIFHajJ74AHchQ4d8xtomBy6b8yvFgWVeaZensvn69BlLeqGdyeJRzfPt6TgRnzZ
-2eWhb0HXdG3JwxL/2BabDhHfs4YJOrgB/vhRFQku6oCMRiBPtJj2werD6wCg0/zp
-jacYTw6+CR+sVvneCNyySFED/R3j10c4RnR8djgv1jKT8CKPuHYraupI9INEe+I6
-7qWjtJ02GzvMO6TElAtUsf4aysu45GgwkwEBnuG6mYb3Pq0V2c5tJc2A3Tj3DrdR
-i3HUNwurbus76I0sPyyENPu12QPeC6mvWLEsxVJ9o0hRKFayGvYUmrwWK9UFLjvp
-p9cXBACDHgLn7MAVLqUdYhRrUj/M+GOUpvBikEgoJJrEUmb5X4+++dffMh5HBIO4
-5LA11qEKuM2xnKqOilP7NLYXz1Fe0ocqv0jsHB4SprFTTai7ma31uwuRQvCQXVv1
-yJ5CLqYda64h/UA2kmmR2dfopmvDogYEMz/HU5voozxe7BEI7bQhQ29ub3IgTWFj
-TmVpbGwgPGNvbm9yQGFwYWNoZS5vcmc+iFcEExECABcFAjsTqygFCwcKAwQDFQMC
-AxYCAQIXgAAKCRCBBGRPUYmFBDgIAKCZztXqKhK6kXOnoGy7opCNmWU0lwCgsPDa
-4m+ruW3ch0rfbqtR75S52R+0LUNvbm9yIE1hY05laWxsIDxjb25vckBjb3J0ZXhl
-YnVzaW5lc3MuY29tLmF1PohXBBMRAgAXBQI7E6xMBQsHCgMEAxUDAgMWAgECF4AA
-CgkQgQRkT1GJhQTY0ACgmZmKheHzjPJs5hybpyvnvEiPYqYAn2+ryxdtz8XyOMEx
-GRmHNlhG7svsuQENBDsTqy0QBACfsCxJ6iCtgX8zjlVtMsMfDqu72x5sYatWKn8c
-u+4Oj5mi0x6azZIhwCa+K3ihLVOyG1mCRnzztGTIxWYRhq3TESIVOfgm+NgLGrmA
-XUTFyCT+21TExLCpuVZKmUHsWXLxDtfQ1diPeQpiQ8+Fvb/4jLGFjFIrQ2VjtFQn
-kumkSwADBgP9H0bF4hdMuVEcSJ9imxSoJshcOOA3Vd2+YiCTZhBygWM49wY5jNos
-/DArIjNCE53IlOu/UtHB2jqkSqjF0soGYsUjeCWouiTP9hLuMKPjnqj9ryJPTDKz
-nTCZ4TuB5CtzrKTlWLmPCPpFsGqe4KjMeKg/mqGqjPKl97xgStK9N9GIRgQYEQIA
-BgUCOxOrLQAKCRCBBGRPUYmFBMM6AJsF3FFyZGEmbt9aGG1W/u0oI9mcLgCfQyJ+
-aalbspazea4J9zgi59SSwOM=
-=Icm2
------END PGP PUBLIC KEY BLOCK-----
-
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 032be14..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * ============================================================================
- *                   The Apache Software License, Version 1.1
- * ============================================================================
- * 
- *    Copyright (C) 1999 The Apache Software Foundation. All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- * 
- * 1. Redistributions of  source code must  retain the above copyright  notice,
- *    this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if any, must
- *    include  the following  acknowledgment:  "This product includes  software
- *    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
- *    Alternately, this  acknowledgment may  appear in the software itself,  if
- *    and wherever such third-party acknowledgments normally appear.
- * 
- * 4. The names "Ant" and  "Apache Software Foundation"  must not be used to
- *    endorse  or promote  products derived  from this  software without  prior
- *    written permission. For written permission, please contact
- *    apache@apache.org.
- * 
- * 5. Products  derived from this software may not  be called "Apache", nor may
- *    "Apache" appear  in their name,  without prior written permission  of the
- *    Apache Software Foundation.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
- * APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
- * ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
- * (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * 
- * This software  consists of voluntary contributions made  by many individuals
- * on behalf of the  Apache Software Foundation.  For more  information  on the 
- * Apache Software Foundation, please see <http://www.apache.org/>.
- *
- */
diff --git a/README b/README
deleted file mode 100644
index 4420f2d..0000000
--- a/README
+++ /dev/null
@@ -1,70 +0,0 @@
-
-                                 A     N     T
- 
-
-  What is it? 
-  -----------
-  
-  Ant is a Java based build tool. In theory it is kind of like "make" 
-  without makes wrinkles and with the full portability of pure java code.
-
-  
-  Why?
-  ----
-  
-  Why another build tool when there is already make, gnumake, nmake, jam, 
-  and others? Because all of those tools have limitations that its original 
-  author couldn't live with when developing software across multiple platforms. 
-  
-  Make-like tools are inherently shell based. They evaluate a set of 
-  dependencies and then execute commands not unlike what you would issue on a 
-  shell. This means that you can easily extend these tools by using or writing 
-  any program for the OS that you are working on. However, this also means that 
-  you limit yourself to the OS, or at least the OS type such as Unix, that you 
-  are working on.
-  
-  Makefiles are inherently evil as well. Anybody who has worked on them for any 
-  time has run into the dreaded tab problem. "Is my command not executing 
-  because I have a space in front of my tab!!!" said the original author of Ant 
-  way too many times. Tools like Jam took care of this to a great degree, but 
-  still use yet another format to use and remember.
-  
-  Ant is different. Instead a model where it is extended with shell based 
-  commands, it is extended using Java classes. Instead of writing shell 
-  commands, the configuration files are XML based calling out a target tree 
-  where various tasks get executed. Each task is run by an object which 
-  implements a particular Task interface.
-  
-  Granted, this removes some of the expressive power that is inherent by being 
-  able to construct a shell command such as `find . -name foo -exec rm {}` but 
-  it gives you the ability to be cross platform. To work anywhere and 
-  everywhere. And hey, if you really need to execute a shell command, Ant has 
-  an exec rule that allows different commands to be executed based on the OS 
-  that it is executing on.
-
-  The Latest Version
-  ------------------
-
-  Details of the latest version can be found on the Apache Jakarta
-  Project web site <http://jakarta.apache.org/>.
-
-
-  Documentation
-  -------------
-
-  Documentation is available in HTML format, in the docs/ directory.
-  For building see docs/index.html#buildingant.
-  For installing see docs/index.html#installing.
-
-
-  Licensing
-  ---------
-
-  This software is licensed under the terms you may find in the file 
-  named "LICENSE" in this directory.
-  
-
-  Thanks for using Ant.
-
-                                          The Apache Jakarta Project
-                                         <http://jakarta.apache.org/>
diff --git a/ant.properties.sample b/ant.properties.sample
deleted file mode 100644
index 5be65b5..0000000
--- a/ant.properties.sample
+++ /dev/null
@@ -1,14 +0,0 @@
-# This file is a sample .ant.properties file used for building ant.
-# Modify it for your own needs and copy it to .ant.properties 
-#
-# <-- starts a comment
-
-# If you wanted to use the better than average jikes compiler uncomment next line
-# build.compiler=jikes
-# build.compiler.warnings=true
-# build.compiler.pedantic=true
-# build.compiler.depend=true
-
-# If you want to use non-standard jars then edit following lines
-# jar.junit=/path/to/my/junit.jar
-
diff --git a/bootstrap.bat b/bootstrap.bat
deleted file mode 100755
index 787af61..0000000
--- a/bootstrap.bat
+++ /dev/null
@@ -1,85 +0,0 @@
-@echo off
-
-REM You will need to specify JAVA_HOME if compiling with 1.2 or later.
-
-set OLDJAVA=%JAVA%
-set OLDJAVAC=%JAVAC%
-set OLDCLASSPATH=%CLASSPATH%
-set OLDANTHOME=%ANT_HOME%
-
-set ANT_HOME=.
-
-if "" == "%JAVA%"  if "" == "%JAVA_HOME%" set JAVA=java
-if "" == "%JAVA%"                         set JAVA=%JAVA_HOME%\bin\java
-
-if "" == "%JAVAC%" if "" == "%JAVA_HOME%" set JAVAC=javac
-if "" == "%JAVAC%"                        set JAVAC=%JAVA_HOME%\bin\javac
-
-echo.
-echo ... Bootstrapping Ant Distribution
-
-if     "%OS%" == "Windows_NT" if exist bootstrap\nul rmdir/s/q bootstrap
-if not "%OS%" == "Windows_NT" if exist bootstrap\nul deltree/y bootstrap
-if     "%OS%" == "Windows_NT" if exist build\classes\nul rmdir/s/q build\classes
-if not "%OS%" == "Windows_NT" if exist build\classes\nul deltree/y build\classes
-
-SET LOCALCLASSPATH=lib\crimson.jar;lib\jaxp.jar;lib\optional\junit.jar
-
-if exist "%JAVA_HOME%\lib\tools.jar" call src\script\lcp.bat %JAVA_HOME%\lib\tools.jar
-if exist "%JAVA_HOME%\lib\classes.zip" call src\script\lcp.bat %JAVA_HOME%\lib\classes.zip
-
-set TOOLS=src\main\org\apache\tools
-set CLASSDIR=classes
-
-SET CLASSPATH=%LOCALCLASSPATH%;%CLASSDIR%;src\main;%CLASSPATH%
-
-echo JAVA_HOME=%JAVA_HOME%
-echo JAVA=%JAVA%
-echo JAVAC=%JAVAC%
-echo CLASSPATH=%CLASSPATH%
-
-if     "%OS%" == "Windows_NT" if exist %CLASSDIR%\nul rmdir/s/q %CLASSDIR%
-if not "%OS%" == "Windows_NT" if exist %CLASSDIR%\nul deltree/y %CLASSDIR%
-
-if not exist %CLASSDIR%\nul mkdir %CLASSDIR%
-if not exist build\nul mkdir build
-if not exist build\classes\nul mkdir build\classes
-
-echo.
-echo ... Compiling Ant Classes
-
-"%JAVAC%" -d %CLASSDIR% %TOOLS%\tar\*.java %TOOLS%\zip\*.java %TOOLS%\ant\*.java %TOOLS%\ant\types\*.java %TOOLS%\ant\taskdefs\*.java %TOOLS%\ant\util\*.java %TOOLS%\ant\util\regexp\RegexpMatcher.java %TOOLS%\ant\util\regexp\RegexpMatcherFactory.java %TOOLS%\ant\taskdefs\condition\*.java %TOOLS%\ant\taskdefs\compilers\*.java 
-
-echo.
-echo ... Copying Required Files
-
-copy %TOOLS%\ant\taskdefs\*.properties %CLASSDIR%\org\apache\tools\ant\taskdefs
-copy %TOOLS%\ant\types\*.properties %CLASSDIR%\org\apache\tools\ant\types
-
-echo.
-echo ... Building Ant Distribution
-
-xcopy /s/q %CLASSDIR% build\classes
-
-"%JAVA%" %ANT_OPTS% org.apache.tools.ant.Main -emacs bootstrap
-
-echo.
-echo ... Cleaning Up Build Directories
-
-if     "%OS%" == "Windows_NT" if exist %CLASSDIR%\nul rmdir/s/q %CLASSDIR%
-if not "%OS%" == "Windows_NT" if exist %CLASSDIR%\nul deltree/y %CLASSDIR%
-
-echo.
-echo ... Done Bootstrapping Ant Distribution
-
-set JAVA=%OLDJAVA%
-set JAVAC=%OLDJAVAC%
-set CLASSPATH=%OLDCLASSPATH%
-set ANT_HOME=%OLDANTHOME%
-set OLDJAVA=
-set OLDJAVAC=
-set OLDCLASSPATH=
-set LOCALCLASSPATH=
-set OLDANTHOME=
-set TOOLS=
-
diff --git a/bootstrap.sh b/bootstrap.sh
deleted file mode 100755
index 310b697..0000000
--- a/bootstrap.sh
+++ /dev/null
@@ -1,129 +0,0 @@
-#!/bin/sh
-
-# Make sure that the classpath & java_home are in Unix format before we use them
-if [ "$OSTYPE" = "cygwin32" ] || [ "$OSTYPE" = "cygwin" ] ; then
-  CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
-  JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-fi
-
-# You will need to specify JAVA_HOME if compiling with 1.2 or later.
-
-if [ -n "$JAVA_HOME" ] ; then
-  if [ -f "$JAVA_HOME/lib/tools.jar" ] ; then
-    CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar
-  fi
- 
-  if [ -f "$JAVA_HOME/lib/classes.zip" ] ; then
-    CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/classes.zip
-  fi
-else
-  echo "Warning: JAVA_HOME environment variable not set."
-  echo "  If build fails because sun.* classes could not be found"
-  echo "  you will need to set the JAVA_HOME environment variable"
-  echo "  to the installation directory of java."
-fi
-
-# IBM's JDK on AIX uses strange locations for the executables:
-# JAVA_HOME/jre/sh for java and rmid
-# JAVA_HOME/sh for javac and rmic
-if [ -z "$JAVAC" ] ; then
-  if [ -n "$JAVA_HOME"  ] ; then
-    if [ -x "$JAVA_HOME/sh/javac" ] ; then 
-      JAVAC=${JAVA_HOME}/sh/javac;
-    else
-      JAVAC=${JAVA_HOME}/bin/javac;
-    fi
-  else
-    JAVAC=javac
-  fi
-fi
-if [ -z "$JAVACMD" ] ; then 
-  if [ -n "$JAVA_HOME"  ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 
-      JAVACMD=$JAVA_HOME/jre/sh/java
-    else
-      JAVACMD=$JAVA_HOME/bin/java
-    fi
-  else
-    JAVACMD=java
-  fi
-fi
- 
-if [ ! -x "$JAVACMD" ] ; then
-  echo "Error: JAVA_HOME is not defined correctly."
-  echo "  We cannot execute $JAVACMD"
-  exit
-fi
-
-ANT_HOME=.
-export ANT_HOME
-
-echo ... Bootstrapping Ant Distribution
-
-if [ -d "bootstrap" ] ; then
-  rm -r bootstrap
-fi
-
-if [ -d "build/classes" ] ; then
-  rm -r build/classes
-fi
-
-CLASSPATH=lib/crimson.jar:lib/jaxp.jar:${CLASSPATH}
-
-DIRLIBS=lib/optional/*.jar
-for i in ${DIRLIBS}
-do
-    # if the directory is empty, then it will return the input string
-    # this is stupid, so case for it
-    if [ "$i" != "${DIRLIBS}" ] ; then
-        CLASSPATH=$CLASSPATH:"$i"
-    fi
-done
-
-TOOLS=src/main/org/apache/tools
-CLASSDIR=classes
-
-CLASSPATH=${CLASSDIR}:src/main:${CLASSPATH}
-
-# convert the unix path to windows
-if [ "$OSTYPE" = "cygwin32" ] || [ "$OSTYPE" = "cygwin" ] ; then
-   CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
-fi
-
-export CLASSPATH
-
-mkdir -p ${CLASSDIR}
-mkdir -p build
-mkdir -p bin
-
-echo ... Compiling Ant Classes
-
-"${JAVAC}" -d ${CLASSDIR} ${TOOLS}/tar/*.java ${TOOLS}/zip/*.java \
-    ${TOOLS}/ant/util/regexp/RegexpMatcher.java \
-    ${TOOLS}/ant/util/regexp/RegexpMatcherFactory.java \
-    ${TOOLS}/ant/util/*.java ${TOOLS}/ant/types/*.java \
-    ${TOOLS}/ant/*.java ${TOOLS}/ant/taskdefs/*.java \
-    ${TOOLS}/ant/taskdefs/compilers/*.java \
-    ${TOOLS}/ant/taskdefs/condition/*.java
-
-echo ... Copying Required Files
-
-cp src/main/org/apache/tools/ant/taskdefs/defaults.properties \
-    ${CLASSDIR}/org/apache/tools/ant/taskdefs
-cp src/main/org/apache/tools/ant/types/defaults.properties \
-    ${CLASSDIR}/org/apache/tools/ant/types
-cp src/script/antRun bin
-chmod +x bin/antRun
-
-echo ... Building Ant Distribution
-
-cp -r ${CLASSDIR} build
-
-"${JAVACMD}" -classpath "${CLASSPATH}" -Dant.home=. org.apache.tools.ant.Main -emacs bootstrap
-
-echo ... Cleaning Up Build Directories
-
-rm -rf ${CLASSDIR}
-rm -rf bin
-
-echo ... Done Bootstrapping Ant Distribution
diff --git a/build.bat b/build.bat
deleted file mode 100755
index c3c315c..0000000
--- a/build.bat
+++ /dev/null
@@ -1,30 +0,0 @@
-@echo off
-
-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
-call bootstrap.bat
-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
-echo Bootstrap FAILED
-goto cleanup
-
-:runAnt
-set LOCALCLASSPATH=lib\crimson.jar;lib\jaxp.jar;bootstrap\lib\ant.jar
-for %%i in (lib\optional\*.jar) do call bootstrap\bin\lcp.bat "%%i"
-set CLASSPATH=%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
-goto cleanup
-
-:install_ant
-call bootstrap\bin\ant.bat -emacs -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
deleted file mode 100755
index b620867..0000000
--- a/build.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/sh
-
-REALANTHOME=$ANT_HOME
-ANT_HOME=bootstrap
-export ANT_HOME
-
-if test ! -f bootstrap/lib/ant.jar -o  ! -x bootstrap/bin/ant -o ! -x bootstrap/bin/antRun ; then
-  /bin/sh ./bootstrap.sh
-fi    
-
-if test ! -f bootstrap/lib/ant.jar -o  ! -x bootstrap/bin/ant -o ! -x bootstrap/bin/antRun ; then
-  echo Bootstrap FAILED
-  exit
-fi
-
-LOCALCLASSPATH=lib/crimson.jar:lib/jaxp.jar
-# add in the dependency .jar files
-DIRLIBS=lib/optional/*.jar
-for i in ${DIRLIBS}
-do
-    if [ "$i" != "${DIRLIBS}" ] ; then
-        LOCALCLASSPATH=$LOCALCLASSPATH:"$i"
-    fi
-done
-
-CLASSPATH=$LOCALCLASSPATH:$CLASSPATH
-export CLASSPATH
-
-
-if [ "$REALANTHOME" != "" ] ; then
-  ANT_INSTALL="-Dant.install=$REALANTHOME"
-fi
-
-bootstrap/bin/ant -emacs $ANT_INSTALL $*
-
diff --git a/docs.xml b/docs.xml
deleted file mode 100644
index 758cb9c..0000000
--- a/docs.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<project name="build-site" default="docs" basedir=".">
-
-    <!-- Initialization properties -->
-    <property name="project.name" value="ant"/>
-    <property name="docs.src"     location="xdocs"/>
-    <property name="docs.dest"    location="docs"/>
-    <property name="project.file" value="stylesheets/project.xml" />
-    <property name="site.dir"     location="../jakarta-site2" />
-    <property name="templ.path"   location="xdocs/stylesheets" />
-    <property name="velocity.props"   location="${docs.src}/velocity.properties" />
-
-    <path id="anakia.classpath">
-        <fileset dir="${site.dir}/lib">
-            <include name="*.jar"/>
-        </fileset>
-    </path>
-
-    <target name="prepare">    
-        <available classname="org.apache.velocity.anakia.AnakiaTask" 
-                   property="AnakiaTask.present">
-            <classpath refid="anakia.classpath"/>
-        </available>
-    </target>
-
-    <target depends="prepare" name="prepare-error" unless="AnakiaTask.present">
-        <echo>
-            AnakiaTask is not present! Please check to make sure that 
-            velocity.jar is in your classpath.
-        </echo>
-    </target>
-
-    <target name="docs" depends="prepare-error" if="AnakiaTask.present">
-        <taskdef name="anakia" classname="org.apache.velocity.anakia.AnakiaTask" reverseloader="true">
-            <classpath refid="anakia.classpath"/>
-        </taskdef>
-        
-        <anakia basedir="${docs.src}" destdir="${docs.dest}/"
-             extension=".html" style="./site.vsl"
-             projectFile="${project.file}"
-             excludes="**/stylesheets/** faq.xml"
-             includes="**/*.xml"
-             lastModifiedCheck="true"
-             templatePath="${templ.path}"
-             velocityPropertiesFile="${velocity.props}">
-        </anakia>
-
-        <anakia basedir="${docs.src}" destdir="${docs.dest}/"
-             extension=".html" style="./faq.vsl"
-             projectFile="${project.file}"
-             includes="faq.xml"
-             lastModifiedCheck="true"
-             templatePath="${templ.path}"
-             velocityPropertiesFile="${velocity.props}">
-        </anakia>
-    </target>
-    
-    <target name="javadocs">
-      <ant antfile="build.xml" target="dist_javadocs">
-        <property name="dist.javadocs" value="${docs.dest}/manual/api" />
-      </ant>
-    </target>
-    
-    <target name="all" depends="docs, javadocs"/>
-</project>
diff --git a/docs/ant2/FunctionalRequirements.html b/docs/ant2/FunctionalRequirements.html
deleted file mode 100644
index 46ba380..0000000
--- a/docs/ant2/FunctionalRequirements.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
-  <title>Ant Functional Requirements Document</title>
-</head>
-<body>
-<h2>Ant Functional Requirements</h2>
-<h3>Roles</h3>
-<p><b>User: </b>runs Ant with a complete build specification and/or
-writes Ant build specifications.</p>
-<p><b>Task Developer: </b>writes/modifies Ant tasks.</p>
-<p><b>Extensions Developer: </b>develops extensions like a GUI, IDE plugin,
- (scripting extension?)</p>
-<p><b>Core Developer: </b>works on the Ant core</p>
-<h3>Requirements from the Ant User perspective</h3>
-<p>It should be easy to write a build file for small Java programs. It should
- be possible to write a build file set for large Java systems. Maintenance
- of such a set should be easy (e.g. no duplication of information).</p>
-<p>Every build process contains dependencies (e.g. item A needs B to be available
- before its own build can start). It should be possible to specify these
- dependencies in a declarative way.</p>
-<p>Suppose a working build specification for system A is available. It should
- be possible for system B to declare dependencies to <i>(modules of?)</i> system
- A without touching the build specification of A. Ant should be able to handle
- dependencies between modules which form a DAG.</p>
-<p>It should be possible to modify details of the actual build (e.g. classpath,
- used compiler) without the need to change the build specification. This
- feature is needed when starting Ant (e.g. configuration with command line
- parameters) and for a subproject build driven by the build of a dependent
- project.</p>
-<p>Often similar items have to be built. Therefore it should be possible
- to provide general <i>(template?)</i> build specifications, and to declare for
- a concrete item that it should be built according to such a general specification.</p>
-<p>One result of the build process should be a log which shows what has been done.</p>
-<h3>Requirements from the task developer perspective</h3>
-<p>A task should not need to know the structure of a build specification.
- It would have to provide an interface (not necessarily in the Java language
- sense) for the Ant core to input the necessary configuration attributes
- and to execute the task). There should be a standard functionality to allow
- a task doing log output.</p>
-<p>An interface (again not necessarily in the Java language sense) should
- be provided which allows a task to get <i>(and set?)</i> information about it's
- context in the build process.</p>
-<h3>Requirements from the extensions developer perspective</h3>
-<p>The Ant core should be independent from a specific representation of the
- build specification. It should be possible to create a specification programmatically
- (thereby allowing the introduction of new representations). The core should
- do no in- or output itself. Build errors should always lead to throwing
- an Exception.</p>
-<p>Access to the current state of a build should be available, and its modification
- possible.</p>
-</body>
-</html>
-
diff --git a/docs/ant2/features.html b/docs/ant2/features.html
deleted file mode 100644
index 5cca256..0000000
--- a/docs/ant2/features.html
+++ /dev/null
@@ -1,366 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-    <meta http-equiv="Content-Language" content="en-us">
-    <title>Ant2 feature list</title>
-
-      <style type="text/css">
-        .comment {
-          COLOR: #900000;
-	  BACKGROUND: #ffa;
-        }
-      </style>
-
-  </head>
-
-  <body bgcolor="#FFFFFF">
-
-    <p class="comment">If something looks like this, this is either a
-    request for input or a &quot;REVISIT&quot; marker or similar.</p>
-
-    <h1>Ant2 Goals</h1>
-
-    <p>Even though Ant2 is expected to be incompatible with the
-    current Ant1 series, it still has the same goals. Ant is a Java
-    based build tool and this remains the main focus of it. The
-    original goals of simplicity, understandability and extensibility
-    still stand and Ant2 will try to achieve them even better than
-    Ant1 does.</p>
-
-    <h2>Simplicity and Understandability</h2>
-
-    <p>These two goals are closely related. Ant build files shall be
-    easy to read and understand - at the same time it should be easy
-    to write a custom Ant task and to use the utility classes that
-    Ant2 provides.</p>
-
-    <p>Ant2 shall be more consistent than Ant1 is - this means:</p>
-
-    <ul>
-
-      <li>core tasks will use the same attribute names for common
-      functionality</li>
-
-      <li>similar tasks will be unified to use similar forms.</li>
-
-      <li>different implementations for the same functionality will be
-      hidden behind facade tasks.</li>
-
-      <li>properties and data types will be unified so that they share
-      the same namespace and inheritance rules. <i
-      class="comment">Need to talk about how ${} expansion works for
-      filesets and so on.</i></li>
-
-    </ul>
-
-    <p>Furthermore some things will have to become more explicit:</p>
-
-    <ul>
-
-      <li>remove all magic properties</li>
-
-      <li>make build file writers explicitly state which
-      filters/filtersets a copy task will use</li>
-
-      <li>add scoping rules for properties so that not all of them
-      will be inherited by sub-builds, only those that have been
-      specified explicitly. <i class="comment">Fill in details once
-      they've been sorted out.</i></li>
-
-    </ul>
-
-    <p>The front-ends for Ant2 shall be smart enough to automatically
-    detect the required libraries (like <code>tools.jar</code>), the
-    use of native scripts shall be kept to a minimum.</p>
-
-    <p>Build file writers can attach a message to targets that will be
-    presented to the user if that target is going to be skipped (based
-    on the if/unless attribute of the target).</p>
-
-    <p>Even though Ant installation already is quite simple in Ant1
-    (extract the archive and set two environment variables),
-    alternative ways to install Ant like using 
-    <a href="http://java.sun.com/products/javawebstart/">Webstart</a> or
-    a "self-extracting" JAR file will be explored.</p>
-
-    <h2>Extensibility</h2>
-
-    <p>Ant2 like Ant1 uses build files written in XML as its main
-    input, but it will not be restricted to it. The core of Ant2 will
-    work on an object model of Project/Target/Task that is independent
-    of any external representation.</p> 
-
-    <p>As an extension of the current <code>&lt;taskdef&gt;</code>
-    concept, tasks can be bundled into task libraries (together with
-    data types and other utility classes). These task libraries are
-    special JAR archives that somehow describe the contained tasks to
-    Ant. Ant will automatically know all tasks contained in task
-    libraries that have been placed into a special directory - in
-    addition task libraries can be referenced and used in a build file
-    explicitly. <i class="comment">Fill in details once they've been
-    sorted out.</i></p>
-
-    <p>It has become apparent, that several &quot;aspects&quot; of
-    tasks are so common that task writers find themselves duplicating
-    code all over again - things like classpath handling or &quot;do
-    we stop the build if this task fails?&quot; functionality for
-    example. Ant2 will provide a way to let the user attach an
-    &quot;aspect handler&quot; to a project - all attributes that live
-    in a certain namespace are going to be passed to this handler. <i
-    class="comment">Need to talk about TaskContext here.</i></p>
-
-    <p>Ant2 will farm out common functionality from tasks into utility
-    classes so that task writers can benefit from a tested and stable
-    framework - they shouldn't need to deal with existing tasks
-    directly (like some tasks &quot;abuse&quot; the
-    <code>&lt;touch&gt;</code> task in Ant1).</p>
-
-    <p>Ant2 will provide a way to define tasks that itself can have
-    tasks as child elements without knowing all defined tasks at
-    compile time.  Discussions on ant-dev usually talk about
-    &quot;container tasks&quot; in this context.</p>
-
-    <p>The only way to &quot;include&quot; common XML snippets so far
-    has been the usage of external SYSTEM entities, a mechanism that
-    is tied to DTDs and doesn't mix well with alternative
-    approaches like XML Schema.  Ant2 will provide a built-in include
-    mechanism.</p>
-
-    <h1>New/Modified Features</h1>
-
-    <p>Ant2 will run the build process fully dynamically, which means
-    that task won't be instantiated before they are actually being run
-    and <code>${}</code> expansion will see the very latest value of a
-    property. It will be possible to reassign values of properties via
-    a built-in task.</p>
-
-    <h2>Compatibility with Ant1</h2>
-
-    <p>Ant2 is going to break Ant1 in several ways:</p>
-
-    <ul>
-
-      <li>Tasks written for Ant1 won't work in Ant2 as the API of
-      Ant's core and the names of utility classes are going to
-      change. There will probably be adaptors and utility classes to
-      ease the transition for task writers.</li>
-
-      <li>Build files written for Ant1 will probably not be valid in
-      Ant2 or at least not yield the same results. It is expected that
-      Ant2 will come with a tool to translate Ant1 build files into
-      equivalent Ant2 versions</li>
-
-      <li>magic properties like <code>build.compiler</code> may
-      disappear and be replaced by a different customization
-      concept.</li>
-
-      <li>Ant2 is going to require a JDK version 1.2 or above and a
-      JAXP compliant parser version 1.1 or above.</li>
-
-      <li>If you specify more than one target in another target's
-      depends attribute, Ant1 will execute these targets from left to
-      right (as long as the dependency tree permits it) - Ant2 will
-      not guarantee this behavior but will allow build file writers to
-      specify the order explicitly.</li>
-
-    </ul>
-
-    <h2>Support Integration of Ant Into Other Tools</h2>
-
-    <p>Ant2 will have a clear separation between the front-end that is
-    responsible for user interactions, the object model that
-    represents the project to build and the part of Ant that runs the
-    build process itself <i class="comment">Name that TaskEngine,
-    ProjectEngine, ExecutionEngine or what?</i>. This separation is
-    expected to ease the integration of Ant (or parts of it) into
-    other products.</p>
-
-    <p>Ant2 itself will include a command line front-end and Antidote
-    will become the GUI front-end to it. Other front-ends like a
-    servlet front-end are expected <i class="comment">outside of
-    Ant's core</i> as well.</p>
-
-    <p>In addition to this separation, the following features should
-    help people who want to integrate Ant into their products:</p>
-
-    <ul>
-
-      <li>It will be possible to cancel a running build process.</li>
-
-      <li>Ant will detach from <code>System.err/.out/.in</code>
-      completely and communicate with the front-end via a well defined
-      API.  The front-end will have to handle user input for tasks
-      that need it (tasks that ask for a password for example).</li>
-
-      <li>Tasks will provide some way to identify their attributes
-      from the outside. <i class="default">fill in details</i></li>
-
-    </ul>
-
-    <h2>More Control for Users and Build File Writers</h2>
-
-    <p>Ant2 will use a <code>BuildListener</code> concept similar to
-    the one of Ant1 but may provide a richer set of events. It will be
-    possible to attach and detach listeners to a build process from
-    within the build file and to modify the behavior of attached
-    listeners.</p>
-
-    <p>In Ant1 users have little control over how things work.  There
-    are a couple of magic properties to make Ant chose a preferred
-    compiler or modify the CLASSPATH, but they are barely documented.
-    If users want to set these properties for every build process,
-    they have to learn the undocumented tricks of the
-    <code>ANT_OPTS</code> environment variable or the
-    <code>~/.antrc</code> file.</p>
-
-    <p>Ant2 will have a well defined system to specify user
-    preferences.  This system will not only let user chose their
-    compiler but also give them a chance to provide default values for
-    attributes (say you always want the <code>debug</code> attribute
-    of the <code>javac</code> task to be true - unless it has been
-    disabled explicitly). <i class="comment">Need to give details once
-    they've been sorted out.</i></p>
-
-    <h2>Documentation System</h2>
-
-    <p>All tasks will be documented in XML files using a common DTD <i
-    class="comment">Still need to define it</i> - task libraries are
-    expected to include the documentation using this DTD inside the
-    library itself.</p>
-
-    <h2>Better Subbuild Handling</h2>
-
-    <p class="comment">Is there something beyond &quot;should become
-    better&quot; right now?</p>
-
-    <h2>Data Types</h2>
-
-    <p>Ant1 supports a limited set of data types (fileset, patternset
-    and path) and at least up to Ant 1.3 it is not possible to
-    register custom data types without writing a task that does this.
-    Ant2 will provide a built-in mechanism to define new data
-    types.</p>
-
-    <p>Existing data-types will be improved, the files in a fileset
-    can be chosen based on more than just pattern matching for example
-    (modification time or permissions for example).  Ant2 will have
-    built-in tasks for set operations.</p>
-
-    <p>Data types and properties will share the same name space and
-    follow the same scoping and precedence rules. 
-    <i class="comment">${} again.</i></p>
-
-    <h2>Multi-Threading of Tasks Within a Target</h2>
-
-    <p>It will be possible to run several tasks in parallel - these
-    tasks will belong to the same target and all tasks will be joined
-    at the end of the target.</p>
-
-    <h2>Internationalization</h2>
-
-    <p>Ant2 itself will provide internationalized (error) messages and
-    provide utility classes to help task writers to do the same.  
-    <i class="comment">These utility classes may very well come from a
-    different (Jakarta) project</i>.</p>
-
-    <p>Ant's primary language and the language of the build file
-    will continue to be English.</p>
-
-    <h1>Rejected Features</h1>
-
-    <p>This is list is not complete, it just highlights some of the
-    rejected features and tries to explain why they've been
-    rejected.  Two very common reasons to reject something were, that
-    the request has been too vague or the same functionality could
-    already be provided by some other accepted new feature.</p>
-
-    <p>For a complete listing of all requested features, see <a
-    href="requested-features.html">requested-features.html</a>. The
-    discussion on all topics can be followed in the <a
-    href="http://marc.theaimsgroup.com/?l=ant-dev&r=1&w=2">archives
-    for ant-dev</a> in threads starting from 2001-03-21 - the subject
-    lines contained either <code>[VOTE]</code> or
-    <code>[DISC]</code>.</p>
-
-    <h2>Simple Flow-Control</h2>
-
-    <p>People asking for these kind of things have often heard the
-    standard "Ant shall not become yet another scripting language, Ant
-    shall not fall into the same traps make/Perl did ..." response
-    from the committers and some long-term ant-dev people.</p>
-
-    <p>The long version of that answer is:</p>
-
-    <ul>
-      <li>There are lots of open source scripting languages, there is
-      no need to define a new one.</li>
-
-      <li>Ant has been created to be a build tool.  While you can use
-      it for a whole lot of other things, this is not Ant's primary
-      focus (and it shouldn't be).  Most use-cases that ask for
-      flow-control are out of Ant's scope.</li>
-
-      <li>Ant already provides the requested functionality for many
-      common situations.  The execon and apply tasks can be used to
-      iterate over a set of files as the (planed for Ant2) javaon and
-      anton tasks will do.</li>
-
-      <li>Providing flow-control inside Ant's core would increase the
-      complexity of this core.  This would make it difficult for new
-      contributors to understand how Ant works and increase the
-      maintenance cost for Ant at the same time.  The goal of the Ant
-      developers is to push as much complexity and functionality out
-      of Ant's core into the tasks as possible.</li>
-    </ul>
-
-    <p>That being said, Ant2 will make it easy to write iteration or
-    conditional tasks via the new container task concept.  We expect
-    foreach, switch and if tasks to be written, but they will probably
-    not become core parts of the Ant distribution.</p>
-
-    <h2>Advanced Conditionals for if/unless Attributes</h2>
-
-    <p>The argument here is the same as for flow-control.  We are
-    talking about complexity that can be pushed from the core to tasks
-    - and that is what will be done.  Instead of additional power for
-    the if/unless attributes, Ant2 will have a new task that can set
-    properties based on the values of other properties or logical
-    combinations of other conditions, something like (making up
-    syntax):</p>
-
-<pre>
-&lt;condition name=&quot;javamail-complete&quot;&gt;
-  &lt;and&gt;
-    &lt;available class=&quot;javax.mail.Transport&quot;/&gt;
-    &lt;available class=&quot;javax.activation.DataHandler&quot;/&gt;
-  &lt;/and&gt;
-&lt;/condition&gt;
-</pre>
-
-    <p>will become possible</p>
-
-    <h2>Multi-Threaded Execution of Targets</h2>
-
-    <p>The general feeling was, that the combination of target
-    dependencies and multi-threading would soon become too complex,
-    especially since Ant2 will allow people to explicitly enforce the
-    order in which (independent) targets will be executed.</p>
-
-    <p>This issue will be explored again later, it has not been
-    rejected for all time being, but it is out of scope for
-    Ant&nbsp;2.0</p>
-
-    <h1>Ideas for New Tasks and Tools</h1>
-
-    <p>Please refer to <a
-    href="requested-features.html">requested-features.html</a> in the
-    section &quot;I. Things that don't affect the core but are
-    requests for new tasks or enhancements to existing tasks.&quot;
-    for this.</p>
-
-    <hr>
-      <p align="center">$Id$</p>
-      <p align="center">Copyright &copy; 2001 Apache Software
-        Foundation. All rights Reserved.</p>
-  </body>
-</html>
diff --git a/docs/ant2/original-specification.html b/docs/ant2/original-specification.html
deleted file mode 100644
index 882659e..0000000
--- a/docs/ant2/original-specification.html
+++ /dev/null
@@ -1,278 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "strict.dtd">
-<HTML> 
-  <HEAD> 
-	 <TITLE>Ant Specification, version 0.5</TITLE> 
-  </HEAD> 
-  <BODY> 
-	 <H1>Ant Specification</H1> 
-	 <P>Version 0.5 (2000/04/20)</P> 
-	 <P>This document specifies the behavior of Ant. At this time, this is a
-		working document with no implementation. It is hoped that this specification
-		will lead to a simplier and more consistent implementation of Ant.</P> 
-	 <P>This document is not intended to be used as an end user manual or user
-		guide to Ant. To adequatly explain the concepts herein in a way appropriate to
-		such a use would potentially complicate this document.</P> 
-	 <H2>Design Goals</H2> 
-	 <P>The following are the overall design goals of Ant:</P> 
-	 <UL> 
-		<LI>Simplicity</LI> 
-		<LI>Understandability</LI> 
-		<LI>Extensibility</LI> 
-	 </UL> 
-	 <H3>Simplicity</H3> 
-	 <P>Ant must be simple to use. Of course, as the definition of simple varies
-		according to the audience of the program. For Ant, since it is a build tool
-		aimed at programmers, the goal is to be simple to use for a competent
-		programmer.</P> 
-	 <H3>Understandability</H3> 
-	 <P>Ant must be clearly understandible for a first time as well as a veteran
-		user. This means that a new user should be able to use Ant comfortably the
-		first time and understand how to modify a build file by looking at it. And it
-		should not require much experience with Ant to understand how it works and how
-		to configure it for particular situtations.</P> 
-	 <H3>Extensibility</H3> 
-	 <P>Ant must be easy to extend. The API used to extend Ant must be easy to
-		use and the way in which these extensions are located and used by the core
-		runtime should be clear.</P> 
-	 <H2>Conceptual Overview</H2> 
-	 <P>This is a conceptual overview of the components used by Ant. Full APIs
-		will be defined later.</P> 
-	 <H3>Project</H3> 
-	 <P>The base unit of work in Ant is the <STRONG>Project</STRONG>. A Project
-		is defined by an editable text file and is represented by an object of type
-		<CODE>org.apache.ant.Project</CODE> at runtime.</P> 
-	 <P>A Project is a collection of <STRONG>Properties</STRONG> and
-		<STRONG>Targets</STRONG>.</P> 
-	 <H3>Properties</H3> 
-	 <P>Properties are mutable name-value pairs that are scoped to the Project
-		and held in a table. Only one pair is allowed per name. It is anticipated that
-		this data structure would be of type <CODE>java.util.Properties</CODE> or a type that has approximatly
-		the same contract.</P> 
-	 <P>Properties can be defined in a hierarchical manner. The order of
-		precidence in this hiearchy is:</P> 
-	 <UL> 
-		<LI>Properties defined on the command line or via a GUI tool</LI> 
-		<LI>Properties defined in the text file which defines the project.</LI> 
-		<LI>Properties defined in a file in the users <CODE>user.home</CODE> directory</LI> 
-		<LI>Properties defined in the installation directory that can be shared
-		  by multiple users.</LI> 
-	 </UL> 
-	 <P>Note: The current version of Ant allows the System property list to be
-		consulted for a return value if the property list doesn't satisfy the requested
-		property name. As all Java code has access to the system property list via the
-		<CODE>java.lang.System</CODE> class, this functionality is considered to be confusing and to be
-		removed.</P> 
-	 <P>Note: The current version of Ant allows property substitution to be
-		performed in the project file. This functionality is being removed.</P> 
-	 <H3>Targets</H3> 
-	 <P>Targets are ordered collections of <STRONG>Tasks</STRONG>, units of work
-		to be performed if a Target is executed. </P> 
-	 <P>Targets can define dependancies on other Targets within the Project. If
-		a Target is deemed to be executed, either directly on the command line, or via
-		a dependancy from some other Target, then all of its dependencies must first be
-		executed. Circular depenancies are resolved by examination of the dependancy
-		stack when a Target is evaluated. If a dependancy is already on the stack of
-		targets to be executed, then the dependancy is considered to have been
-		satisfied.</P> 
-	 <P>After all dependancies of a Target have been satisfied, all of the Tasks
-		contained by the target are configured and executed in sequential order. </P> 
-	 <H3>Tasks</H3> 
-	 <P>A Task is a unit of work. When a Task is to be executed, an instance of
-		the class that defines the behavior of the particular task specified is
-		instantiated and then configured. This class implements the <CODE>org.apache.ant.Task</CODE> interface.
-		It is then executed so that it may be able to perform its function. It is
-		important to note that this configuration occurs just before execution of the
-		task, and after execution of any previous tasks, so that configuration
-		information that was modified by any other Task can be properly set.</P> 
-	 <P>When a Task is executed, it is provided access to the object
-		representing the Project it is running in allowing it to examine the Property
-		list of the project and access to various methods needed to operate.</P> 
-	 <H2>Task Jar Layout</H2> 
-	 <P>Tasks are defined within Java Archive files. The name of the JAR
-		determines the name under which the task is known by in the system. For
-		example, if a Task JAR is named mvdir.jar, the task is known to the system as
-		<CODE>&quot;mvdir&quot;</CODE>.</P> 
-	 <P><EM>Question: Should we say that tasks belong in a JAR file with the
-		.tsk extension?</EM></P> 
-	 <P>The class within the Jar file that implements the <CODE>org.apache.ant.Task</CODE> interface is
-		specified by a manifest attribute named <CODE>Ant-Task-Class</CODE> in the Jar manifest. An example
-		manifest would look like:</P> 
-	 <PRE>    Manifest-Version: 1.0
-    Ant-Task-Class: org.apache.ant.task.javac.JavacTask</PRE> 
-	 <P>When the task is used by Ant, a class loader is created that reads
-		classes from the JAR file. This ensures that there is no chance of namespace
-		collision in the classes of various task JAR files.</P> 
-	 <H2>Installation</H2> 
-	 <P>When Ant is installed on a user system, it installs a directory
-		structure with the following form:</P> 
-	 <PRE>&lt;installdir&gt;/ant      (unix shell script)
-            /ant.bat
-            /ant.jar
-            /ant.properties
-            /tasks/[task jar files]
-            /docs/[documentation]
-            /README</PRE> 
-	 <P>Note: Current Jakarta practice is to name the Unix shell script with a
-		.sh extension. This goes against Unix conventions and is unecessary. Testing
-		has shown that the leaving the extension off on Unix will not interfere with
-		the working of the Windows batch file.</P>
-	 <P>Note: The ant.jar file has been moved from the lib/ directory and placed
-		alongside the shell startup scripts (which have also been moved out of the bin/
-		directory). This is because on windows platforms, the .jar file is an
-		executable file of sorts.</P> 
-	 <H3>Ant Properties</H3> 
-	 <P>The <CODE>ant.properties</CODE> file contains a list of all the properties that should be
-		set by default when ant is run. In addition there are a few special properties
-		that are used directly by ant. An example of these properties in use is:</P> 
-	 <PRE>    system.taskdir=tasks/
-    user.taskdir=anttasks/</PRE> 
-	 <P>The <CODE>system.taskdir</CODE> property sets where the system looks for Java ARchive files
-		containing tasks. If this property defines a relative path, then the path is
-		taken as relative from the installation directory.</P> 
-	 <P>The <CODE>user.taskdir</CODE> property defines where users can locate Java Archive files
-		containing tasks. If this property defines a realtive path, then the path is
-		taken as relative from the users home directory (as defined by the <CODE>user.home</CODE>
-		system property). Task JAR files in this directory take precendence of those in
-		the system directory.</P>
-	 <P>Note: <EM>It has been suggested to add a properties file hook to the
-		command line to roll in props. Pending investigation.</EM></P> 
-	 <H3>User Preferences</H3> 
-	 <P>In addition to the Ant installation directory, an <CODE>ant.properties</CODE> file can be
-		located in the user's home directory (as found by the system property <CODE>user.home</CODE>)
-		which can define user preferences such as the location of a user tasks
-		directory. Properties defined in this file take precidence over those set in
-		the installation's <CODE>ant.properties</CODE> file. Such a file could look like:</P> 
-	 <PRE>    user.taskdir=anttasks/
-    javac.debug=off</PRE> 
-	 <P>Properties starting with <CODE>&quot;system.&quot;</CODE> in the user's <CODE>ant.properties</CODE> file are not
-		allowed and must cause a warning to be thrown.</P> 
-	 <H2>Project Configuration</H2> 
-	 <P>Ant's Project text file is structured using XML and reflects the
-		structure of the various components described in the Conceptual Overview.</P> 
-	 <P>A sample Project file:</P> 
-	 <PRE>&lt;project name=&quot;projectname&quot; defaulttarget=&quot;main&quot; taskdir=&quot;tasks/&quot;&gt;
-  &lt;property name=&quot;javac.debug&quot; value=&quot;on&quot;/&gt;
-  &lt;target name=&quot;main&quot;&gt;
-    &lt;taskimpl ...&gt;
-       ...
-    &lt;/taskimpl&gt;
-  &lt;/target&gt;
-&lt;/project&gt;</PRE> 
-	 <H3>The Project Element</H3> 
-	 <P>The <CODE>project</CODE> element has the following required attributes:</P> 
-	 <UL> 
-		<LI><CODE><STRONG>defaulttarget</STRONG></CODE> defining the default target to be executed if no other target
-		  is specified when Ant is run</LI> 
-	 </UL> 
-	 <P>It also has the following optional allowed attributes:</P> 
-	 <UL> 
-		<LI><CODE><CODE><STRONG>name</STRONG></CODE></CODE> defining a name for this project</LI> 
-		<LI><CODE><STRONG>taskdir</STRONG></CODE> defining a directory in which project specific tasks can be
-		  located. Tasks in this directory take precedence over those in the either the
-		  user taskdir or the installation taskdir.</LI> 
-	 </UL> 
-	 <P>The following elements are allowed as children of the project
-		element:</P> 
-	 <UL> 
-		<LI><CODE><STRONG>property</STRONG></CODE> defining a property scoped to the project</LI> 
-		<LI><CODE><STRONG>target</STRONG></CODE> defining a target</LI>
-	 </UL>
-	 <H3>The Property Element</H3>
-	 <P>asdf</P>
-	 <H3>The Target Element</H3>
-	 <P>asfd</P> 
-	 <H2>Configuration of Tasks</H2> 
-	 <P>The Task section of the configuration file is structured as such:</P> 
-	 <PRE>  &lt;[taskname] [attname=value] [attname=value]...]&gt;
-    [&lt;[elementname] [attname=value] ...&gt; ... &lt;/[elementname]&gt;]
-  &lt;/[taskname]&gt;</PRE> 
-	 <P>The taskname is used to find the class of the Task. Once the class has
-		been located and an instance of it created, all of the attributes of the Task
-		are reflected into the task instance using bean patterns. For example, if a
-		Task contains an attribute named &quot;directory&quot;, the method named
-		setDirectory would be called with the attribute value cast to the appropriate
-		type desired by the method. <EM>(What to do if the type isn't a file or a
-		simple type, look for the class and see if it has a setString method?)</EM></P>
-	 
-	 <P>Text blocks contained by the element are added to task using an addText
-		method. <EM>Place an example...</EM></P> 
-	 <P>For each element contained in the Task definition, an addElementname
-		method is found on the task. The parameter type of the method defines an object
-		that will be loaded and instantiated. The attributes of the element are
-		reflected into the object using bean methods. Any text is set using the addText
-		method. Any elements are recursed in the same fashion.</P>
-	 <P>Search order of tasks.... project/user/system</P> 
-	 <H2>Command Line</H2> 
-	 <P>The command line utility provided with Ant must support the following
-		allowable syntax:</P> 
-	 <P><CODE>ant projectfile [prop=value [prop=value...]] [target]</CODE></P>
-	 <P>Internally, the command line shell scripts should call the <CODE>org.apache.ant.Main</CODE> class
-		with the following arguments:</P>
-	 <PRE>java -Dant.home=installdir org.apache.ant.Main $*</PRE>
-	 <P>or its equivalent on the host platform. Note that the ant installation
-		directory is a System property. The above syntax results in ant.home being
-		placed in the System property list.</P>
-	 <P>Note: <EM>On unix, finding the directory of the script that was launched
-		is relatively easy. However on Windows, I'm not sure the best way of handling
-		this.</EM></P> 
-	 <H2>File Naming Conventions</H2> 
-	 <P>File naming in a cross platform tool is tricky. For maximum portability
-		and understandiblity it is recommended that project files use the following
-		conventions:</P> 
-	 <UL> 
-		<LI>The '/' character is used as a directory seperator</LI> 
-		<LI>The ':' character is used as a path seperator</LI> 
-		<LI>Only relative paths are used</LI> 
-	 </UL> 
-	 <P>However, to allow for maximum flexibility and to allow project authors
-		to use conventions that make sense on their native platform, Ant allows for a
-		representation of file names which has the following rules:</P> 
-	 <UL> 
-		<LI>Directories are seperated by the forward slash ('/') or backwards
-		  slash ('\') character.</LI> 
-		<LI>File names starting with either of the above directory seperators are
-		  considered to be absolute paths.</LI> 
-		<LI>On systems that support multiple file roots (e.g. Windows), a file
-		  name that starts with a single alphabetical character followed by a colon (':')
-		  followed by a directory seperator defines an absolute path where the letter
-		  corresponds with a directory root.</LI> 
-		<LI>File names starting with any other character are considered to be
-		  relative paths. In project files, all relative paths are resolved relative to
-		  the directory in which the project file is located.</LI> 
-	 </UL> 
-	 <P>Absolute paths are not recommended for build files as they reduce the
-		ability to share a project between u sers or machines.</P> 
-	 <P>In situtations where a set of filenames need to be specified, such as
-		defining a classpath, both the colon (':') andsemicolon (';') are allowable
-		characters to seperate each filename. The only case that has to be
-		disambiguated is if a user specifies paths that contain windows style absolute
-		paths. In this case, the colon is not treated as a path seperator if the
-		following rules are met:</P> 
-	 <UL> 
-		<LI>The character two places before the colon is either of the allowable
-		  path seperators (':' or ';') or if the colon is the second character of the
-		  string.</LI> 
-		<LI>The character immediately before the colon is a alphabetic character
-		  in the range a-z or A-Z.</LI> 
-		<LI>The character immediately after the colon is either of the allowable
-		  directory seperators ('/' or '\').</LI> 
-	 </UL> 
-	 <H2>Scripting Model</H2> 
-	 <P>Sam, I'm leaving this to you. </P>
-	 <H2>Runtime Requirements</H2>
-	 <P>The following requirements are system requirements that Ant should have
-		in order to run correctly. We should not bundle in any of these into the
-		distribution of ant.</P>
-	 <UL>
-		<LI>JDK 1.1 or greater</LI>
-		<LI>A JAXP compliant parser on the classpath</LI>
-	 </UL>
-	 <P>Note: <EM>When running on JDK 1.2 or greater, the tools.jar isn't on the
-		classpath by default. There's a few different ways we can take care of this.
-		One is to put it on the classpath in the execute script (I don't like this
-		one). Another is to find the location of tools.jar at runtime and put it on the
-		classpath of class loaders that load in task.jars so that, at least in the
-		scope of the Tasks, the relevant classes are there. </EM></P>
-	 <P></P> 
-	 <P></P> </BODY>
-</HTML>
diff --git a/docs/ant2/requested-features.html b/docs/ant2/requested-features.html
deleted file mode 100644
index 1304a88..0000000
--- a/docs/ant2/requested-features.html
+++ /dev/null
@@ -1,1090 +0,0 @@
-<html>
-<body>
-
-<h2>
-<center>Requested Features for Ant2</center>
-</h2>
-
-<h4>
-I. Things that don't affect the core but are requests for new tasks or
-enhancements to existing tasks.
-</h4>
-
-&quot;Accepted&quot; for a task doesn't mean that
-task will be a core task (or even be supplied by a voter), just that having
-it (as an optional task) would be acceptable.
-<p>
-
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Accepted</b>
-</font>
-
-<blockquote>
-<bl><li>
-Add a new datatype filterset to group token-filters.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Make usage of particular filters/filtersets explicit in copy tasks.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Make facade tasks for things like <code>&lt;javac&gt;</code>
-(JikesImpl, ModernImpl, etc.).
-(One candidate is <code>&lt;jar&gt;</code>, with implementations for
-a <code>&lt;fastjar&gt;</code>, for example.)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Unify multiple similar tasks to use similar forms (eg., all the
-<code>&lt;javacc&gt;</code>-type
-tools).
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Obfuscating task.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Better scripting/notification support so the hooks are available to
-send notifications at certain times.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Add an <code>&lt;ant&gt;</code> task that will find build files according
-to a fileset and invoke a common target in them. (<code>&lt;anton&gt;</code>?)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Add a JavaApply task that executes a given class with files from a
-fileset as arguments (similar to <code>&lt;apply&gt;</code>).
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Include some more sophisticated loggers with the Ant distribution &#150;
-especially for sending emails. Make the existing one more flexible
-(stylesheet used by XmlLogger). (Could be part of the same module tasks
-would be developed in?)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Better docs (eg., more examples, tutorials, beginner documents, reference
-sheets for tasks, printable version, etc.).
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-RPM task.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Task for splitting files (head/tail/split-like functionality).
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Task to create XMI from Java.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Socksified networking tasks, SSH tasks.
-(Peter Donald expressed some legal concerns that might need to be overcome, 
-depending on the implementation.)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-A reachable task that works much like <code>&lt;available&gt;</code>,
-for network URLs.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Task to extract classes from a jar-file that a given class depends on.
-(Based on <code>&lt;depend&gt;</code> or IBM's JAX, for example.)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Unify <code>&lt;available&gt;</code> and <code>&lt;uptodate&gt;</code>
-into a more general
-<code>&lt;condition&gt;</code> task &#150; support
-<code>AND</code>/<code>OR</code> of
-several tests here.
-(Will need more discussion because of vote by Peter Donald.)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-JSP-compilation task. (Sounds like a candidate for a facade task.)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-URL-spider task that checks links for missing content or server errors.
-</li></bl>
-</blockquote>
-
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Rejected</b>
-</font>
-<blockquote>
-<bl><li>
-Make the default logger's output clear, informative, and terse. (Rejectors
-think it already is.)
-</blockquote>
-</li></bl>
-
-<blockquote>
-<bl><li>
-Add an attribute to <code>&lt;property&gt;</code> to read in an entire file
-as the value of a property.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Make PATH-handling consistent. Every task that has a PATH attribute
-must also accept references to PATHs.
-</li></bl>
-</blockquote>
-
-<br>
-<h4>
-II. Goals that need to be abstract until we get into design
-decisions.
-</h4>
-
-During the discussion it became obvious that some things from this list
-are goals for Ant and some should be guidelines for developers.
-Therefore, there are two flavors, &quot;Accepted&quot; and
-&quot;Accepted As Guideline&quot;.
-<p>
-
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Accepted</b>
-</font>
-
-<blockquote>
-<bl><li>
-Provide a clear mission statement for Ant.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Main goals<b>:</b> simplicity, understandability, extensibility.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Remove magic properties if at all humanly possible.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Remove as much dependency on native scripts as possible.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Clean object model (ie., Project/Target/Task).
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Good event model to integrate well with IDE/GUI/etc.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Use a consistent naming scheme for attributes across all tasks.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Keep build-file syntax as compatible to Ant1 as possible
-(ie., don't break something just because we can).
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Keep the interface for tasks as similar to that of Ant1 as
-possible (ie., don't break something just because we can).
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Ant should be cancelable.
-</li></bl>
-</blockquote>
-
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Accepted As Guideline</b>
-</font>
-
-<blockquote>
-<bl><li>
-No commit of new features without documentation.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-No commit of new features without test-cases.
-</li></bl>
-</blockquote>
-
-<br>
-<h4>
-III. Things that are simple and easy to implement, where we expect the
-committers to agree.
-</h4>
-
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Accepted</b>
-</font>
-
-<blockquote>
-<bl><li>
-Namespace support so different concerns can occupy different namespaces
-from Ant (thus, SAX2/JAXP1.1).
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Java2
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Remove all deprecated methods, attributes, tasks.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Allow all datatypes to be defined anywhere (ie., as children of
-project as well as of target).
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Make properties fully dynamic (ie., allow their value to be reassigned).
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Unify the namespace of all data types (ie., properties + filesets +
-patternsets + filtersets).
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Add a user-defined message if a target will be skipped as a
-result of the specified <code>if/unless</code>.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Allow user datatypes to be defined via a <code>&lt;typedef&gt;</code>
-similar to <code>&lt;taskdef&gt;</code>.
-</li></bl>
-</blockquote>
-
-<br>
-<h4>
-IV. Things we probably agree on but need to discuss the details or
-decide between several possible options.
-</h4>
-
-&quot;Accepted&quot; means the goal/idea is fine, not that a decision on a
-particular implementation has been made.
-<p>
-
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Accepted</b>
-</font>
-
-<blockquote>
-<bl><li>
-The ability for GUI/IDE tools to integrate easily with object model
-without reinventing the wheel and writing their own parser (which
-Antidote was forced to do). 
-(Two suggested solutions were allowing GUI developers to extend
-the object model (ie., GUITask extends Task) or to have Task as an
-interface (ie., GUITask implements Task). This way, the GUI tasks could
-be W3C DOM elements, have property vetoers/listeners, etc.)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Support for numerous front-ends &#150; from command-line over GUI to servlets.
-(Corollary of the above?)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Fully interpreted at run-time. (This almost requires some form of
-abstraction/proxy that stands in place of tasks till it is
-interpreted. This can be hash-tables/simple DOM-like model/whatever.)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Provide utility classes to aid in building tasks (ie., like
-<code>&lt;uptodate&gt;</code> functionality abstracted).
-(Need to become more specific here.)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Make ant-call a low-cost operation so it can do certain
-optional/template-like operations.
-(Corollary of "fully interpreted at run-time"?)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Allow facilities to build projects from multiple sources (ie., CSS+XML,
-XSLT+XML, Velocity+text or database, from inside jars or normal 
-<code>build.xml</code> files, etc.)
-(Allow the project tree to be built dynamically.)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Move to a system that allows docs to be generated &#150; doc snippets
-should be included with the tasks they document.
-(Which DTD? Which tools for generation?)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Allow tasks to be loaded from jars. (Use
-either an XML file in <code>TSK-INF/taskdefs.xml</code> or a
-manifest file.)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Allow documentation to be stored in <code>.tsk</code> jars.
-(Corollary of the above two points?)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Separate tasks into <code>.tsk</code> jars somehow.
-(Decide on categories.
-Probably via function &#150; ie., java tasks, file tasks, EJB tasks, etc.)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Make having separate build-files easy (<i>&#224; la</i> AntFarm) and importing different
-projects a breeze.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Provide support for user-defined task configurations &#150; (ie., give
-users the ability to specify a default value for attributes (eg., always
-use <code>debug="true"</code> in <code>&lt;javac&gt;</code> unless
-something else has been specified). 
-(Three ideas so far<b>:</b> a CSS-like language,
-a <code>&lt;taskconfig&gt;</code> element, or
-properties following a specific naming scheme.)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Support more control over the properties that are going to be passed
-to subprojects (modules).
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Task to prompt for user input.
-(Does affect core, as we need a means to request input from the front-end.)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Add CVS login feature.
-(Requires handling of user input.)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Easier installation process. GUI, maybe webstart from the homepage.
-This includes asking the user whether he wants to use optional tasks
-and downloads the required libs, automatic upgrades and so on.
-
-Self-extracting jar installer<b>:</b>
-<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<code>java -jar jakarta-ant-1.3-bin.jar</code>
-<br>
-Prompts for destination directory, extracts archive, fixes all 
-text files with <code>&lt;fixCRLF&gt;</code> task<b>;</b> on UNIX,
-makes scripts executable.  
-Could also modify ant scripts with the location of <code>ANT_HOME</code>.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Logo for Ant.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Detach Ant from <code>System.err</code>/<code>.in</code>/<code>.out</code>.
-(Beware of problems with spawned processes.)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Build-files should be declarative in nature.
-</li></bl>
-</blockquote>
-
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Rejected</b>
-</font>
-<blockquote>
-<bl><li>
-It should be possible to modify details of the actual build (e.g. classpath,
-compiler used, etc.) without the need to change the build specification.
-(Do <code>build.compiler</code> and <code>build.sysclasspath</code>
-cover everything, or do we need to add more stuff like this?)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Better sub-project handling
-(whatever that means in detail).
-</li></bl>
-</blockquote>
-
-<br>
-<h4>
-V. Things we probably don't agree on. 
-</h4>
-<i><b>Datatypes</b></i>
-
-<p>
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Accepted</b>
-</font>
-
-<blockquote>
-<bl><li>
-Allow <code>&lt;include&gt;/&lt;exclude&gt;</code>
-to work with multiple characteristerics of a file
-(ie., include into fileset if file is readable, modified after 29th of Feb,
-has a name that matches the pattern <code>&quot;**/*.java&quot;</code> and
-the property <code>foo.present</code> is set. Something similar to<b>:</b>
-<pre>
-  &lt;include&gt;
-    &lt;item-filter type="name" value="**/*.java"/&gt;
-    &lt;item-filter type="permission" value="r"/&gt;
-    &lt;!-- could optionally be directory or some other system specific features --&gt;
-    &lt;item-filter type="type" value="file"/&gt;
-    &lt;item-filter type="modify-time"
-                 operation="greater-than" 
-                 value="29th Feb 2003"/&gt;
-  &lt;/include&gt;
-</pre>
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Provide support for non-hardwired (ie., loadable) low-level 
-components (mappers/itemset-filters/converters). Allow them to be 
-loaded in either globally or via a new classloader.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Provide support for non-hardwired (ie., loadable) converters.
-<br>
-Q<b>:</b> What is a converter? Is this an implementation detail?
-<br>
-A<b>:</b> Not an implementation detail, but a way to extend the engine
-to convert more datatypes. Currently, we have a fixed set that is 
-expanded on occasion (ie., includes primitive types + File). Instead
-of spreading converting code throughout the tasks, it can be centralized 
-into one component and used by the engine. This becomes particularly 
-relevent if you build Ant-based testing systems and use Ant in certain
-web-related areas.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Set-arithmetic for fileset/patternset/*set.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Inheritance of Ant properties/datatypes/context/etc. in project hierarchy.
-</li></bl>
-</blockquote>
-
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Rejected</b>
-</font>
-
-<blockquote>
-<bl><li>
-Allow mappers to be genericized so that particular features can be modified 
-during mapping. Something similar to<b>:</b>
-<pre>
-  &lt;fileset ...&gt;
-    &lt;include name="*.sh"/&gt;
-    &lt;mapper type="unix-permissions"&gt;
-      &lt;param name="user" value="ant"/&gt;
-      &lt;param name="group" value="ant"/&gt;
-      &lt;param name="mod" value="755"/&gt;
-    &lt;/mapper&gt;
-  &lt;/fileset&gt;
-</pre>
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Provide datatypes through property tag and remove need for separate
-free-standing entities. That is<b>:</b><br>
-<pre>
-  &lt;property name="foo"&gt;
-    &lt;fileset dir="blah"&gt;
-      &lt;include name="*/**.java" /&gt;
-    &lt;/fileset&gt;
-  &lt;/property&gt;
-</pre>
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Make all datatypes interfaces to allow them to be customized in many
-ways.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Inheritance between Ant datatypes (ie., fileset A inherits from
-fileset B (includes all entries in A).
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Homogenize notion of PATHs and filesets.
-</li></bl>
-</blockquote>
-
-<i><b>Ant's goals</b></i>
-
-<p>
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Accepted</b>
-</font>
-
-<blockquote>
-<bl><li>
-Provide support for CJAN.
-<br>
-Q: In what way?<br>
-A: Probably by supplying a set of tasks that download versioned 
-binaries and their associated dependencies, caching the downloads
-in a known place and updating binaries when required.
-(&quot;When required&quot; being indicated by a change in property values).
-</li></bl>
-</blockquote>
-
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Rejected</b> (as a primary goal)
-</font>
-
-<blockquote>
-<bl><li>
-Make it possible to re-use the task engine for other things
-(ie., Installshield-type app, Peter's cron-server, and other task-based
-operations).
-</li></bl>
-</blockquote>
-
-<i><b>Class-loading</b></i>
-
-<p>
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Rejected</b>
-</font>
-
-<blockquote>
-<bl><li>
-Force resolution of classes on loading, to identify class-loader 
-issues early (at least in global classloader).
-</li></bl>
-</blockquote>
-
-
-<blockquote>
-<bl><li>
-Ignore any classes contained in the damned ext dirs of a
-JVM &#150; possibly by launching with something like<b>:</b>
-<br>
-&nbsp;&nbsp;&nbsp;&nbsp;<code>jar -Djava.ext.dir=foo -jar ant.jar</code>
-<br>
-(Accepted if optional.)
-</li></bl>
-</blockquote>
-
-<p>
-<i><b>Workspace/sub-build issues</b></i>
-
-<p>
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Accepted</b>
-</font>
-
-<blockquote>
-<bl><li>
-Create the concept of workspace so that projects can be built in a
-DAG and thus enable projects like Catalina/Tomcat to have an easy
-build process. It also helps CJAN to a lesser degree and would
-partially solve the jars-in-CVS thing.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Allow a target to depend on a target in another build-file.  
-</li></bl>
-</blockquote>
-
-<p>
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Rejected</b>
-</font>
-
-<blockquote>
-<bl><li>
-Project inheritance. (What's this?)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Target inheritance. That is, the ability to include targets from other 
-project files, overriding them as necessary (so, cascading project
-files).
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Add an attribute to <code>&lt;ant&gt;</code> to feed back the environment
-(properties and taskdefs) from the child build to the parent.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Allow a target to reference properties defined in another build-file.
-</li></bl>
-</blockquote>
-
-<p>
-<i><b>Documentation system</b></i>
-
-<p>
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Accepted</b> (with no decision on which system to use)
-</font>
-
-<blockquote>
-<bl><li>
-Generate docs by Anakia/XSLT.
-(Corollary of "move to a system that allows docs to be generated"?)
-</li></bl>
-</blockquote>
-
-<p>
-<i><b>Task API</b></i>
-
-<p>
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Accepted</b>
-</font>
-
-<blockquote>
-<bl><li>
-Tasks provide some way to identify their attributes from the outside. 
-
-Possible solutions include a special method like <code>getProperties()</code>,
-an external describing file shipping with the task class or special
-Javadoc comments parsed by a custom doclet. Whatever the method, it
-should not impose any cost on run-time, as it is only used a small 
-percentage of the time (design-time).  
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Provide <code>&quot;failonerror&quot;</code>-like functionality to all tasks.
-(Provide this as an aspect?? Much like logging aspect or classloader aspect).
-</li></bl>
-</blockquote>
-
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Rejected</b>
-</font>
-
-<blockquote>
-<bl><li>
-Tasks should have access to its own XML representation.
-</blockquote>
-</li></bl>
-
-<blockquote>
-<bl><li>
-Task level if and unless attributes.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Allow tasks to find out, whether another task has completed successfully.
-</li></bl>
-</blockquote>
-
-<p>
-<i><b>Logging</b></i>
-
-<blockquote>
-<bl><li>
-Allow build-file writers to modify logging (verbosity, for example)
-on a target-by-target or task-by-task basis.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Make loggers configurable via build.xml.
-</li></bl>
-</blockquote>
-
-<p>
-<i><b>Multi-threading</b></i>
-
-<p>
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Accepted</b>
-</font>
-
-<blockquote>
-<bl><li>
-Multi-threaded execution of tasks within the same target.
-</li></bl>
-</blockquote>
-
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Rejected</b>
-</font>
-
-<blockquote>
-<bl><li>
-Multithreaded execution of targets.
-</li></bl>
-</blockquote>
-
-<p>
-<i><b>Procedural versus purely declarative</b></i>
-
-<p>
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Rejected</b>
-</font>
-
-<blockquote>
-<bl><li>
-Simple flow-control (<code>if-then-else</code>, <code>for</code>)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Targets should be like methods, including a return value.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Build-files should be purely declarative.
-</li></bl>
-</blockquote>
-
-<p>
-<i><b>Properties</b></i>
-
-<p>
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Accepted</b>
-</font>
-
-<blockquote>
-<bl><li>
-Ability to manage scoping of properties in general
-(ie., target/project/workspace).
-</li></bl>
-</blockquote>
-
-<p>
-<i><b>Templates</b></i>
-
-<p>
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Rejected</b>
-</font>
-
-<blockquote>
-<bl><li>
-It should be possible to provide general/(template?) build
-specifications, and to declare, for a concrete item, that it should be
-built according to such a general specification.
-</bl></li>
-</blockquote>
-
-<p>
-<i><b>XML issues</b></i>
-
-<p>
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Accepted</b>
-</font>
-
-<blockquote>
-<bl><li>
-A built-in mechanism to include build-file fragments &#150; something
-that doesn't use <code>SYSTEM</code> entities at all and therefore is
-XSchema-friendly, allows for property expansions, etc.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Allow Ant to farm out attributes and elements that are <i>not</i>
-in the Ant namespace to other components (ie., hand <code>doc:</code> elements
-to the Documentation component or <code>log:</code> attributes to the Log
-policy component, etc.
-</li></bl>
-</blockquote>
-
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Rejected</b>
-</font>
-
-<blockquote>
-<bl><li>
-Let Ant ignore &#150; but warn &#150; if unknown XML elements or attributes
-occur in a build-file.
-</li></bl>
-</blockquote>
-
-<p>
-<i><b>Core extensions</b></i>
-
-<p>
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Accepted</b>
-</font>
-
-<blockquote>
-<bl><li>
-Allow sequence to be specified in <code>&quot;depends&quot;</code> attribute,
-or enhance <code>&lt;antcall&gt;</code> to work with current list of executed
-targets.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Provide a way to define the order in which targets that a given target
-depends upon get executed. (Same as above?)
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Support nesting tasks into other elements &#150; not just as children of
-target &#150; as proposed by Thomas Christen in
-<a href http://marc.theaimsgroup.com/?l=ant-dev&m=98130655812010&w=2>
-his mail message</a>.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Define task contexts that define various common aspects (logging,
-failure handling, etc.), and assign them to tasks.
-</li></bl>
-</blockquote>
-
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Rejected</b>
-</font>
-
-<blockquote>
-<bl><li>
-Allow named tasks to be defined by <code>&lt;script&gt;</code> elements.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Specify an OnFail task or target that runs in case of a build
-failure.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Make <code>if/unless</code> attributes check for the value of a property, not
-only its existance.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Check for more than one condition in <code>if/unless</code> attributes.
-</li></bl>
-</blockquote>
-
-<p>
-<i><b>Organization</b></i>
-
-<p>
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Rejected</b>
-</font>
-
-<blockquote>
-<bl><li>
-Separate CVSes and code hierarchies for<b>:</b>
-</li></bl>
-<ul type="circle">
-<li>task engine [org.apache.task.*]</li>
-<li>project engine (ie., model of targets/projects/workspaces) +
-support/utility classes [org.apache.ant.*]</li>
-<li>core tasks (ie., tasks supported by Ant contributors) [org.apache.???]</li>
-</ul>
-</blockquote>
-
-<p>
-<i><b>Miscellaneous</b></i>
-
-<p>
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Accepted</b>
-</font>
-
-<blockquote>
-<bl><li>
-Internationalization.
-</li></bl>
-</blockquote>
-
-<p>
-<h4>
-VI. Things that were submitted late
-</h4>
-
-<p>
-<font face="Arial, Helvetica, sans-serif" size="-1">
-&nbsp;&nbsp;<b>Rejected</b>
-</font>
-
-<blockquote>
-<bl><li>
-Integration of the <code>&lt;depend&gt;</code> and <code>&lt;javac&gt;</code>
-tasks.
-</li></bl>
-</blockquote>
-
-<blockquote>
-<bl><li>
-Recursive property resolution (ie., resolving <code>${dist.${name}.dir}</code>)
-</li></bl>
-</blockquote>
-
-</body>
-</html>
-
diff --git a/docs/ant2/requested-features.txt b/docs/ant2/requested-features.txt
deleted file mode 100644
index f6a6d22..0000000
--- a/docs/ant2/requested-features.txt
+++ /dev/null
@@ -1,766 +0,0 @@
-Status:
-=======
-
-The committers have cast votes on all items (except those that came in
-too late) and the results are listed below - the next step will be a
-design phase.
-
-This list of items will be summarized into an Ant2 specification soon.
-
-I. Things that don't affect the core but are requests for new tasks or
-enhancements of existing tasks.
-======================================================================
-
-[ACCEPTED] for a task doesn't mean that task will be core tasks (or
-even be supplied by a voter), just that having them (as optional
-tasks) would be acceptable.
-
-* Add a new datatype filterset to group token-filters 
-
-  [ACCEPTED]
-
-* make usage of particular filters/filtersets explicit in copy tasks
-
-  [ACCEPTED]
-
-* make facade tasks for things like javac (JikesImpl, ModernImpl etc)
-
-  One candidate is jar with implementations for fastjar
-  for example.
-
-  [ACCEPTED]
-
-* unify multiple similar tasks to use similar forms (ie all the javacc
-  type tools)
-
-  [ACCEPTED]
-
-* Obfuscating task
-
-  [ACCEPTED]
-
-* Add an <ant> task that will find build files according to a fileset
-  and invokes a common target in them.
-
-  <anton>?
-
-  [will need more discussion because of votes by Peter Donald and
-                                                 Stefan Bodewig]
-
-  [finally ACCEPTED]
-
-* Add a JavaApply task that executes a given class with files from a
-  fileset as arguments - similar to <apply>.
-
-  [will need more discussion because of votes by Peter Donald and
-                                                 Stefan Bodewig]
-
-  [finally ACCEPTED]
-
-* Include some more sophisticated loggers with the Ant distribution -
-  especially for sending emails. Make the existing one more flexible
-  (stylesheet used by XmlLogger).
-
-  Could be part of the same module tasks would be developed in?
-
-  [will need more discussion because of vote by Conor MacNeill]
-
-  [finally ACCEPTED]
-
-* make the default logger's output clear, informative, and terse.
-
-  Actually, this is a little bit abstract, but doesn't apply to the
-  core either.
-
-  [will need more discussion because of vote by Conor MacNeill]
-
-  [REJECTED - vetoes by Conot MacNeill and Stefan Bodewig]
-
-* Better docs.
-
-  More examples. Tutorials, beginner documents, reference sheets for
-  tasks, printable version.
-
-  [ACCEPTED]
-
-* RPM task.
-
-  [ACCEPTED]
-
-* add an attribute to <property> to read in an entire file as the
-  value of a property.
-
-  [will need more discussion because of vote by Peter Donald]
-
-  [REJECTED - veto by Peter Donald]
-
-* Task for splitting files (head/tail/split like functionality).
-
-  [ACCEPTED]
-
-* Task to create XMI from Java.
-
-  [ACCEPTED]
-
-* socksified networking tasks, SSH tasks.
-
-  [Peter Donald expressed some legal concerns that might be overcome, 
-                depending on the implementation]
-
-* a reachable task that works much like available for network URLs.
-
-  [ACCEPTED]
-
-* make PATH handling consistent. Every task that has a PATH attribute
-  must also accept references to PATHs.
-
-  [will need more discussion because of vote by Stefan Bodewig]
-
-  [REJECTED - vetoes by Conor MacNeill, Glenn McAllister and Stefan Bodewig]
-
-* Task to extract classes from a JAR file that a given class depends
-  on.
-
-  Based on <depend> or IBM's JAX for example.
-
-  [ACCEPTED]
-
-* Unify <available> and <uptodate> into a more general <condition>
-  task, support AND/OR of several tests here.
-
-  [will need more discussion because of vote by Peter Donald]
-
-* jsp-compilation task
-
-  Sounds like a candidate for a facade task.
-
-  [ACCEPTED]
-
-* URL-spider task that checks links for missing content or server errors
-
-  [ACCEPTED]
-
-II. Abstract goals that need to be abstract until we get into design
-decisions.
-======================================================================
-
-During discussion it became obvious, that some things from this list
-are goals for Ant and some should be guidelines for developers,
-therefore there are two flavors, [ACCEPTED] and [ACCEPTED AS GUIDELINE].
-
-* Provide a clear mission statement for Ant.
-
-  [ACCEPTED]
-
-* Main goals: Simplicity, Understandability, Extensibility
-
-  [ACCEPTED]
-
-* remove magic properties if at all humanly possible
-
-  [ACCEPTED]
-
-* remove as much dependency on native scripts as possible.
-
-  [ACCEPTED]
-
-* clean object model (ie Project/Target/Task)
-
-  [ACCEPTED]
-
-* good event model to integrate well with IDE/GUI/whatever
-
-  [ACCEPTED]
-
-* use a consistent naming scheme for attributes across all tasks
-
-  [ACCEPTED]
-
-* keep build file syntax as compatible to Ant1 as possible -
-  i.e. don't break something just because we can.
-
-  [ACCEPTED]
-
-* keep the interface for Tasks as similar to the one of Ant1 as
-  possible - i.e. don't break something just because we can.
-
-  [ACCEPTED]
-
-* Ant should be cancelable
-
-  [ACCEPTED]
-
-* no commit of new features without documentation
-
-  [ACCEPTED AS GUIDELINE]
-
-* no commit of new features without testcases
-
-  [ACCEPTED AS GUIDELINE]
-
-III. Things that are simple, easy to implement, where we expect the
-committers to agree
-======================================================================
-
-* namespace support so different concerns can occupy different namespaces
-  from ant (thus SAX2/JAXP1.1)
-
-  [ACCEPTED]
-
-* Java2
-
-  [ACCEPTED]
-
-* remove all deprecated methods, attributes, tasks
-
-  [ACCEPTED]
-
-* allow all datatypes to be defined anywhere - i.e. as children of
-  project as well as of target.
-
-  [ACCEPTED]
-
-* make properties fully dynamic, i.e. allow their value to be reassigned
-
-  [will need more discussion because of vote by Glenn McAllister and
-                                                Conor MacNeill]
-
-  [finally ACCEPTED]
-
-* unify the namespace of all data types (ie properties + filesets +
-  patternset + filtersets).
-
-  [ACCEPTED]
-
-* add a user defined message if a target will be skipped because the
-  if/unless attribute says so.
-
-  [ACCEPTED]
-
-* allow user-datatypes to be defined via a <typedef> similar to <taskdef>.
-
-  [ACCEPTED]
-
-IV. Things we probably agree upon but need to discuss the details or
-decide between several possible options.
-======================================================================
-
-[ACCEPTED] means, the goal/idea is fine, not that a decission on a
-particular implementation has been made.
-
-* The ability for GUI/IDE tools to integrate easily with object model
-  without reinventing the wheel and writing their own parser (which
-  antidote was forced to do). 
-
-  Two suggested solutions were allowing GUI developers to extend
-  object model (ie GUITask extends Task) or to have Task as interface
-  (ie GUITask implements Task). This way the GUI tasks could be W3C
-  DOM Elements, have property vetoers/listeners etc.
-
-  [ACCEPTED]
-
-* support for numerous frontends - from command line over GUI to servlets
-
-  corollary of the above?
-
-  [ACCEPTED]
-
-* Fully interpreted at runtime. This almost requires some form of
-  abstraction/proxy that stands in place of tasks till it is
-  interpreted.  This can be hashtables/simple dom-like model/whatever
-
-  [ACCEPTED]
-
-* provide utility classes to aid in building tasks. ie like up-to-date
-  functionality abstracted
-
-  Need to become more specific here.
-
-  [ACCEPTED]
-
-* make ant-call a low cost operations so it can certain
-  optional/template-like operations
-
-  corollary of "fully interpreted at runtime"?
-
-  [ACCEPTED]
-
-* allow facilities to build projects from multiple sources. ie CSS+xml
-  or XSLT+ XML or Velocity+text or database or from inside jars or normal 
-  build.xmls etc.
-
-  allow the project tree to be built dynamically.
-
-  [ACCEPTED]
-
-* move to a system that allows docs to be generated - doc snippets
-  should be included with the tasks they document.
-
-  Which DTD? Which tools for generation?
-
-  [ACCEPTED]
-
-* allow tasks to be loaded from jars. tasks should be indicated by
-  either xml file in TSK-INF/taskdefs.xml or manifest file.
-
-  [ACCEPTED]
-
-* allow documentation to be stored in .tsk jars
-
-  corollary of the two points above?
-
-  [ACCEPTED]
-
-* better scripting/notification support so the hooks are available to
-  send notifications at certain times.
-
-  Which hooks and where?
-
-  [will need more discussion because of vote by Peter Donald and
-                                                Simeon Fitch]
-
-  [REJECTED - vetoes by Conor MacNeill, Peter Donald and Simeon Fitch]
-
-* separate tasks into .tsk jars somehow. (Probably via function - ie
-  java tasks, file tasks, ejb tasks).
-
-  Decide on categories.
-
-  [will need more discussion because of vote by Conor MacNeill]
-
-  [finally ACCEPTED]
-
-* make separate build files easy (ala AntFarm) and importing different
-  projects a breeze
-
-  [ACCEPTED]
-
-* provide support for user defined task configurations - i.e. give
-  users the ability to specify a default value for attributes (always
-  use debug="true" in <javac> unless something else has been
-  specified). 
-
-  Three ideas so far: a CSS like language, a <taskconfig> element,
-  properties following a specific naming scheme.
-
-  [ACCEPTED]
-
-* support more control over the properties that are going to be passed
-  to subprojects (modules)
-
-  [ACCEPTED]
-
-* Ask for a new CVS module for Ant tasks.
-
-  We need to define rules for this to work - maybe the rules proposed
-  for the commons project could give us a start.
-
-  [will need more discussion because of vote by Conor MacNeill]
-
-  [REJECTED - vetoes by Conor MacNeill and Glenn McAllister]
-
-* It should be possible to modify details of the actual build (e.g. classpath,
-  used compiler) without the need to change the build specification.
-
-  Do build.compiler and build.sysclasspath cover everything or do we
-  need to add more stuff like this?
-
-  [will need more discussion because of vote by Conor MacNeill]
-
-  [REJECTED - veto by Conor MacNeill]
-
-* Task to prompt for user input.
-
-  Does affect core as we need a means to request input from the Frontend.
-
-  [ACCEPTED]
-
-* Add cvs login feature.
-
-  Requires handling of user input.
-
-  [ACCEPTED]
-
-* Easier installation process. GUI - maybe webstart from the homepage.
-
-  This includes asking the user whether he wants to use optional tasks
-  and downloads the required libs. Automatic upgrades and so on.
-
-  Self-extracting jar installer: java -jar jakarta-ant-1.3-bin.jar. 
-  Prompts for destination directory, extracts archive, fixes all 
-  text files with fixCRLF task; on UNIX, makes scripts executable.  
-  Could also modify ant scripts with the location of ANT_HOME.
-
-  [ACCEPTED]
-
-* Logo for Ant.
-
-  [ACCEPTED]
-
-* detach Ant from System.err/.in/.out.
-
-  Beware of problems with spawned processes.
-
-  [ACCEPTED]
-
-* better subproject handling
-
-  Whatever that means in detail.
-
-  [will need more discussion because of vote by Conor MacNeill]
-
-  [REJECTED - vetoes by Conor MacNeill and Stefan Bodewig]
-
-* build files should be declarative in nature
-
-  [ACCEPTED]
-
-V. Things we probably don't agree on. 
-======================================================================
-
-[DISC] Datatypes
-----------------
-
- * Allow mappers to be genericised so that particular features can be modified 
- during mapping. Something similar to 
- 
- <fileset ...>
-   <include name="*.sh"/>
-   <mapper type="unix-permissions">
-     <param name="user" value="ant"/>
-     <param name="group" value="ant"/>
-     <param name="mod" value="755"/>
-   </mapper>
- </fileset>
-
- [REJECTED - vetoes by Stefan Bodewig and Conor MacNeill, not enough
-             positive votes anyway.]
-
- * Allow include/exclude tow work with multiple characteristerics of a file.
- ie include into fileset if file is readable, modified after 29th of Feb,
- has a name that matches patter "**/*.java" and the property "foo.present"
- is set. Something similar to 
- 
- <include>
-   <item-filter type="name" value="**/*.java"/>
-   <item-filter type="permission" value="r"/>
-
-   <!-- could optionally be directory/or some other system specific features -->
-   <item-filter type="type" value="file"/> 
-   <item-filter type="modify-time" 
-                operation="greater-than" 
-                value="29th Feb 2003"/>
- </include>
-
- [ACCEPTED]
-
-* provide datatypes through property tag and remove need for separate free
-  standing entities. ie
-  <property name="foo">
-    <fileset dir="blah">
-     <include name="*/**.java" />
-    </fileset>
-  </property>
-
-  [REJECTED - only one +1 vote]
-
-* provide support for non-hardwired (ie loadable) low-level 
- components (mappers/itemset-filters/converters). Allow them to be 
- loaded in either global or a new classloader.
-
-  [ACCEPTED]
-
-* provide support for non-hardwired (ie loadable) converters.
-
-  Q: What is a converter? Is this an implementation detail?
-  A: Not an implementation detail but a way to extend the engine
-  to convert more data types. Currently we have fixed set that is 
-  expanded on occasion (ie includes primitive types + File). Instead
-  of spreading converting code through out tasks it can be centralized 
-  into one component and used by engine. This becomes particularly 
-  relevent if you build ant based testing systems and use ant in certain
-  web-related areas.
-
-  [ACCEPTED]
-
-* Make all datatypes interfaces to allow them to be customized in many
-  ways.
-
-  [REJECTED - vetoes by Conor MacNeill, Peter Donald and Stefan Bodewig]
-
-* Set arithmetic for fileset/patternset/*set
-
-  [ACCEPTED]
-
-* inheritance of ant properties/datatypes/context etc in project hierarchy
-
-  [ACCEPTED]
-
-* inheritance of between ant datatypes. ie fileset A inherits from fileset B (includes 
-  all entries in A).
-
-  [REJECTED - vetoes by Conor MacNeill, Peter Donald and Stefan Bodewig]
-
-* Homogenize notion of PATHs and filesets.
-
-  [REJECTED - vetoes by Conor MacNeill, Peter Donald and Stefan Bodewig]
-
-[DISC] Ant's goals
-------------------
-
-* make it possible to reuse taskengine for other things. ie
-  Installshield type app, Peter's cron-server and other task based
-  operations. 
-
-  [REJECTED as a primary goal - only two +1 votes]
-
-* provide support for CJAN
-
-  Q: In what way?
-  A: Probably by supplying a set of tasks that download versioned 
-  binaries and their associated dependencies, caching the downloads
-  in a known place and updating binaries when required. ("When required"
-  being indicated by a change in property values).
-
-  [REJECTED as part of Ant's core - veto by Conor MacNeill, no single +1]
-
-[DISC] class loading
---------------------
-
- * force resolution of classes on loading to identify classloader 
- issues early. (At least in global classloader).
-
-  [REJECTED - only one +1 vote]
-
-* Ignore any classes contained in the damned ext dirs of a JVM - possibly by launching
-  with something like jar -Djava.ext.dir=foo -jar ant.jar
-
-  [REJECTED - vetoes by Conor MacNeill, Glenn McAllister and Stefan
-              Bodewig, ACCEPTED if optional]
-
-
-[DISC] workspace/subbuild issues
---------------------------------
-
-* create the concept of workspace so that projects can be built in a
-  DAG and thus enable projects like catalina/tomcat to have an easy
-  build process. It also helps CJAN to a lesser degree and would
-  partially solve the JARs in CVS thing.
-
-  [ACCEPTED]
-
-* Project inheritance
-
-  What's this?
-
-  [REJECTED - vetoes by Conor MacNeill, Peter Donald and Stefan Bodewig]
-
-* Target inheritance. ie The ability to include targets from other 
-  project files overidining them as necessary (so cascading project
-  files).
-
-  [REJECTED - vetoes by Conor MacNeill, Peter Donald and Stefan Bodewig]
-
-* Add an attribute to <ant> to feed back the environment (properties and
-  taskdefs) from the child build to the parent.
-
-  [REJECTED - vetoes by Conor MacNeill, Peter Donald, Simeon Fitch and
-              Stefan Bodewig]
-
-* Allow a target to depend on a target which is in another buildfile.  
-
-  [ACCEPTED]
-
-* Allow a target to reference properties defined in another buildfile.
-
-  [REJECTED - only one +1 vote]
-
-[DISC] documentation system
----------------------------
-
-* generate docs by anakia/XSLT
-
-  Corollary of "move to a system that allows docs to be generated"?
-
-  [ACCEPTED - with no decision on which system to use]
-
-[DISC] Task API
----------------
-
-* tasks provide some way to identify their attributes from the
-  outside. 
-
-  Possible solutions include a special method like getProperties(), an
-  external describing file shipping with the task class or special
-  javadoc comments parsed by a custom doclet. Whatever the method it
-  should not impose any cost on runtime as it is only used a small 
-  proportion of the time (design-time).  
-
-  [ACCEPTED]
-
-* tasks should have access to its own XML representation.
-
-  [REJECTED - vetoes by Christoph Wilhelms, Conor MacNeill and Simeon Fitch]
-
-* Task level if and unless attributes.
-
-  [REJECTED - no single +1 vote]
-
-* Allow tasks to find out, whether another task has completed successfully.
-
-  [REJECTED - vetoes by Conor MacNeill, Glenn McAllister, Peter Donald
-              and Stefan Bodewig]
-
-* provide failonerror like functionality to all tasks. (Provide this as an aspect??
-  much like logging aspect or classloader aspect).
-
-  [ACCEPTED]
-
-[DISC] logging
---------------
-
-* allow build file writers to modify logging (verbosity for example)
-  on a target by target or task by task basis.
-
-  [ACCEPTED]
-
-* Make loggers configurable via build.xml.
-
-  [ACCEPTED]
-
-[DISC] multithrading
---------------------
-
-* Multithreaded execution of tasks within the same target.
-
-  [ACCEPTED]
-
-* Multithreaded execution of targets.
-
-  [REJECTED - vetoes by Conor MacNeill, Glenn McAllister and Stefan Bodewig]
-
-[DISC] procedural versus purely declarative
--------------------------------------------
-
-* Simple flow control (if-then-else, for)
-
-  [REJECTED - vetoes by Conor MacNeill, Glenn McAllister, Peter Donald
-              and Stefan Bodewig]
-
-* targets should be like methods including a return value
-
-  [REJECTED - vetoes by Conor MacNeill, Glenn McAllister, Peter Donald,
-              Simeon Fitch and Stefan Bodewig]
-
-* build files should be purely declarative
-
-  [REJECTED - veto by Stefan Bodewig]
-
-[DISC] Properties
------------------
-
-* Ability to manage scopping of properties in general (ie target/project/workspace).
-
-  [ACCEPTED]
-
-[DISC] Templates
-----------------
-
-* it should be possible to provide general /(template?)/ build
-  specifications, and to declare for a concrete item that it should be
-  built according to such a general specification.
-
-  [REJECTED - vetoes by Conor MacNeill, Glenn McAllister, Peter Donald
-              and Stefan Bodewig]
-
-[DISC] XML issues
------------------
-
-* a built-in mechanism to include build-file fragments - something
-  that doesn't use SYSTEM entities at all and therefore is XSchema
-  friendly, allows for property expansions ...
-
-  [ACCEPTED]
-
-* Let Ant ignore - but warn - if unknown XML elements or attributes
-  occur in a build file.
-
-  [REJECTED - vetoes by Conor MacNeill, Glenn McAllister, Peter Donald
-              and Stefan Bodewig]
-
-* Allow ant to farm out attributes and elements that are NOT in the ant 
-  namespace to other components. ie hand doc: elements to the Documentation
-  component or log: attributes to Log policy component etc
-
-  [ACCEPTED]
-
-[DISC] core extensions
-----------------------
-
-* Allow named tasks to be defined by <script> elements.
-
-  [REJECTED - only one +1 vote]
-
-* specify an onfail task or target that runs in case of a build
-  failure.
-
-  [REJECTED - vetoes by Glenn McAllister, Peter Donald and Stefan Bodewig]
-
-* allow sequence to be specified in depends attribute or enhance
-  antcall to work with current list of executed targets
-
-  [ACCEPTED]
-
-* Support nesting tasks into other elements - not just as children of
-  target - as proposed by Thomas Christen in
-  <http://marc.theaimsgroup.com/?l=ant-dev&m=98130655812010&w=2>.
-
-  [ACCEPTED]
-
-* Make if/unless attributes to check for the value of a property, not
-  only its existance.
-
-  [REJECTED - vetoes by Glenn McAllister and Stefan Bodewig]
-
-* check for more than one condition in if/unless attributes.
-
-  [REJECTED - vetoes by Glenn McAllister, Peter Donald and Stefan Bodewig]
-
-* provide a way to define the order in which targets a given target
-  depends upon get executed.
-
-  [ACCEPTED]
-
-* define task contexts that define various common aspects (logging,
-  failure handling ...) and assign them to tasks.
-
-  [ACCEPTED]
-
-[DISC] organization
--------------------
-
-* separate CVSes and code hierarchies for
-  - task engine [ org.apache.task.* ]
-  - project engine (ie model of targets/projects/workspaces) + support/utility classes 
-    [ org.apache.ant.* ]
-  - core tasks (ie tasks supported by ant contributors) [ org.apache.??? ]
-
-  [REJECTED - vetoes by Conor MacNeill and Glenn McAllister]
-
-[DISC] misc
------------
-
-* internationalization
-
-  [ACCEPTED]
-
-VI. entries that have been submitted too late
-=============================================
-
-* Integration of the depends task and javac tasks
-
-  [REJECTED - only two +1 votes]
-
-* recursive property resolution( ie resolving ${dist.${name}.dir} )
-
-  [REJECTED - veto by Peter Donald]
diff --git a/docs/ant_in_anger.html b/docs/ant_in_anger.html
deleted file mode 100644
index da6bef7..0000000
--- a/docs/ant_in_anger.html
+++ /dev/null
@@ -1,816 +0,0 @@
-<head>
-<title>
-	Ant in Anger
-</title>
-</head>
-
-<body bgcolor="#FFFFFF" text="#000000">
-<h1 align="center">Ant in Anger:
-</h1>
-<h2 align="center">
-	Using Ant in a Production Development System
-</h2>
-
-<h4  align="center">
-Steve Loughran (<a href="mailto:steve_l@iseran.com">steve_l@iseran.com</a>)
-</h4>
-
-<a name="introduction">
-
-<h2>Introduction</h2>
-</a>
-
-<a href="http://jakarta.apache.org/ant/">Ant</a>
- can be an invaluable tool in a team development process -or it can
-be yet another source of problems in that ongoing crises we call
-development . This
-document contains some strategies and tactics for making the most of
-ant. It is moderately frivolous in places, and lacks almost any actual
-examples of ant xml. The lack of examples is entirely deliberate -it
-keeps document maintenance costs down. Most of the concepts covered
-don't need the detail about XML representations, as it is processes we
-are concerned about, not syntax. Finally, please be aware that the
-comments here are only suggestions which need to be customised to meet
-your own needs, not strict rules about what should and should not be
-done.
-
-<p>
-Firstly, here are some assumptions about the projects which this
-document covers
-<ul>
-<li> Pretty much pure Java.
-
-<li> Team efforts, usually with the petulant prima-donnas all us Java
-programmers become once we realise how much in demand we are.
-
-<li> A fairly distributed development team -spread across locations and
-maybe time zones.
-
-<li> Separate sub projects -from separate beans in a big
-enterprise application to separate enterprise applications which need to
-be vaguely aware of each other.
-
-<li> Significant mismatch between expectations and time available to
-deliver. 'Last Week' is the ideal delivery date handed down from above,
-next century the date coming up from below.
-
-<li> Everyone is struggling to keep up with platform and tool evolution.
-
-<li> Extensive use of external libraries, both open and closed source.
-
-</ul>
-
-What that all means is that there is no time to spend getting things
-right, you don't have that tight control on how the rest of the team
-works and the development process is often more one of chaos minimisation
-than anything else. The role of ant in such projects is to ensure that
-the build, test and deploy processes run smoothly, leaving you with all
-the other problems.
-
-<a name="core">
-<h2>Core Practices</h2>
-</a>
-<h3>
-Clarify what you want ant to do</h3>
-
-
-Ant is not a silver bullet. It is just another rusty bullet in the armory of
-development tools available at your disposal. Its primary purpose is to
-accelerate the construction and deployment of Java projects. You could certainly
-extend ant to do anything Java makes possible -it is easy to imagine writing an
-image processing task to help in web site deployment by shrinking and
-recompressing jpeg files, for example. But that would be pushing the boundary of
-what ant is really intended to do -so should be considered with care.
-
-<P>
-
-Ant is also a great adjunct to an IDE -a way of doing all the housekeeping of
-deployment and for clean, automated builds. But a good modern IDE is a
-productivity tool in its own right -one you should consider keeping using. Ant
-just lets you give the teams somewhat more freedom in IDE choice -&quot;you can
-use whatever you want in development, but ant for the deployment
-builds&quot;
-
-<h3>
-Define standard targets
-</h3>
-
-
-When you have multiple sub projects, define a standard set of targets.
-Projects with a split between interface and implementation jar files
-could consider <b>impl</b> and <b>intf</b> targets -with separate
-<b>debug-impl</b>and <b>debug-intf</b> targets for the debug version.
-And of course, the ubiquitous <b>clean</b> target.
-
-<P>
-
-With standard target names, it is easy to build encompassing ant build
-files which just hand off the work to the classes below using the
-<a href="manual/CoreTasks/ant.html">ant</a>
-task. For example. the clean target could be handed down to the intf and
-impl subdirectories from a parent directory
-
-<pre>&lt;target name=&quot;clean&quot;  depends=&quot;clean-intf, clean-impl&quot;&gt;
-&lt;/target&gt;
-
-&lt;target name=&quot;clean-intf&quot; &gt;
-	&lt;ant dir=&quot;intf&quot; target=&quot;clean&quot; /&gt;
-&lt;/target&gt;
-
-&lt;target name=&quot;clean-impl&quot;&gt;
-	&lt;ant dir=&quot;impl&quot; target=&quot;clean&quot; /&gt;
-&lt;/target&gt;  </pre>
-
-<h3>
-	Extend ant through new tasks
-</h3>
-
-If ant does not do what you want, you can use the
-<a href="manual/CoreTasks/exec.html">exec</a> and
-<a href="manual/CoreTasks/java.html">java</a> tasks or
-<a href="manual/OptionalTasks/script.html">inline scripting</a> to extend it. In a
-project with many build.xml files, you soon find that having a single
-central place for implementing the functionality keeps maintenance
-overhead down. Implementing task extensions through java code seems
-extra effort at first, but gives extra benefits:-
-
- <ul>
-
-<li>Cross platform support can be added later without changing any
-build.xml files</li>
-
-<li>The code can be submitted to the ant project itself, for other
-people to use and maintain</li>
-
-<li>It keeps the build files simpler</li>
-
-</ul>
-
-<h3>
-Embrace Automated Testing
-</h3>
-
-<b>(alternatively "recriminate early, recriminate often")</b>
-<p>
-
-Ant lets you call <a href="manual/OptionalTasks/junit.html">JUnit</a> tasks, which unit test
-the code your team has written. Automated testing may seem like extra
-work at first, but JUnit makes writing unit tests so easy that you have
-almost no reason not to. Invest the time in learning how to use
-JUnit, write the test cases, and integrate them in a 'test' target from
-ant so that your daily or hourly team build can have the tests applied
-automatically.
-
-<p>
-
-Once code fetches from the code control system are added as another ant
-target, the integration test code can be a pure ant task run on any box
-dedicated to the task. This is ideal for verifying that the build and
-unit tests work on different targets from the usual development
-machines. For example, a Win95/Java1.1 combination could be used even
-though no developer would willingly use that configuration given the
-choice.
-
-<p>
-
-System tests are harder to automate than unit tests, but if you can
-write java code to stress large portions of the system -even if the code
-can not run as JUnit tasks- then the <a href= "manual/CoreTasks/java.html">java</a>
-task can be used to invoke them. It is best to specify that you want a
-new JVM for these tests, so that a significant crash does not break the
-full build.
-
-
-<a name="crossplatform">
-<h2>
-Cross Platform Ant
-</h2>
-</a>
-
-Ant is the best foundation for cross platform Java development and
-testing to date. But if you are not paying attention, it is possible to
-produce build files which only work on one platform -or indeed, one
-single workstation.
-
-<p>
-
-The common barriers to cross-platform ant are the use of command line
-tools (exec tasks) which are not portable, path issues, and hard coding
-in the location of things.
-
-<h3>Command Line apps: <a href="manual/CoreTasks/exec.html">Exec</a>/ <a href=
-"manual/CoreTasks/execon.html">ExecOn</a></h3>
-
-The trouble with external invocation is that not all functions are found
-cross platform, and those that are often have different names -DOS
-descendants often expect .exe or .bat at the end of files. That can be
-bad if you explicitly include the extension in the naming of the command
-(don't!), good when it lets you keep the unix and DOS versions of an
-executable in the same bin directory of the project without name
-clashes arising.
-
-<p>
-
-Both the command line invocation tasks let you specify which platform
-you want the code to run on, so you could write different tasks for each
-platform you are targeting. Alternatively, the platform differences
-could be handled inside some external code which ant calls. This can be
-some compiled down java in a new task, or an external script file.
-
-<h3>Cross platform paths</h3>
-
-Unix paths use forward slashes between directories and a colon to
-split entries. Thus
-<i>"/bin/java/lib/xerces.jar:/bin/java/lib/ant.jar"</i> is
-a path in unix. In Windows the path must use semicolon separators,
-colons being used to specify disk drives, and backslash separators
-<i>"c:\bin\java\lib\xerces.jar;c:\bin\java\lib\ant.jar"</i>.
-
-This difference between platforms (indeed, the whole java classpath
-paradigm) can cause hours of fun.
-
-<p>
-
-Ant reduces path problems; but does not eliminate them entirely. You
-need to put in some effort too. The rules for handling path names are
-that 'DOS-like pathnames are handled', 'Unix like paths are handled'.
-Disk drives -'C:'- are handled on DOS-based boxes, but placing them in
-the build.xml file ruins all chances of portability. Relative file paths
-are much more portable. Semicolons work as path separators -a fact which
-is useful if your ant invocation wrapper includes a list of jars as a
-defined property in the command line. In the build files you may find it
-better to build a classpath by listing individual files (using location=
-attributes), or by including a fileset of *.jar in the classpath
-definition.
-
-
-<p>
-Note that DOS descended file systems are case insensitive (apart from
-the obscure aberration of the WinNT posix subsystem run against NTFS),
-and that Windows pretends that all file extensions with four or more
-letters are also three letter extensions (try DELETE *.jav in your java
-directories to see a disastrous example of this).
-
-<p>
-
-Ant's policy on case sensitivity is whatever the underlying file system
-implements *VERIFY*, and its handling of file extensions is that *.jav does not
-find any .java files. The Java compiler is of course case sensitive -you can
-not have a class 'ExampleThree' implemented in "examplethree.java".
-
-<p>
-
-Some tasks only work on one platform -<a href= "manual/CoreTasks/chmod.html">
-Chmod</a> being a classic example. These tasks usually result in just a
-warning message on an unsupported platform -the rest of the target's
-tasks will still be called. Other tasks degrade their functionality on
-platforms or Java versions. In particular, any task which adjusts the
-timestamp of files can not do so properly on Java 1.1. Tasks which can
-do that - <a href="manual/CoreTasks/get.html">Get<a>, <a
-href="manual/CoreTasks/touch.html">Touch</a> and <A href="manual/CoreTasks/unzip.html">
-Unjar/Unwar/Unzip</a> for example, degrade their functionality on
-Java1.1, usually resorting to the current timestamp instead.
-
-
-<p>
-
-Finally, Perl makes a good place to wrap up Java invocations cross
-platform, rather than batch files. It is included in most Unix
-distributions, and is a simple download for <a href=
-"http://www.activestate.com/Products/ActivePerl/"> Win32 platforms from
-ActiveState</a>. A Perl file with .pl extension, with the usual Unix
-path to perl on the line 1 comment and marked as executable can be run
-on Windows, OS/2 and Unix and hence called from Ant without issues. The
-perl code can be left to resolve its own platform issues.
-
-<a name="team">
-<h2>Team Development Processes</h2>
-</a>
-
-Even if each team member is allowed their choice of IDE/editor, or even
-OS, you need to set a baseline of functionality on each box. In
-particular, the JDKs and jars need to be in perfect sync. Ideally pick
-the latest stable Java/JDK version available on all developer/target
-systems and stick with it for a while. Consider assigning one person to
-be the contact point for all tools coming in -particularly open source
-tools when a new build is available on a nightly basis. Unless needed,
-these tools should only really be updated monthly, or when a formal
-release is made.
-
-<p>
-
-Another good tactic is to use a unified directory tree, and add on extra
-tools inside that tree. All references can be made relative to the tree.
-If team members are expected to add a directory in the project to their
-path, then command line tools can be included there -including those
-invoked by ant exec tasks. Put everything under source code control and
-you have a one stop shop for getting a build/execute environment purely
-from CVS or your equivalent.
-
-
-<a name="deploying">
-<h2>Deploying with Ant</h2>
-</a>
-
-One big difference between ant and older tools such as make is that the
-processes for deploying java to remote sites are reasonably well
-evolved in ant. That is because we all have to do it these days, so
-many people have put in the effort to make the tasks easier.
-<p>
-
-Ant can <a href="manual/CoreTasks/jar.html">Jar</a>, <a href= "manual/CoreTasks/tar.html">
-Tar</a> or <a href="manual/CoreTasks/zip.html">Zip</a> files for deployment, while
-the <a href="manual/CoreTasks/war.html">War</a> task extends the jar task for
-better servlet deployment. <a href = "jlink.html" >Jlink</a> is a jar
-generation file which lets you merge multiple sub jars. This is ideal
-for a build process in which separate jars are generated by sub
-projects, yet the final output is a merged jar. <a href=
-"manual/OptionalTasks/cab.html">Cab</a> can be used on Win32 boxes to build a cab file
-which is useful if you have to target IE deployment.
-
-<p>
-
-The <a href = "index.html#ftp">ftp</a> task lets you move stuff up to a
-server. Beware of putting the ftp password in the build file -a property
-file with tight access control is slightly better. The <a href=
-"manual/CoreTasks/fixcrlf.html">FixCRLF task</a> is often a useful interim step if
-you need to ensure that files have unix file extensions before upload. A
-WebDav task has long been discussed, which would provide a more secure
-upload to web servers, but it is still in the todo list. If DAV is your
-required upload mechanism, why not take up the challenge?
-
-<p>
-
-EJB deployment is aided by the <a href="manual/OptionalTasks/ejb.html">ejb tasks</a>. At the
-time of writing, only WebLogic was supported with these tasks -if your
-EJB server is not supported, extending the ejb tasks would benefit your
-project and the rest of the ant community.
-
-<p>
-
-Finally, there are of course the fallbacks of just copying files to a
-destination using <a href="manual/CoreTasks/copy.html">Copy</a> and <a href =
-"index.html#copydir">Copydir</a> , or just sending them to a person or
-process using <a href= "manual/CoreTasks/mail.html">Mail</a>.
-
-<a name="directories">
-<h2> Directory Structures</h2>
-</a>
-
-How you structure your directory tree is very dependent upon the
-project. Here are some directory layout patterns which can be used as
-starting points.
-
-<h3>Simple Project</h3>
-
-The project contains sub directories
-<table width="100%">
-<tr>
-	<td><b>bin</b>
-	</td>
-	<td>common binaries, scripts -put this on the path.
-	</td>
-</tr>
-
-<tr>
-	<td><b>build</b>
-	</td>
-	<td>This is the tree for building; ant creates it and can empty it
-	in the 'clean' project.
-	</td>
-</tr>
-<tr>
-	<td><b>dist</b>
-	</td>
-	<td>Distribution outputs go in here; the directory is created in ant
-	and clean empties it out
-	</td>
-</tr>
-<tr>
-	<td><b>doc</b>
-	</td>
-	<td>Hand crafted documentation
-	</td>
-</tr>
-<tr>
-	<td><b>lib</b>
-	</td>
-	<td>Imported Java libraries go in to this directory
-	</td>
-</tr>
-<tr>
-	<td><b>src</b>
-	</td>
-	<td>source goes in under this tree
-	</td>
-</tr>
-</table>
-
-The bin, lib, doc and src directories should be under source code control.
-Slight variations include an extra tree of content to be included in the
-distribution jars -inf files, images, etc. Javadoc output can be
-directed to a doc/ folder beneath build/, or to doc/javadoc.
-
-<h3>Interface and Implementation split</h3>
-
-If the interface is split from the implementation code then this can be
-supported with minor changes just by having a separate build path for
-the interface directory -or better still just in the jar construction:
-one jar for interface and one jar for implementation.
-
-
-<h3>Loosely Coupled Sub Projects</h3>
-
-In the loosely coupled approach multiple projects can have their own
-copy of the tree, with their own source code access rights.
-One difference to consider is only having one instance of the bin and
-lib directories across all projects. This is sometimes good -it helps
-keep copies of xerces.jar in sync, and sometimes bad -it can update
-foundational jar files before unit testing is complete.
-
-<p>
-
-To still have a single build across the sub projects, use parent
-build.xml files which call down into the sub projects.
-
-<p>
-
-This style works well if different teams have different code
-access/commitment rights. The risk is that by giving extra leeway to the
-sub projects, you can end up with incompatible source, libraries, build
-processes and just increase your workload and integration grief all round.
-
-<h3>Integrated sub projects</h3>
-
-Tightly coupled projects have all the source in the same tree; different
-projects own different subdirectories. Build files can be moved down to
-those subdirectores (say src/com/iseran/core and src/com/iseran/extras),
-or kept at the top -with independent build files named core.xml and
-extras.xml
-
-<p>
-
-This project style works well if everyone trusts each other and the
-sub projects are not too huge or complex. The risk is that a split to a
-more loosely coupled design will become a requirement as the projects
-progress -but by the time this is realised schedule pressure and
-intertwined build files make executing the split well nigh impossible.
-If that happens then just keep with it until there is the time to
-refactor the project directory structures.
-
-<a name="antupdate">
-<h2>
-	Ant Update Policies
-</h2>
-</a>
-
-Once you start using ant, you should have a policy on when and how the
-team updates their copies. A simple policy is "every official release
-after whatever high stress milestone has pushed all unimportant tasks
-(like sleep and seeing daylight) on the back burner". This insulates you
-from the changes and occasional instabilities that ant goes through
-during development. Its main disadvantage is that it isolates you from
-the new tasks and features that ant is constantly adding.
-
-<p>
-
-Often an update will require changes to the build.xml files. Most
-changes are intended to be backwards compatible, but sometimes an
-incompatible change turns out to be
-necessary. That is why doing the update in the lull after a big
-milestone is important. It is also why including ant.jar and related
-files in the CVS tree helps ensure that old versions of your software
-can be still be built.
-
-<p>
-
-The most aggressive strategy is to get a weekly or daily snapshot of the
-ant source, build it up and use it. This forces you to tweak the
-build.xml files more regulary, as new tasks and attributes can take
-while to stabilise. You really have to want the new features, enjoy
-gratuitous extra work or take pleasure in upsetting your colleagues to
-take this approach.
-
-<p>
-
-Once you start extending ant with new tasks, it suddenly becomes much
-more tempting to pull down regular builds. The most recent ant builds
-are invariably the the best platform for writing your extensions, as you
-can take advantage of the regular enhancements to the foundational
-classes. It also prevents you from wasting time working on something
-which has already been done. A newly submitted task to do something
-complex such as talk to EJB engines, SOAP servers or just convert a text
-file to uppercase may be almost exactly what you need -so take it,
-enhance it and offer up the enhancements to the rest of the world. This
-is certainly better than starting work on your 'text case converter'
-task on Ant 0.8 in isolation, announcing its existence six months latter
-and discovering that instead of adulation all you get are helpful
-pointers to the existing implementation.
-
-<p>
-
-You should also get on the <a href =
-"mailto:ant-dev-subscribe@jakarta.apache.org" > ant-dev mailing list
-</a>, as it is where the other developers post their work, problems and
-experience. The volume can be quite high: 40+ messages a day, so
-consider routing it to an email address you don't use for much else. And
-don't make everyone on the team subscribe; it can be too much of a
-distraction.
-
-
-<a name="tips">
-<h2>
-Tips and Tricks</h2>
-</a>
-<dl>
-<dt><b>
-	get
-</b><dd>
-
-The <a href="manual/CoreTasks/get.html">get</a> task can fetch any URL, so be used
-to trigger remote server side code during the build process, from remote
-server restarts to sending SMS/pager messages to the developer
-cellphones
-
-<dt><b>
-i18n
-</b><dd>
-
-
-Internationalisation is always trouble. Ant helps here with the <A href=
-"manual/OptionalTasks/native2ascii.html">native2ascii</a> task which can escape out all non
-ascii characters into unicode. You can use this to write java files
-which include strings (and indeed comments) in your own non-ASCII
-language and then use native2ascii to convert to ascii prior to feeding
-through javac. The rest of i18n and l12n is left to you...
-
-<dt><b>
-Use Property Files
-</b><dd>
-
-Use external property files to keep per-user settings out the build
-files -especially passwords. Property files can also be used to
-dynamically set a number of properties based on the value of a single
-property, simply by dyamically generating the property filename from the
-source property. They can also be used as a source of constants across
-multiple build files.
-
-<dt><b>
-Faster compiles with Jikes
-</b><dd>
-
-The <a href="http://www.jikes.org/">jikes compiler</a> is usually much
-faster than javac, and does dependency checking. Get it. Then set
-build.compiler to "jikes" for it to be used in your build files.
-
-<dt><b>
-#include targets to simplify multi build.xml projects
-</b><dd>
-
-You can import XML files into a build file using the XML parser itself.
-This lets a multi-project development program share code through reference,
-rather than cut and paste re-use. It also lets one build up a file of
-standard tasks which can be reused over time. Because the import
-mechanism is at a level below which ant is aware, treat it as
-equivalent to the #include mechanism of the 'legacy' languages C and
-C++.
-
-<p>
-
-There are two inclusion mechanisms, an ugly one for all parsers and a
-clean one. For now, the ugly
-method is the most portable:-
-<pre>
-	&lt;!DOCTYPE project [
-	  &lt;!ENTITY IncludeBuildCore SYSTEM &quot;buildCore.xml&quot;&gt;
-	  &lt;!ENTITY IncludeBuildSecondary SYSTEM &quot;buildSecondary.xml&quot;&gt;
-	%IncludeBuildCore;
-	%IncludeBuildSecondary;
-	]&gt;  
-	
-	&lt;target name=&quot;includedBuild&quot;&gt;
-		&amp;IncludeBuildCore;
-		&amp;IncludeBuildSecondary;
-	&lt;/target&gt;
-</pre>
-The clean method using XInclude/Xpath will let you include named 
-targets from one build file or another, using
-<a href="http://www.w3.org/XML/Linking"> 
-the xpointer syntax</a>. You'll need to wait for the W3C proposals
-to finalise and the java XML parsers to implement it before
-using xpointer references.  
-<dt><b>
-Implement complex Ant builds through XSL
-</b><dd>
-
-XSLT can be used to dynamically generate build.xml files from a source
-xml file, with the <a href="manual/CoreTasks/style.html">Style</a> task controlling
-the transform. This is the current recommended strategy for creating
-complex build files dynamically.
-
-
-<dt><b>
-Change the invocation scripts
-</b><dd>
-
-By writing your own invocation script -using the DOS, Unix or Perl
-script as a starting point- you can modify a ant behavior for an
-individual project. For example, you can use an alternate variable to
-ANT_HOME as the base, extend the classpath differently, or dynamically
-create a new command line property 'project.interfaces' from all .jar
-files in an interfaces directory.
-
-<p>
-
-Having a custom invocation script which runs off a CVS controlled
-library tree under PROJECT_HOME also lets you control ant versions
-across the team -developers can have other copies of ant if they want,
-but the CVS tree always contains the jar set used to build your project.
-
-<p>
-
-You can also write wrapper scripts which invoke the existing ant
-scripts. This is an easy way to extend them. The wrapper scripts can add
-extra definitions and name explicit targets, redefine ANT_HOME and
-generally make development easier. Note that "ant" in Windows is really
-"ant.bat", so should be invoked from another batch file with a "CALL
-ant" statement -otherwise it never returns to your wrapper.
-
-
-<dt><b>
-Write all code so that it can be called from Ant
-</b><dd>
-
-This seems a bit strange and idealistic, but what it means is that you should
-write all your java code as if it may be called as a library at some point in
-future. So do not place calls to <b>System.exit()</b> deep in the code -if you
-want to exit a few functions in, raise an exception instead and have
-<b>main()</b> deal with it.
-
-<dt><b>
-Use Antidote as the invocation tool
-</b><dd>
-Even if you edit ant files by hand, Antidote makes a good execution tool
-because it eliminates the startup time of the JVM, perhaps even some of
-the XML parsing delays. 
-
-</dl>
-
-<a name="puttingtogether">
-	<h2>
-		Putting it all together
-	</h2>
-</a>
-
-What does an ant build process look like in this world? Assuming a
-single directory structure for simplicity, the build file
-should contain a number of top level targets
-<ul>
-<li>build - do an (incremental) build
-<li>test - run the junit tests
-<li>clean - clean out the output directories
-<li>deploy - ship the jars, wars, whatever to the execution system
-<li>publish - output the source and binaries to any distribution site
-<li>fetch - get the latest source from the cvs tree
-<li>docs/javadocs - do the documenation
-<li>all - clean, fetch, build, test, docs, deploy
-<li>main - the default build process (usually build or build & test)
-</ul>
-Sub projects 'web', 'bean-1', 'bean-2' can be given their own build
-files -web.xml, bean-1.xml, bean-2.xml- with the same entry points.
-Extra toplevel tasks related to databases, web site images and the like
-should be considered if they are part of the process.
-
-<p>
-Debug/release switching can be handled with separate initialisation
-targets called before the compile tasks which define the appropriate
-properties.
-
-<p>
-Internal targets should be used to structure the process
-<ul>
-<li> init - initialise properties, extra-tasks, read in per-user
-property files.
-<li> init-debug - initialise debug properties
-<li> init-release - initialise release properties
-<li> compile - do the actual compilation
-<li> link/jar - make the jars or equivalent
-<li> staging - any pre-deployment process in which the output is dropped
-	off then tested before being moved to the production site.
-</ul>
-
-The switching between debug and release can be done using the 'if' and
-'unless' conditional flags on the targets, so that debug gets called
-unless 'project.mode.release' is defined.
-
-<p>
-
-It is useful to define a project name property which can be echoed in
-the init task. This lets you work out which ant file is breaking in a
-multi file build.
-
-<p>
-
-What goes in to the internal ant tasks depends on your own projects. One
-very important tactic is 'keep path redefinition down through
-references' - you can reuse paths by giving them an ID and then
-referring to them via the 'refid' attribute you should only need to
-define a shared classpath once in the file; filesets can be reused
-similarly.
-
-<p>
-
-Once you have set up the directory structures, and defined the ant tasks
-it is time to start coding. An early priority must be to set up the
-automated test process, as that not only helps ensures that the code
-works, it verifies that the build process is working.
-
-<p>
-
-And that's it. The build file shouldn't need changing as new source
-files get added, only when you want to change the deliverables or part
-of the build process. At some point you may want to massively
-restructure the entire build process, restructuring projects and the
-like, but even then the build file you have should act as a foundation
-for a split build file process -just pull out the common properties into
-a properties file all build files read in, keep the target names unified
-and keep going with the project. Restructuring the source code control
-system is often much harder work.
-
-<h2>The Limits of Ant</h2>
-
-Before you start adopting ant as the sole mechanism for the build
-process, you need to be aware of what it doesn't do.
-<p>
-
-<h3>It's not a scripting language</h3>
-
-Ant lets you declare what you want done, with a bit of testing of the
-platform and class libraries first to enable some platform specific
-builds to take place. It does not let you specify how to handle things
-going wrong (a listener class can do that), or support complex
-conditional statements.
-
-<p>
-
-If your build needs to handle exceptions then look at the sound listener
-as a simple example of how to write your own listener class. Complex
-conditional statements can be handled by having something else do the
-tests and then build the appropriate ant task. XSLT can be used for
-this.
-
-<h3>It's not Make</h3>
-
-Some of the features of make, specifically inference rules and
-dependency checking are not included in ant. That's because they are
-'different' ways of doing a build. Make requires you to state
-dependencies and the build steps, ant wants you to state tasks and the
-order between them, the tasks themselves can do depedency checking or
-not. A full java build using Jikes is so fast that dependency checking
-is relatively moot, while many of the other tasks (but not all), compare
-the timestamp of the source file with that of the destination file
-before acting.
-
-<h3>It's not meant to be a nice language for humans</h3>
-
-XML isnt a nice representation of information for humans. It's a
-reasonable representation for programs, and text editors and source code
-management systems can all handle it nicely. But a complex ant file can
-get ugly because XML is a bit ugly, and a complex build is, well,
-complicated. Use XML comments so that the file you wrote last month
-still makes sense when you get back to it, and use Antidote to edit the
-files if you prefer it. 
-
-
-<h2>Endpiece</h2>
-
-Software development is meant to be fun. Being in the maelstrom of a
-tight project with the stress of integration and trying to code
-everything up for an insane deadline can be fun -it is certainly
-exhilirating. Adding a bit of automation to the process may make things
-less chaotic, and bit less entertaining, but it is a start to putting
-you in control of your development process. You can still have fun, you
-should just have less to worry about, a shorter build/test/deploy cycle
-and more time to spend on feature creep or important things like skiing.
-So get out there and have fun!
-
-<a name="reading">
-<h2>Further Reading</h2>
-</a>
-<ul>
-<li>
-<a
-href="http://www.martinfowler.com/articles/continuousIntegration.html">
-Continuous Integration</a>; Martin Fowler. <br>
-A paper on using ant within a software project
-running a continuous integration/testing proces.
-<li> Refactoring; Martin Fowler, ISBN: 0201485672 <br>
-	Covers JUnit as well as tactics for making some headway with the mess of
-	code you will soon have.
-
-</ul>
-<hr>
-<p align="center">Copyright &copy; 2000 Apache Software Foundation. All rights
-Reserved.</p>
-
-
diff --git a/docs/ant_task_guidelines.html b/docs/ant_task_guidelines.html
deleted file mode 100644
index 7666f56..0000000
--- a/docs/ant_task_guidelines.html
+++ /dev/null
@@ -1,291 +0,0 @@
-<html><head>
-<title>
-Ant Task Design Guidelines
-</title>
-</head><body>
-
-<h1>Ant Task Design Guidelines</h1>
-
-This document covers how to write ant tasks to a standard required to be
-incorporated into the ant distribution. You may find it useful when
-writing tasks for personal use as the issues it addresses are still
-there in such a case.
-
-
-<h2>Use built in helper classes</h2>
-
-Ant includes helper tasks to simplify mauch of your work. Be warned that
-these helper classes will look very different in ant2.0 from these 1.x
-versions. However it is still better to use them than roll your own, for
-development, maintenance and code size reasons.
-
-<h4>Execute</h4>
-
-Execute will spawn off separate programs under all the platforms which
-ant supports, dealing with java version sublties as well as platform
-issues. Always use this task to invoke other programs. 
-
-<h4>Java, ExecuteJava</h4>
-
-These classes can be used to spawn java programs in a separate VM (they
-use execute) or in the same VM -with or without a different classloader. 
-
-<h4>Project</h4>
-
-Project has some helper functions to touch a file, to
-copy a file and the like. Use these instead of trying to code them
-yourself -or trying to use tasks which may be less stable and fiddlier
-to use.
-
-
-<h2>Obey the Sun/Java style guidelines</h2>
-
-The Ant codebase aims to have a single unified coding standard, and that
-standard is the
-<a href="http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html">
-Sun Java coding guidelines
-</a>
-<p>
-
-It's not that they are better than any alternatives, but they are a
-standard and they are what is consistently used in the rest of the
-tasks. Code will not be incorporated into the database until it complies
-with these.
-
-<p>
-
-If you are writing a task for your personal or organisational use, you
-are free to use whatever style you like. But using the Sun Java style
-will help you to become comfortable with the rest of the Ant source,
-which may be important.
-
-<p>
-
-One controversial rule is 'no tabs'. Use four spaces instead. Not two,
-not eight, four. Even if your editor is configured to have a tab of four
-spaces, lots of others aren't -spaces have more consistency across
-editors and platforms.
-
-<h2>Recommended Names for attributes and elements</h2>
-
-The ant1.x tasks are fairly inconsistent regarding naming of attributes
--some tasks use source, others src. Here is a list of what is likely to
-be the preferred attribute names for ant 2.0. 
-
-<i>TODO: list attribute/element names which should be standardised, and meaning</i>
-
-failonerror, source, dest...
-
-<h2>Design for controlled re-use</h2>
-
-Keep member variables private. If read access by subclasses is required.
-add accessor methods rather than change the accessiblity of the member.
-This enables subclasses to access the contents, yet
-still be decoupled from the actual implementation. 
-<p>
-
-The other common re-use mechanism in ant is for one task to create and
-configure another. This is fairly simple. (TODO: example)
-
-<h2>Refactor</h2>
-
-If the changes made to a task are making it too unwieldy, split it up
-into a cleaner design, refactor the code and submit not just feature
-creep but cleaner tasks. A common design pattern which tends to occur in
-the ant process is the adoption of the adapter pattern, in which a base
-class (say Javac or Rmi) starts off simple, then gets convoluted with
-support for multiple back ends -javac, jikes, jvc. A refactoring to
-split the programmable front end from the classes which provide the back
-end cleans up the design and makes it much easier to add new back ends.
-But to carry this off one needs to keep the interface and behaviour of
-the front end identical, and to be sure that no subclasses have been
-accessing data members directly -because these data members may not
-exist in the refactored design. Which is why having private data members
-is so important.
-
-
-<h2>Test</h2>
-
-Look in jakarta-ant/src/testcases and you will find Junit tests for the
-shipping ant tasks, to see how it is done and what is expected of a new
-task. Most of them are rudimentary, and no doubt you could do better for
-your task -feel free to do so!
-
-<p>
-
-A well written set of test cases will break the ant task while it is in
-development, until the code is actually complete. And every bug which 
-surfaces later should have a test case added to demonstrate the problem,
-and to fix it.
-
-<p>
-
-The test cases are a great way of testing your task during development.
-A simple call to 'ant run-test' in the ant source tree will run all ant
-tests, to verify that your changes don't break anything.
-To test a single task, use the one shot <code>ant run-single-test
--Dtestcase=${testname}</code> where ${testname} is the name of your test class.
-
-
-<p>
-
-The test cases are also used by the committers to verify that changes
-and patches do what they say. If you've got test cases it increases your
-credibility significantly. 
-
-<p>
-
-Remember also that ant 1.x is designed to compile and run on Java1.1, so
-you should test on java 1.1 as well as any later version which you use.
-If you are developing on Windows you may well have the Microsoft JVM at
-hand for this, otherwise you can download an old SDK or runtime from
-Sun.
-
-<h2>Document</h2>
-
-Without documentation, the task can't be used. So remember to provide a
-succint and clear html (soon, xml) page describing the task in a similar
-style to that of existing tasks. It should include a list of attributes
-and elements, and at least one working example of the task. Many users
-cut and paste the examples into their build files as a starting point,
-so make the examples practical and test them too.
-
-<h2>Licensing and Copyright</h2>
-
-Any code submitted to the Apache project must be compatible with the
-Apache Software License, and the act of submission must be viewed as an
-implicit transfer of ownership of the submitted code to the Apache
-Software Foundation.
-
-<p>
-This is important.
-
-<p>
-
-The fairly laissez-faire license of Apache is not compabitible with
-either the GPL or the Lesser GPL of the Free Software Foundation -the
-Gnu project. Their license requires all changes to the source to be made
-public, and give the licensee of any software the right to distribute
-copies. It also requires derivative works to be made available under the
-same license terms. None of these requirements are in the Apache Software
-Foundation license, which permits people and organisations to build
-commercial and closed source applications atop the Apache libraries and
-source -but not use the Apache, Ant or Jakarta Project names without
-permission.
-
-<p>
-
-Because the Gnu GPL license immediately extends to cover any larger
-application (or library, in the case of GLPL) into which it is
-incorporated, the Ant team can not incorporate any task based upon GPL
-or LGPL source into the Ant codebase. You are free to submit it, but it
-will be politely and firmly rejected.
-
-<p>
-
-Once ant-2 adds better dynamic task incorporation, it may be possible to
-provide a framework for supporting [L]GPL code, but still no tasks
-direcely subject to the Gnu licenses will ever be included in the Ant
-CVS tree.
-
-<h3>Dont re-invent the wheel</h3>
-
-We've all done it: written and submitted a task only to discover it
-was already implemented in a small corner of another task, or it has
-been submitted by someone else and not committed. You can avoid this
-by being aware of what is in the latest CVS tree -keep getting the daily
-source updates, look at manual changes and subscribe to the ant-dev
-mailing list. 
-
-<p>
-
-If you are thinking of writing a task, posting a note on your thoughts
-to the list can be informative -you well get other peoples insight and
-maybe some half written task to do the basics, all without writing a
-line of code. 
-
-
-<h2>Submitting to Ant</h2>
-
-The process for submitting an ant task is documented on the
-<a href="http://jakarta.apache.org/site/guidelines.html">
-jakarta web site</a>.
-The basic mechanism is to mail it to the ant-dev mailing list.
-It helps to be on this list, as you will see other submissions, and
-any debate about your own submission.
-<p>
-
-Patches to existing files should be generated with <code>cvs diff -u filename</code>
- and save the output to a file. If you want to get
-the changes made to multiple files in a directory , just use <code>cvs
-diff -u</code>. The patches should be sent as an attachment to a message titled [PATCH]
-and distinctive one-line summary in the subject of the patch. The
-filename/task and the change usually suffices. It's important to include
-the changes as an attachment, as too many mailers reformat the text
-pasted in, which breaks the patch.
-<p>
-Then you wait for one of the committers to commit the patch, if it is
-felt appropriate to do so. Bug fixes go in quickly, other changes
-often spark a bit of discussion before a (perhaps revised) commit is
-made.
-<p>
-
-New submissions should be proceeded with [SUBMIT]. The mailer-daemon
-will reject any messages over 100KB, so any large update should be
-zipped up. If your submission is bigger than that, why not break it up
-into separate tasks. 
-
-<h2>Checklists</h2>
-
-These are the things you should verify before submitting patches and new
-tasks. Things don't have to be perfect, it may take a couple of
-iterations before a patch or submission is committed, and these items
-can be addressed in the process. But by the time the code is committed,
-everything including the documentation and some test cases will have
-been done, so by getting them out the way up front can save time.
-The committers look more favourably on patches and submissions with test
-cases, while documentation helps sell the reason for a task. 
-
-<h3>Checklist before submitting a patch</h3>
-<ul>
-<li>Added code complies with style guidelines
-<li>New member variables are private, and provide public accessor methods
-	if access is actually needed. 
-<li>Existing test cases succeed.
-<li>New test cases written and succeed.
-<li>Documentation page extended as appropriate.
-<li>Example task declarations in the documentation tested.
-<li>Diff files generated using cvs diff -u
-<li>Message to ant-dev contains [PATCH], task name and patch reason in
-subject.
-<li>Message body contains a rationale for the patch.
-<li>Message attachment contains the patch file(s).
-</ul>
-
-<h3>Checklist before submitting a new task</h3>
-<ul>
-<li>Java file begins with Apache copyright and license statement.
-<li>Task does not depend on GPL or LGPL code.
-<li>Source code complies with style guidelines
-<li>Member variables are private, and provide public accessor methods
-	if access is actually needed. 
-<li><i>Maybe</i> Task has failonerror attribute to control failure behaviour
-<li>New test cases written and succeed
-<li>Documentation page written
-<li>Example task declarations in the documentation tested.
-<li>Patch files generated using cvs diff -u
-<li>patch files include a patch to defaults.properties to register the
-tasks
-<li>patch files include a patch to coretasklist.html or
-optionaltasklist.html to link to the new task page
-<li>Message to ant-dev contains [SUBMIT] and task name in subject
-<li>Message body contains a rationale for the task
-<li>Message attachments contain the required files -source, documentation,
-test and patches
-</ul>
-<hr>
-<p align="center">Copyright &copy; 2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body></html>
-
diff --git a/docs/antnews.html b/docs/antnews.html
deleted file mode 100644
index 5a6e398..0000000
--- a/docs/antnews.html
+++ /dev/null
@@ -1,242 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
-<!-- Content Stylesheet for Site -->
-
-        
-<!-- start the processing -->
-    <html>
-    <head>
-      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-  
-                      <meta name="author" value="Conor MacNeill">
-  <meta name="email" value="conor@cortexebusiness.com.au">
-                <meta name="author" value="Stefan Bodewig">
-  <meta name="email" value="stefan.bodewig@epost.de">
-        
-      <title>The Jakarta Site - Ant News</title>
-    </head>
-  
-    <body bgcolor="#ffffff" text="#000000" link="#525D76">    
-      <table border="0" width="100%" cellspacing="0">
-        <!-- TOP IMAGE -->
-        <tr>
-                <td colspan="2">
-    <a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" align="left" border="0"/></a>
-    </td>
-          </tr>
-      </table>
-      <table border="0" width="100%" cellspacing="4">
-        <tr><td colspan="2">
-          <hr noshade="" size="1"/>
-        </td></tr>
-        
-        <tr>
-          <!-- LEFT SIDE NAVIGATION -->
-          <td valign="top" nowrap="true">
-                <p><strong>Ant</strong></p>
-    <ul>
-          <li>      <a href="./index.html">Front Page</a>
-  </li>
-          <li>      <a href="./antnews.html">News</a>
-  </li>
-          <li>      <a href="./manual/index.html">Documentation</a>
-  </li>
-          <li>      <a href="./external.html">External Tools and Tasks</a>
-  </li>
-          <li>      <a href="./resources.html">Resources</a>
-  </li>
-          <li>      <a href="./faq.html">Ant FAQ</a>
-  </li>
-          <li>      <a href="./problems.html">Having Problems?</a>
-  </li>
-        </ul>
-      <p><strong>Download</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/binindex.html">Binaries</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/sourceindex.html">Source Code</a>
-  </li>
-        </ul>
-      <p><strong>Jakarta</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/news.html">News & Status</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/mission.html">Mission</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/guidelines.html">Guidelines Notes</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/faqs.html">FAQs</a>
-  </li>
-        </ul>
-      <p><strong>Get Involved</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/getinvolved.html">Overview</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/cvsindex.html">CVS Repositories</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/mail.html">Mailing Lists</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/library.html">Reference Library</a>
-  </li>
-          <li>      <a href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
-  </li>
-          <li>      <a href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=Ant&bug_severity=Enhancement">Enhancement Requests</a>
-  </li>
-        </ul>
-            </td>
-          <td align="left" valign="top">
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Ant 1.4 Beta"><strong>Ant 1.4 Beta</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <h3>Ant 1.4 Beta Available !</h3>
-                                <p>The beta version of Ant 1.4 is now available for 
-     <a href="http://jakarta.apache.org/builds/jakarta-ant/release/v1.4Beta1/">
-     download</a>. If you have any feedback on the beta feel free to join the 
-     discussion on the ant-dev and ant-user mailing lists.
-     </p>
-                    </blockquote>
-    </td></tr>
-  </table>
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Ant Needs a Logo"><strong>Ant Needs a Logo</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>Ant still doesn't have a Logo, but it sure deserves one. We've
-    put together a <a href="logos.html">page with proposed
-    logos</a>, please take a look at them and tell us what you
-    think. If you have a nice logo idea yourself, just submit it to
-    the mailing lists.</p>
-                    </blockquote>
-    </td></tr>
-  </table>
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Ant 2.0 Requirements Collected - Next is Design"><strong>Ant 2.0 Requirements Collected - Next is Design</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>A commented version of the collected user requirements is now
-      available <a href="/ant/ant2/features.html">here</a> - it is not
-      complete as some details still have to be defined, but it should
-      give you an idea of what Ant2 is going to look like.</p>
-                                <p>Several details can only be decided in the light of real code
-      and prototypes.  Several people are working on prototypes (that
-      can be found in Ant's CVS module in the proposals directory) and
-      discussion is going on on the Ant-Dev mailing list.</p>
-                    </blockquote>
-    </td></tr>
-  </table>
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Best-Practices Profile of Ant at Sun's Dot-Com Builder"><strong>Best-Practices Profile of Ant at Sun's Dot-Com Builder</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>Sun has released an introductory article on Ant on their
-      Dot-Com Builder site on May 30 2001. See <a href="http://dcb.sun.com/practices/profiles/ant.jsp">http://dcb.sun.com/practices/profiles/ant.jsp</a></p>
-                    </blockquote>
-    </td></tr>
-  </table>
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Ant 2.0 Requirements"><strong>Ant 2.0 Requirements</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>Ant has been in use for quite some time and has been used in ways never conceived when it
-       was originally written. While Ant 1.x has continued to sucessfully evolve and grow, there 
-       are a number of limitations and inconsistencies that are now apparent and which need to 
-       be addressed. 
-    </p>
-                                <p>
-       As we continue to evolve and enhance Ant 1.x, it is now time to define what Ant 2.0 will
-       encompass. Ant 2.0 will be a major rearchitecting of Ant. It has a number of goals including:
-       <ul>
-         <li>Define the "contract" with build file writers to which Ant will be bound.</li>
-         <li>Define the "contract" between the Ant core and Task writers.</li>
-         <li>Make Ant more easily extendable by allowing additional tasks to be "dropped" in.</li>
-         <li>Allow Ant to function as a component to simplify integration with GUIs and IDEs.</li>
-         <li>Make Ant more regular and logical.</li>
-       </ul>
-       
-       It is expected that Ant 2.0 will break Ant 1.x based build files. The intention is to
-       make this the last time that will happen.
-     </p>
-                                <p>
-        To advance the definition of Ant, user requirements are now being accepted on the 
-        Ant-Dev mailing list. Any requirement will be accepted for consideration. The 
-        requirements are being collected into a document which is available 
-        <a href="/ant/ant2/requested-features.txt">on-line</a>. New features will be excepted 
-        until March 21st, 2001. At that time, each requirement will be discussed 
-        for inclusion in an Ant 2.0 requirement document.
-      </p>
-                                <p>
-        For your reference some of the goals which have shaped the development of Ant 1.x are
-        available <a href="/ant/ant2/original-specification.html">here</a>. These continue to be
-        relevant to Ant 2.0.
-      </p>
-                                <p>
-        If you want to shape the future of Ant, join the 
-        <a href="/site/mail.html">Ant-Dev mailing list</a> and contribute
-        your ideas.
-      </p>
-                    </blockquote>
-    </td></tr>
-  </table>
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Ant 1.3 Released"><strong>Ant 1.3 Released</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>
-    Ant 1.3 has been released after going through three betas. Thanks to everyone who
-    took the time to test the beta and report bugs and enhancements.
-    </p>
-                                <p>You can download the release from 
-        <a href="http://jakarta.apache.org/builds/jakarta-ant/release/v1.3/">here</a>. 
-       Both source and binary releases are available in zip, tarball and RPM formats.
-    </p>
-                                <p>Please report all bugs using the 
-        <a href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=Ant">Apache Bugzilla</a>
-    </p>
-                    </blockquote>
-    </td></tr>
-  </table>
-              </td>
-        </tr>
-
-        <!-- FOOTER -->
-        <tr><td colspan="2">
-          <hr noshade="" size="1"/>
-        </td></tr>
-        <tr><td colspan="2">
-          <div align="center"><font color="#525D76" size="-1"><em>
-          Copyright &#169; 1999-2001, Apache Software Foundation
-          </em></font></div>
-        </td></tr>
-      </table>
-    </body>
-  </html>
-<!-- end the processing -->
-
-
-
-
diff --git a/docs/external.html b/docs/external.html
deleted file mode 100644
index b65cbd4..0000000
--- a/docs/external.html
+++ /dev/null
@@ -1,1154 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
-<!-- Content Stylesheet for Site -->
-
-        
-<!-- start the processing -->
-    <html>
-    <head>
-      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-  
-                      <meta name="author" value="Stefan Bodewig">
-  <meta name="email" value="bodewig@apache.org">
-        
-      <title>The Jakarta Site - External Tools and Tasks</title>
-    </head>
-  
-    <body bgcolor="#ffffff" text="#000000" link="#525D76">    
-      <table border="0" width="100%" cellspacing="0">
-        <!-- TOP IMAGE -->
-        <tr>
-                <td colspan="2">
-    <a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" align="left" border="0"/></a>
-    </td>
-          </tr>
-      </table>
-      <table border="0" width="100%" cellspacing="4">
-        <tr><td colspan="2">
-          <hr noshade="" size="1"/>
-        </td></tr>
-        
-        <tr>
-          <!-- LEFT SIDE NAVIGATION -->
-          <td valign="top" nowrap="true">
-                <p><strong>Ant</strong></p>
-    <ul>
-          <li>      <a href="./index.html">Front Page</a>
-  </li>
-          <li>      <a href="./antnews.html">News</a>
-  </li>
-          <li>      <a href="./manual/index.html">Documentation</a>
-  </li>
-          <li>      <a href="./external.html">External Tools and Tasks</a>
-  </li>
-          <li>      <a href="./resources.html">Resources</a>
-  </li>
-          <li>      <a href="./faq.html">Ant FAQ</a>
-  </li>
-          <li>      <a href="./problems.html">Having Problems?</a>
-  </li>
-        </ul>
-      <p><strong>Download</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/binindex.html">Binaries</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/sourceindex.html">Source Code</a>
-  </li>
-        </ul>
-      <p><strong>Jakarta</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/news.html">News & Status</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/mission.html">Mission</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/guidelines.html">Guidelines Notes</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/faqs.html">FAQs</a>
-  </li>
-        </ul>
-      <p><strong>Get Involved</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/getinvolved.html">Overview</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/cvsindex.html">CVS Repositories</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/mail.html">Mailing Lists</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/library.html">Reference Library</a>
-  </li>
-          <li>      <a href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
-  </li>
-          <li>      <a href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=Ant&bug_severity=Enhancement">Enhancement Requests</a>
-  </li>
-        </ul>
-            </td>
-          <td align="left" valign="top">
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="External Tools and Tasks"><strong>External Tools and Tasks</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>This page lists external resources for Ant: tasks, IDE
-      integration tools, loggers, you name it. If you've written
-      something that should be included, please post all relevant
-      information to one of the mailing lists.</p>
-                                <p>Nothing listed here is directly supported by the Ant
-      developers, if you encounter any problems with them, please use
-      the contact information.</p>
-                    </blockquote>
-    </td></tr>
-  </table>
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Tasks"><strong>Tasks</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                          <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="AJC"><strong>AJC</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p><a href="http://aspectj.org">AspectJ</a> is an
-          aspect-oriented extension to Java.  This task compiles a
-          source tree using the AspectJ compiler -- AJC.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Compatibility:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Ant 1.3
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://aspectj.org/dl">http://aspectj.org/dl</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Contact:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:support@aspectj.org">support@aspectj.org</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          License:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Apache Software License
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Anakia"><strong>Anakia</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>Actually, Anakia is more than just an Ant task, it is a an
-        XML transformation tool based on JDOM, Velocity and Ant.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Compatibility:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Ant 1.2 and 1.3
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://jakarta.apache.org/velocity/anakia.html">http://jakarta.apache.org/velocity/anakia.html</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Contact:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://jakarta.apache.org/site/mail2.html">Velocity mailing lists</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          License:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Apache Software License
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Checkstyle"><strong>Checkstyle</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>Checkstyle is a development tool to help programmers write
-        Java code that adheres to a coding standard. Its purpose is to
-        automate the process of checking Java code, and to spare
-        humans of this boring (but important) task.</p>
-                                <p>Checkstyle can be run via an ANT task or a command line
-        utility.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Compatibility:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Ant 1.2 and 1.3
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://www.puppycrawl.com/checkstyle">http://www.puppycrawl.com/checkstyle</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Contact:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:checkstyle@puppycrawl.com">Oliver Burn</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          License:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          GNU General Public License
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Configure"><strong>Configure</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>Recursive build support (call ant on every package level,
-        and only build files in that package or in that package and
-        everything below) with seperation of source and output.</p>
-                                <p>The task generates build files in any subdirectory (except
-        for CVS-directories) for you. Only place one build.xml file in
-        the top and call target 'setup' or
-        'rescan'.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Compatibility:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Ant 1.2 and 1.3
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://www.dsdelft.nl/~lemval/ant/">http://www.dsdelft.nl/~lemval/ant/</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Contact:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:lemval@dsdelft.nl">M.J.P. van Leeuwen</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          License:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          License derived from Apache Software License
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="J2ME Ant Tasks"><strong>J2ME Ant Tasks</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>There are two different sets of tasks to help build <a href="http://java.sun.com/j2me/">Java 2 Platform, Micro
-        Edition</a> (J2ME) applications.</p>
-                                <p>This set supports CLDC and the K Virtual Machine (KVM):</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Compatibility:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Ant 1.3
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://www.dribin.org/dave/j2me_ant/">http://www.dribin.org/dave/j2me_ant/</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Contact:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:drib@enteract.com">Dave Dribin</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          License:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Apache Software License
-        </font>
-  </td>
-      </tr>
-        </table>
-                                <p>And this set works with the J2ME Wireless Toolkit and MIDP
-        for PalmOS:</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Compatibility:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Ant 1.3
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://www.stampysoft.com/ant/">http://www.stampysoft.com/ant/</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Contact:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:jeckels@stampysoft.com">Josh Eckels</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          License:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          MIT License
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="TiniAnt"><strong>TiniAnt</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>TiniAnt is an Ant task to support building applications for
-        the <a href="http://www.ibutton.com/TINI/">TINI</a>.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Compatibility:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Ant 1.2 and 1.3
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://tiniant.sourceforge.net/">http://tiniant.sourceforge.net/</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Contact:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:kelly@ad1440.net">Sean Kelly</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          License:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          BSD-like license
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Venus Application Publisher's (Vamp) Ant Task Suite"><strong>Venus Application Publisher's (Vamp) Ant Task Suite</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>Venus Application Publisher's (Vamp) Ant Task Suite allows
-        you to sign and package your applications into relocatable Web
-        Archives that you can drop into your web server for
-        single-click launching using Java Web Start or into single
-        Java Archive installers that serve up their content through a
-        built-in, multi-threaded, ultra light-weight web server.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Compatibility:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Ant 1.2 and 1.3
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://www.geocities.com/vamp201/ant.html">http://www.geocities.com/vamp201/ant.html</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Contact:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:vamp201@yahoo.com">Gerald Bauer</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          License:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          GNU General Public License
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="IDE/Editor Integration"><strong>IDE/Editor Integration</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                          <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="AntFarm"><strong>AntFarm</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>A plugin that integrates Ant into the jEdit editor.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Compatibility:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          bundles Ant 1.3
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://plugins.jedit.org/plugins/AntFarm">http://plugins.jedit.org/plugins/AntFarm</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Contact:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:jedit-devel@lists.sourceforge.net">jEdit developers mailinglist</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          License:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Apache Software License
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="AntRunner"><strong>AntRunner</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>An OpenTool that integrates Ant into the JBuilder IDE.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Compatibility:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Ant 1.2 and 1.3
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://www.dieter-bogdoll.de/java/AntRunner/">http://www.dieter-bogdoll.de/java/AntRunner/</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Contact:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:bogdoll@users.sourceforge.net">Dieter Bogdoll</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          License:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          GNU General Public License
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="AntWork"><strong>AntWork</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>A plugin that integrates Ant into the Jext editor.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Compatibility:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Ant 1.2 and 1.3
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip">ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Contact:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:KHartlage@t-online.de">Klaus Hartlage</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          License:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          GNU General Public License
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="IntelliJ IDEA 2.0"><strong>IntelliJ IDEA 2.0</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>Java IDE with refactoring support and Ant integration.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Compatibility:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          bundles Ant 1.3
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://www.intellij.com/idea/">http://www.intellij.com/idea/</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Contact:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:support@intellij.com">support@intellij.com</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          License:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Commercial
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="NetBeans / Forte for Java"><strong>NetBeans / Forte for Java</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>A module that integrates Ant into the NetBeans or Forte for Java IDEs.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Compatibility:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          bundles Ant 1.3
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://ant.netbeans.org/">http://ant.netbeans.org/</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Contact:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:nbdev@netbeans.org">nbdev@netbeans.org</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          License:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Sun Public License
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Other"><strong>Other</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                          <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="CruiseControl"><strong>CruiseControl</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>CruiseControl is a tool for setting up a continuous build
-        process.  CruiseControl provides an Ant wrapper and a set of
-        tasks to automate the checkout/build/test cycle. CruiseControl
-        also comes bundled with a servlet for viewing the status of
-        the current build, as well as previous build results.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Compatibility:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Ant 1.2 and 1.3
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://cruisecontrol.sourceforge.net/">http://cruisecontrol.sourceforge.net/</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Contact:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://cruisecontrol.sourceforge.net/contact.html">Project Mailing Lists and Administrators</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          License:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Release 1.0 has been licensed under the GNU General Public
-            License.  Starting with release 1.1 the license has been
-            changed to a BSD-like license.
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-              </td>
-        </tr>
-
-        <!-- FOOTER -->
-        <tr><td colspan="2">
-          <hr noshade="" size="1"/>
-        </td></tr>
-        <tr><td colspan="2">
-          <div align="center"><font color="#525D76" size="-1"><em>
-          Copyright &#169; 1999-2001, Apache Software Foundation
-          </em></font></div>
-        </td></tr>
-      </table>
-    </body>
-  </html>
-<!-- end the processing -->
-
-
-
-
diff --git a/docs/faq.html b/docs/faq.html
deleted file mode 100644
index 65acf7a..0000000
--- a/docs/faq.html
+++ /dev/null
@@ -1,1219 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
-<!-- Content Stylesheet for Site -->
-
-        
-<!-- start the processing -->
-    <html>
-    <head>
-      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-  
-                      <meta name="author" value="Stefan Bodewig">
-  <meta name="email" value="bodewig@apache.org">
-        
-      <title>The Jakarta Site - Frequently Asked Questions</title>
-    </head>
-  
-    <body bgcolor="#ffffff" text="#000000" link="#525D76">    
-      <table border="0" width="100%" cellspacing="0">
-        <!-- TOP IMAGE -->
-        <tr>
-                <td colspan="2">
-    <a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" align="left" border="0"/></a>
-    </td>
-          </tr>
-      </table>
-      <table border="0" width="100%" cellspacing="4">
-        <tr><td colspan="2">
-          <hr noshade="" size="1"/>
-        </td></tr>
-        
-        <tr>
-          <!-- LEFT SIDE NAVIGATION -->
-          <td valign="top" nowrap="true">
-                <p><strong>Ant</strong></p>
-    <ul>
-          <li>      <a href="./index.html">Front Page</a>
-  </li>
-          <li>      <a href="./antnews.html">News</a>
-  </li>
-          <li>      <a href="./manual/index.html">Documentation</a>
-  </li>
-          <li>      <a href="./external.html">External Tools and Tasks</a>
-  </li>
-          <li>      <a href="./resources.html">Resources</a>
-  </li>
-          <li>      <a href="./faq.html">Ant FAQ</a>
-  </li>
-          <li>      <a href="./problems.html">Having Problems?</a>
-  </li>
-        </ul>
-      <p><strong>Download</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/binindex.html">Binaries</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/sourceindex.html">Source Code</a>
-  </li>
-        </ul>
-      <p><strong>Jakarta</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/news.html">News & Status</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/mission.html">Mission</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/guidelines.html">Guidelines Notes</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/faqs.html">FAQs</a>
-  </li>
-        </ul>
-      <p><strong>Get Involved</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/getinvolved.html">Overview</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/cvsindex.html">CVS Repositories</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/mail.html">Mailing Lists</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/library.html">Reference Library</a>
-  </li>
-          <li>      <a href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
-  </li>
-          <li>      <a href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=Ant&bug_severity=Enhancement">Enhancement Requests</a>
-  </li>
-        </ul>
-            </td>
-          <td align="left" valign="top">
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>Questions</strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                      <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>General</strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-        <ul>
-                    <li><a href="#what-is-ant">
-  What is Ant?
-  </a></li>
-                    <li><a href="#ant-name">
-  Why do you call it Ant?
-  </a></li>
-                    <li><a href="#history">
-  Tell us a little bit about Ant's history.
-  </a></li>
-                </ul>
-      </blockquote>
-    </td></tr>
-  </table>
-                <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>Installation</strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-        <ul>
-                    <li><a href="#no-gnu-tar">
-  I get checksum errors when I try to extract the
-      <code>tar.gz</code> distribution file. Why?
-  </a></li>
-                </ul>
-      </blockquote>
-    </td></tr>
-  </table>
-                <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>Using Ant</strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-        <ul>
-                    <li><a href="#always-recompiles">
-  Why does Ant always recompile all my Java files?
-  </a></li>
-                    <li><a href="#passing-cli-args">
-  How do I pass parameters from the command line to my
-        build file?
-  </a></li>
-                    <li><a href="#jikes-switches">
-  How can I use Jikes specific command line
-        switches?
-  </a></li>
-                    <li><a href="#shell-redirect-1">
-  How do I include a &lt; character in my command line arguments?
-  </a></li>
-                    <li><a href="#shell-redirect-2">
-  How do I redirect standard input or standard output
-        in the <code>&lt;exec&gt;</code> task?
-  </a></li>
-                </ul>
-      </blockquote>
-    </td></tr>
-  </table>
-                <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>Ant and IDEs/Editors</strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-        <ul>
-                    <li><a href="#integration">
-  Is Ant supported by my IDE/Editor?
-  </a></li>
-                    <li><a href="#emacs-mode">
-  Why doesn't (X)Emacs/vi/MacOS X's project builder
-      parse the error messages generated by Ant correctly?
-  </a></li>
-                </ul>
-      </blockquote>
-    </td></tr>
-  </table>
-                <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>Advanced issues</strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-        <ul>
-                    <li><a href="#dtd">
-  Is there a DTD that I can use to validate my build
-      files?
-  </a></li>
-                    <li><a href="#xml-entity-include">
-  How do I include an XML snippet in my build file?
-  </a></li>
-                    <li><a href="#mail-logger">
-  How do I send an email with the result of my build
-        process?
-  </a></li>
-                </ul>
-      </blockquote>
-    </td></tr>
-  </table>
-                <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>Known problems</strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-        <ul>
-                    <li><a href="#remove-cr">
-  &lt;chmod&gt; or &lt;exec&gt; don't work in Ant
-        1.3 on Unix
-  </a></li>
-                    <li><a href="#javadoc-cannot-execute">
-  JavaDoc failed: java.io.IOException: javadoc: cannot execute
-  </a></li>
-                </ul>
-      </blockquote>
-    </td></tr>
-  </table>
-            </blockquote>
-    </td></tr>
-  </table>
-
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>Answers</strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                      <a name="what-is-ant">
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>
-          What is Ant?
-        </strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                              <p> Ant is a Java based build tool. In theory it is kind of
-        like "make" without makes wrinkles and with the full
-        portability of pure Java code.</p>
-                        </blockquote>
-    </td></tr>
-  </table>
-  </a>
-        <a name="ant-name">
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>
-          Why do you call it Ant?
-        </strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                              <p>According to Ant's original author James Duncan
-        Davidson, the name is an acronym for "Another Neat
-        Tool".</p>
-                                        <p>Later explanations go along the lines of "Ants are
-        doing an extremely good job at building things" or
-        "Ants are very small and can carry a weight a dozen times
-        of their own" - describing what Ant is intended to
-        be.</p>
-                        </blockquote>
-    </td></tr>
-  </table>
-  </a>
-        <a name="history">
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>
-          Tell us a little bit about Ant's history.
-        </strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                              <p>Initially Ant was part of the Tomcat code base when it was
-        donated to the Apache Software Foundation - it has been
-        created by James Duncan Davidson, who also is the original
-        author of Tomcat. Ant was there to build Tomcat, nothing
-        else.</p>
-                                        <p>Soon thereafter several open source Java projects realized
-        that Ant could solve the problems they had with makefiles.
-        Starting with the projects hosted at Jakarta and the old Java
-        Apache project, Ant spread like a virus and now is the build
-        tool of choice for a lot of projects.</p>
-                                        <p>In January 2000 Ant was moved to a separate CVS module and
-        was promoted to a project of its own, independent of
-        Tomcat.</p>
-                                        <p>The first version of Ant that was exposed a lager audience
-        was the one that shipped with Tomcat's 3.1 release on 19 April
-        2000.  This version has later been referenced to as Ant
-        0.3.1.</p>
-                                        <p>The first official release of Ant as a stand alone product was
-        Ant 1.1 released on 19 July 2000.  The complete release
-        history:</p>
-                                          <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Ant Version
-        </font>
-  </td>
-                      <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Release Date
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          1.1
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          19 July 2000
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          1.2
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          24 October 2000
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          1.3
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          3 March 2001
-        </font>
-  </td>
-      </tr>
-        </table>
-                        </blockquote>
-    </td></tr>
-  </table>
-  </a>
-                        <a name="no-gnu-tar">
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>
-          I get checksum errors when I try to extract the
-      <code>tar.gz</code> distribution file. Why?
-        </strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                              <p>Ant's distribution contains file names that are longer
-        than 100 characters, which is not supported by the standard
-        tar file format. Several different implementations of tar use
-        different and incompatible ways to work around this
-        restriction.</p>
-                                        <p>Ant's &lt;tar&gt; task can create tar archives that use
-        the GNU tar extension, and this has been used when putting
-        together the distribution. If you are using a different
-        version of tar (for example, the one shipping with Solaris),
-        you cannot use it to extract the archive.</p>
-                                        <p>The solution is to either install GNU tar, which can be
-        found <a href="http://www.gnu.org/software/tar/tar.html">here</a> 
-        or use the zip archive instead (you can extract it using
-        <code>jar xf</code>).</p>
-                        </blockquote>
-    </td></tr>
-  </table>
-  </a>
-                        <a name="always-recompiles">
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>
-          Why does Ant always recompile all my Java files?
-        </strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                              <p>In order to find out which files should be compiled, Ant
-        compares the timestamps of the source files to those of the
-        resulting <code>.class</code> files.  Opening all source files
-        to find out which package they belong to would be very
-        inefficient - instead of this, Ant expects you to place your
-        source files in a directory hierarchy that mirrors your
-        package hierarchy and to point Ant to the root of this
-        directory tree with the <code>srcdir</code> attribute.</p>
-                                        <p>Say you have <code>&lt;javac srcdir="src"
-        destdir="dest" /&gt;</code>.  If Ant finds a file
-        <code>src/a/b/C.java</code> it expects it to be in package
-        <code>a.b</code> so that the resulting <code>.class</code>
-        file is going to be <code>dest/a/b/C.class</code>.</p>
-                                        <p>If your setup is different, Ant's heuristic won't work and
-        it will recompile classes that are up to date.  Ant is not the
-        only tool, that expects a source tree layout like this.</p>
-                        </blockquote>
-    </td></tr>
-  </table>
-  </a>
-        <a name="passing-cli-args">
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>
-          How do I pass parameters from the command line to my
-        build file?
-        </strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                              <p>Use properties: <code>ant
-        -D&lt;name&gt;=&lt;value&gt;</code> lets you define values for
-        properties.  These can then be used within your build file as
-        any normal property: <code>${&lt;name&gt;}</code> will put in
-        <code>&lt;value&gt;</code>.</p>
-                        </blockquote>
-    </td></tr>
-  </table>
-  </a>
-        <a name="jikes-switches">
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>
-          How can I use Jikes specific command line
-        switches?
-        </strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                              <p>A couple of switches are supported via magic
-          properties:</p>
-                                          <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          switch
-        </font>
-  </td>
-                      <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          property
-        </font>
-  </td>
-                      <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          default
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          +E
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          build.compiler.emacs
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          false == not set
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          -nowarn
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          build.compiler.warnings
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          true == not set
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          +P
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          build.compiler.pedantic
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          false == not set
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          +F
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          build.compiler.fulldepend
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          false == not set
-        </font>
-  </td>
-      </tr>
-        </table>
-                        </blockquote>
-    </td></tr>
-  </table>
-  </a>
-        <a name="shell-redirect-1">
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>
-          How do I include a &lt; character in my command line arguments?
-        </strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                              <p>The short answer is "Use <code>&amp;lt;</code>".</p>
-                                        <p>The long answer is, that this probably won't do what you
-        want anyway, see <a href="#shell-redirect-2">the next
-        section</a>.</p>
-                        </blockquote>
-    </td></tr>
-  </table>
-  </a>
-        <a name="shell-redirect-2">
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>
-          How do I redirect standard input or standard output
-        in the <code>&lt;exec&gt;</code> task?
-        </strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                              <p>Say you want to redirect the standard input stream of the
-        <code>cat</code> command to read from a file, something
-        like</p>
-                                          <div align="left">
-    <table cellspacing="4" cellpadding="0" border="0">
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#ffffff"><pre>
-shell-prompt&gt; cat &lt; foo
-</pre></td>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-    </table>
-  </div>
-                                        <p>and try to translate it into</p>
-                                          <div align="left">
-    <table cellspacing="4" cellpadding="0" border="0">
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#ffffff"><pre>
-&lt;exec executable=&quot;cat&quot;&gt;
-  &lt;arg value=&quot;&amp;lt;&quot; /&gt;
-  &lt;arg value=&quot;foo&quot; /&gt;
-&lt;/exec&gt;
-</pre></td>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-    </table>
-  </div>
-                                        <p>This will not do what you expect.  The input-redirection is
-        performed by your shell, not the command itself, so this
-        should read:</p>
-                                          <div align="left">
-    <table cellspacing="4" cellpadding="0" border="0">
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#ffffff"><pre>
-&lt;exec executable=&quot;/bin/sh&quot;&gt;
-  &lt;arg value=&quot;-c&quot; /&gt;
-  &lt;arg value=&quot;cat &amp;lt; foo&quot; /&gt;
-&lt;/exec&gt;
-</pre></td>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-    </table>
-  </div>
-                                        <p>Note, that you must use the <code>value</code> attribute of
-        <code>&lt;arg&gt;</code> in the last element.</p>
-                        </blockquote>
-    </td></tr>
-  </table>
-  </a>
-                        <a name="integration">
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>
-          Is Ant supported by my IDE/Editor?
-        </strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                              <p>See the <a href="external.html#IDE%47Editor+Integration">section 
-        on IDE integration</a> on our external tools page.</p>
-                        </blockquote>
-    </td></tr>
-  </table>
-  </a>
-        <a name="emacs-mode">
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>
-          Why doesn't (X)Emacs/vi/MacOS X's project builder
-      parse the error messages generated by Ant correctly?
-        </strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                              <p>Ant adds a "banner" with the name of the current
-        task in front of all messages - and there are no built-in
-        regular expressions in your Editor that would account for
-        this.</p>
-                                        <p>You can disable this banner by invoking Ant with the
-        <code>-emacs</code> switch. Alternatively you can add the
-        following snippet to your <code>.emacs</code> to make Emacs
-        understand Ant's output.</p>
-                                          <div align="left">
-    <table cellspacing="4" cellpadding="0" border="0">
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#ffffff"><pre>
-(require 'compile)
-(setq compilation-error-regexp-alist
-  (append (list 
-     ;; works for jikes
-     '(&quot;^\\s-*\\[[^]]*\\]\\s-*\\(.+\\):\\([0-9]+\\):\\([0-9]+\\):[0-9]+:[0-9]+:&quot; 1 2 3)
-     ;; works for javac 
-     '(&quot;^\\s-*\\[[^]]*\\]\\s-*\\(.+\\):\\([0-9]+\\):&quot; 1 2))
-  compilation-error-regexp-alist))
-</pre></td>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-    </table>
-  </div>
-                                        <p>Yet another alternative that preserves most of Ant's
-        formatting is to pipe Ant's output through the following Perl
-        script by Dirk-Willem van Gulik:</p>
-                                          <div align="left">
-    <table cellspacing="4" cellpadding="0" border="0">
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#ffffff"><pre>
-#!/usr/bin/perl
-#
-# May 2001 dirkx@apache.org - remove any
-# [foo] lines from the output; keeping
-# spacing more or less there.
-#
-$|=1;
-while(&lt;STDIN&gt;) {
-	if (s/^(\s+)\[(\w+)\]//) {
-		if ($2 ne $last) {
-			print &quot;$1\[$2\]&quot;;
-			$s = ' ' x length($2);
-		} else {
-			print &quot;$1 $s &quot;;
-		};
-		$last = $2;
-	};
-	print;
-};
-</pre></td>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-    </table>
-  </div>
-                        </blockquote>
-    </td></tr>
-  </table>
-  </a>
-                        <a name="dtd">
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>
-          Is there a DTD that I can use to validate my build
-      files?
-        </strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                              <p>An incomplete DTD can be created by the
-          <code>&lt;antstructure&gt;</code> task - but this one
-          has a few problems:</p>
-                                        <ul>
-            <li>It doesn't know about required attributes.  Only
-            manual tweaking of this file can help here.</li>
-          
-            <li>It is not complete - if you add new tasks via
-            <code>&lt;taskdef&gt;</code> it won't know about it.  See
-            <a href="http://www.sdv.fr/pages/casa/html/ant-dtd.en.html">this
-            page</a> by Michel Casabianca for a solution to this
-            problem.  Note that the DTD you can download at this page
-            is based on Ant 0.3.1.</li>
-
-            <li>It may even be an invalid DTD.  As Ant allows tasks
-            writers to define arbitrary elements, name collisions will
-            happen quite frequently - if your version of Ant contains
-            the optional <code>&lt;test&gt;</code> and
-            <code>&lt;junit&gt;</code> tasks, there are two XML
-            elements named test (the task and the nested child element
-            of <code>&lt;junit&gt;</code>) with different attribute
-            lists.  This problem cannot be solved, DTDs don't give a
-            syntax rich enough to support this.</li>
-          </ul>
-                        </blockquote>
-    </td></tr>
-  </table>
-  </a>
-        <a name="xml-entity-include">
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>
-          How do I include an XML snippet in my build file?
-        </strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                              <p>You can use XML's way of including external files and let
-        the parser do the job for Ant:</p>
-                                          <div align="left">
-    <table cellspacing="4" cellpadding="0" border="0">
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#ffffff"><pre>
-&lt;?xml version=&quot;1.0&quot;?&gt;
-
-&lt;!DOCTYPE project [
-    &lt;!ENTITY common SYSTEM &quot;file:./common.xml&quot;&gt;
-]&gt;
-
-&lt;project name=&quot;test&quot; default=&quot;test&quot; basedir=&quot;.&quot;&gt;
-
-  &lt;target name=&quot;setup&quot;&gt;
-    ...
-  &lt;/target&gt;
-
-  &amp;common;
-
-  ...
-
-&lt;/project&gt;
-</pre></td>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-    </table>
-  </div>
-                                        <p>will literally include the contents of <code>common.xml</code> where
-        you've placed the <code>&amp;common;</code> entity.</p>
-                                        <p>In combination with a DTD, this would look like this:</p>
-                                          <div align="left">
-    <table cellspacing="4" cellpadding="0" border="0">
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#ffffff"><pre>
-&lt;!DOCTYPE project PUBLIC &quot;-//ANT//DTD project//EN&quot; &quot;file:./ant.dtd&quot; [
-   &lt;!ENTITY include SYSTEM &quot;file:./header.xml&quot;&gt;
-]&gt;
-</pre></td>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-    </table>
-  </div>
-                        </blockquote>
-    </td></tr>
-  </table>
-  </a>
-        <a name="mail-logger">
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>
-          How do I send an email with the result of my build
-        process?
-        </strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                              <p>You can use a custom BuildListener, that sends out an email
-        in the buildFinished() method.  Will Glozer
-        &lt;will.glozer@jda.com&gt; has written such a listener based
-        on <a href="http://java.sun.com/products/javamail/">JavaMail</a>, 
-        the source is</p>
-                                          <div align="left">
-    <table cellspacing="4" cellpadding="0" border="0">
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#ffffff"><pre>
-import java.io.*;
-import java.util.*;
-import javax.mail.*;
-import javax.mail.internet.*;
-import org.apache.tools.ant.*;
-
-/**
- * A simple listener that waits for a build to finish and sends an email
- * of the results.  The settings are stored in &quot;monitor.properties&quot; and
- * are fairly self explanatory.
- *
- * @author      Will Glozer
- * @version     1.05a 09/06/2000
- */
-public class BuildMonitor implements BuildListener {
-    protected Properties props;
-
-    /**
-     * Create a new BuildMonitor.
-     */
-    public BuildMonitor() throws Exception {
-        props = new Properties();
-        InputStream is = getClass().getResourceAsStream(&quot;monitor.properties&quot;);
-        props.load(is);
-        is.close();
-    }
-
-    public void buildStarted(BuildEvent e) {
-    }
-
-    /**
-     * Determine the status of the build and the actions to follow, now that
-     * the build has completed.
-     *
-     * @param       e       Event describing the build tatus.
-     */
-    public void buildFinished(BuildEvent e) {
-        Throwable th = e.getException();
-        String status = (th != null) ? &quot;failed&quot; : &quot;succeeded&quot;;
-        
-        try {
-            String key = &quot;build.&quot; + status;
-            if (props.getProperty(key + &quot;.notify&quot;).equalsIgnoreCase(&quot;false&quot;)) {
-                    return;
-            }
-            
-            Session session = Session.getDefaultInstance(props, null);
-
-            MimeMessage message = new MimeMessage(session);
-            message.addRecipients(Message.RecipientType.TO, parseAddresses(
-                props.getProperty(key + &quot;.email.to&quot;)));
-            message.setSubject(props.getProperty(key + &quot;.email.subject&quot;));
-
-            BufferedReader br = new BufferedReader(new FileReader(
-                props.getProperty(&quot;build.log&quot;)));
-            StringWriter sw = new StringWriter();
-            
-            String line = br.readLine();
-            while (line != null) {
-                sw.write(line);
-                sw.write(&quot;\n&quot;);
-                line = br.readLine();
-            }
-            br.close();
-            
-            message.setText(sw.toString(), &quot;UTF-8&quot;);
-            sw.close();
-            
-            Transport transport = session.getTransport();
-            transport.connect();
-            transport.send(message);
-            transport.close();
-        } catch (Exception ex) {
-            System.out.println(&quot;BuildMonitor failed to send email!&quot;);
-            ex.printStackTrace();
-        }
-    }
-
-    /**
-     * Parse a comma separated list of internet email addresses.
-     *
-     * @param       s       The list of addresses.
-     * @return      Array of Addresses.
-     */
-    protected Address[] parseAddresses(String s) throws Exception {
-        StringTokenizer st = new StringTokenizer(s, &quot;,&quot;);
-        Address[] addrs = new Address[st.countTokens()];
-
-        for (int i = 0; i &lt; addrs.length; i++) {
-            addrs[i] = new InternetAddress(st.nextToken());
-        }
-        return addrs;
-    }
-
-    public void messageLogged(BuildEvent e) {
-    }
-
-    public void targetStarted(BuildEvent e) {
-    }
-
-    public void targetFinished(BuildEvent e) {
-    }
-
-    public void taskStarted(BuildEvent e) {        
-    }
-
-    public void taskFinished(BuildEvent e) {
-    }
-}
-</pre></td>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-    </table>
-  </div>
-                                        <p>With a <code>monitor.properties</code> like this</p>
-                                          <div align="left">
-    <table cellspacing="4" cellpadding="0" border="0">
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#ffffff"><pre>
-# configuration for build monitor
-
-mail.transport.protocol=smtp
-mail.smtp.host=&lt;host&gt;
-mail.from=Will Glozer &lt;will.glozer@jda.com&gt;
-
-build.log=build.log
-
-build.failed.notify=true
-build.failed.email.to=will.glozer@jda.com
-build.failed.email.subject=Nightly build failed!
-
-build.succeeded.notify=true
-build.succeeded.email.to=will.glozer@jda.com
-build.succeeded.email.subject=Nightly build succeeded!
-</pre></td>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-    </table>
-  </div>
-                                        <p><code>monitor.properties</code> should be placed right next
-        to your compiled <code>BuildMonitor.class</code>.  To use it,
-        invoke Ant like</p>
-                                          <div align="left">
-    <table cellspacing="4" cellpadding="0" border="0">
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#ffffff"><pre>
-ant -listener BuildMonitor
-</pre></td>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-    </table>
-  </div>
-                                        <p>Make sure that <code>mail.jar</code> from JavaMail and
-        <code>activation.jar</code> from the 
-        <a href="http://java.sun.com/products/javabeans/glasgow/jaf.html">Java
-        Beans Activation Framework</a> in your <code>CLASSPATH</code>.</p>
-                        </blockquote>
-    </td></tr>
-  </table>
-  </a>
-                        <a name="remove-cr">
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>
-          &lt;chmod&gt; or &lt;exec&gt; don't work in Ant
-        1.3 on Unix
-        </strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                              <p>The <code>antRun</code> script in <code>ANT_HOME/bin</code>
-        has DOS instead of Unix line endings, you must remove the
-        carriage return characters from this file.  This can be done by
-        using Ant's &lt;fixcrlf&gt; task or something like:</p>
-                                          <div align="left">
-    <table cellspacing="4" cellpadding="0" border="0">
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#ffffff"><pre>
-tr -d '\r' &lt; $ANT_HOME/bin/antRun &gt; /tmp/foo
-mv /tmp/foo $ANT_HOME/bin/antRun
-</pre></td>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-    </table>
-  </div>
-                        </blockquote>
-    </td></tr>
-  </table>
-  </a>
-        <a name="javadoc-cannot-execute">
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <strong>
-          JavaDoc failed: java.io.IOException: javadoc: cannot execute
-        </strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                              <p>There is a bug in the Solaris reference implementation of
-        the JDK, see <a href="http://developer.java.sun.com/developer/bugParade/bugs/4230399.html">http://developer.java.sun.com/developer/bugParade/bugs/4230399.html</a>.
-        This also appears to be true under Linux, moving the JDK to
-        the front of the PATH fixes the problem.</p>
-                        </blockquote>
-    </td></tr>
-  </table>
-  </a>
-              </blockquote>
-    </td></tr>
-  </table>
-            </td>
-        </tr>
-
-        <!-- FOOTER -->
-        <tr><td colspan="2">
-          <hr noshade="" size="1"/>
-        </td></tr>
-        <tr><td colspan="2">
-          <div align="center"><font color="#525D76" size="-1"><em>
-          Copyright &#169; 1999-2001, Apache Software Foundation
-          </em></font></div>
-        </td></tr>
-      </table>
-    </body>
-  </html>
-<!-- end the processing -->
-
-
-
-
-
-
diff --git a/docs/images/ant-logo2.gif b/docs/images/ant-logo2.gif
deleted file mode 100644
index b356391..0000000
--- a/docs/images/ant-logo2.gif
+++ /dev/null
Binary files differ
diff --git a/docs/images/ant2_logo.gif b/docs/images/ant2_logo.gif
deleted file mode 100644
index 1ab83bd..0000000
--- a/docs/images/ant2_logo.gif
+++ /dev/null
Binary files differ
diff --git a/docs/images/antLogo1.png b/docs/images/antLogo1.png
deleted file mode 100644
index 73af91e..0000000
--- a/docs/images/antLogo1.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/antLogo2.png b/docs/images/antLogo2.png
deleted file mode 100644
index 724a9fd..0000000
--- a/docs/images/antLogo2.png
+++ /dev/null
Binary files differ
diff --git a/docs/images/ant_logo.gif b/docs/images/ant_logo.gif
deleted file mode 100644
index 88fa7f1..0000000
--- a/docs/images/ant_logo.gif
+++ /dev/null
Binary files differ
diff --git a/docs/images/becker1.gif b/docs/images/becker1.gif
deleted file mode 100644
index 121488c..0000000
--- a/docs/images/becker1.gif
+++ /dev/null
Binary files differ
diff --git a/docs/images/becker2.gif b/docs/images/becker2.gif
deleted file mode 100644
index e66f83b..0000000
--- a/docs/images/becker2.gif
+++ /dev/null
Binary files differ
diff --git a/docs/images/becker3.gif b/docs/images/becker3.gif
deleted file mode 100644
index ee5720d..0000000
--- a/docs/images/becker3.gif
+++ /dev/null
Binary files differ
diff --git a/docs/images/blairhughes_ant.jpg b/docs/images/blairhughes_ant.jpg
deleted file mode 100644
index fe8d491..0000000
--- a/docs/images/blairhughes_ant.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/blairhughes_ant2.jpg b/docs/images/blairhughes_ant2.jpg
deleted file mode 100644
index 6a8aa76..0000000
--- a/docs/images/blairhughes_ant2.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/blairhughes_ant3.jpg b/docs/images/blairhughes_ant3.jpg
deleted file mode 100644
index 30396c0..0000000
--- a/docs/images/blairhughes_ant3.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/blairhughes_ant4.jpg b/docs/images/blairhughes_ant4.jpg
deleted file mode 100644
index f25d029..0000000
--- a/docs/images/blairhughes_ant4.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/blairhughes_ant5.jpg b/docs/images/blairhughes_ant5.jpg
deleted file mode 100644
index 2a3f3e3..0000000
--- a/docs/images/blairhughes_ant5.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/blairhughes_ant6.jpg b/docs/images/blairhughes_ant6.jpg
deleted file mode 100644
index e3449f1..0000000
--- a/docs/images/blairhughes_ant6.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/blairhughes_germ1.jpg b/docs/images/blairhughes_germ1.jpg
deleted file mode 100644
index 2ebaffe..0000000
--- a/docs/images/blairhughes_germ1.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/blairhughes_germ2.jpg b/docs/images/blairhughes_germ2.jpg
deleted file mode 100644
index 99c5d13..0000000
--- a/docs/images/blairhughes_germ2.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/blairhughes_germ3.jpg b/docs/images/blairhughes_germ3.jpg
deleted file mode 100644
index 63f2293..0000000
--- a/docs/images/blairhughes_germ3.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/blairhughes_germ4.jpg b/docs/images/blairhughes_germ4.jpg
deleted file mode 100644
index d66cfe7..0000000
--- a/docs/images/blairhughes_germ4.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/blairhughes_germ5.jpg b/docs/images/blairhughes_germ5.jpg
deleted file mode 100644
index 2d41af0..0000000
--- a/docs/images/blairhughes_germ5.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/blairhughes_germ6.jpg b/docs/images/blairhughes_germ6.jpg
deleted file mode 100644
index 9b62a91..0000000
--- a/docs/images/blairhughes_germ6.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/blairhughes_keis1.jpg b/docs/images/blairhughes_keis1.jpg
deleted file mode 100644
index 8905b36..0000000
--- a/docs/images/blairhughes_keis1.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/blairhughes_keis2.jpg b/docs/images/blairhughes_keis2.jpg
deleted file mode 100644
index 8e1986d..0000000
--- a/docs/images/blairhughes_keis2.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/blairhughes_keis3.jpg b/docs/images/blairhughes_keis3.jpg
deleted file mode 100644
index 802eb9e..0000000
--- a/docs/images/blairhughes_keis3.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/blairhughes_keis4.jpg b/docs/images/blairhughes_keis4.jpg
deleted file mode 100644
index 773bced..0000000
--- a/docs/images/blairhughes_keis4.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/blairhughes_keis5.jpg b/docs/images/blairhughes_keis5.jpg
deleted file mode 100644
index 80054e2..0000000
--- a/docs/images/blairhughes_keis5.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/cheesman.jpg b/docs/images/cheesman.jpg
deleted file mode 100644
index 8cf5eb9..0000000
--- a/docs/images/cheesman.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/coleman.gif b/docs/images/coleman.gif
deleted file mode 100644
index 9289df2..0000000
--- a/docs/images/coleman.gif
+++ /dev/null
Binary files differ
diff --git a/docs/images/duggins.gif b/docs/images/duggins.gif
deleted file mode 100644
index bb028cb..0000000
--- a/docs/images/duggins.gif
+++ /dev/null
Binary files differ
diff --git a/docs/images/duggins2.gif b/docs/images/duggins2.gif
deleted file mode 100644
index 0ef1458..0000000
--- a/docs/images/duggins2.gif
+++ /dev/null
Binary files differ
diff --git a/docs/images/hughes1.gif b/docs/images/hughes1.gif
deleted file mode 100644
index fda0fdd..0000000
--- a/docs/images/hughes1.gif
+++ /dev/null
Binary files differ
diff --git a/docs/images/hughes2.gif b/docs/images/hughes2.gif
deleted file mode 100644
index fe8b70b..0000000
--- a/docs/images/hughes2.gif
+++ /dev/null
Binary files differ
diff --git a/docs/images/kolesnikova.gif b/docs/images/kolesnikova.gif
deleted file mode 100644
index ce1c015..0000000
--- a/docs/images/kolesnikova.gif
+++ /dev/null
Binary files differ
diff --git a/docs/images/lecho.jpg b/docs/images/lecho.jpg
deleted file mode 100644
index de9ab79..0000000
--- a/docs/images/lecho.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/petroff.jpg b/docs/images/petroff.jpg
deleted file mode 100644
index a90e631..0000000
--- a/docs/images/petroff.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/ripley.jpg b/docs/images/ripley.jpg
deleted file mode 100644
index b6e21e5..0000000
--- a/docs/images/ripley.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/images/schloemer.gif b/docs/images/schloemer.gif
deleted file mode 100644
index e38b8ff..0000000
--- a/docs/images/schloemer.gif
+++ /dev/null
Binary files differ
diff --git a/docs/images/schloemer2.gif b/docs/images/schloemer2.gif
deleted file mode 100644
index 8696a34..0000000
--- a/docs/images/schloemer2.gif
+++ /dev/null
Binary files differ
diff --git a/docs/images/trogdon.gif b/docs/images/trogdon.gif
deleted file mode 100644
index 1a683b8..0000000
--- a/docs/images/trogdon.gif
+++ /dev/null
Binary files differ
diff --git a/docs/images/wilhelms3.gif b/docs/images/wilhelms3.gif
deleted file mode 100644
index e00f658..0000000
--- a/docs/images/wilhelms3.gif
+++ /dev/null
Binary files differ
diff --git a/docs/index.html b/docs/index.html
deleted file mode 100644
index 8fb0d3e..0000000
--- a/docs/index.html
+++ /dev/null
@@ -1,260 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
-<!-- Content Stylesheet for Site -->
-
-        
-<!-- start the processing -->
-    <html>
-    <head>
-      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-  
-                      <meta name="author" value="Conor MacNeill">
-  <meta name="email" value="conor@cortexebusiness.com.au">
-                <meta name="author" value="Stefan Bodewig">
-  <meta name="email" value="stefan.bodewig@epost.de">
-        
-      <title>The Jakarta Site - Ant</title>
-    </head>
-  
-    <body bgcolor="#ffffff" text="#000000" link="#525D76">    
-      <table border="0" width="100%" cellspacing="0">
-        <!-- TOP IMAGE -->
-        <tr>
-                <td colspan="2">
-    <a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" align="left" border="0"/></a>
-    </td>
-          </tr>
-      </table>
-      <table border="0" width="100%" cellspacing="4">
-        <tr><td colspan="2">
-          <hr noshade="" size="1"/>
-        </td></tr>
-        
-        <tr>
-          <!-- LEFT SIDE NAVIGATION -->
-          <td valign="top" nowrap="true">
-                <p><strong>Ant</strong></p>
-    <ul>
-          <li>      <a href="./index.html">Front Page</a>
-  </li>
-          <li>      <a href="./antnews.html">News</a>
-  </li>
-          <li>      <a href="./manual/index.html">Documentation</a>
-  </li>
-          <li>      <a href="./external.html">External Tools and Tasks</a>
-  </li>
-          <li>      <a href="./resources.html">Resources</a>
-  </li>
-          <li>      <a href="./faq.html">Ant FAQ</a>
-  </li>
-          <li>      <a href="./problems.html">Having Problems?</a>
-  </li>
-        </ul>
-      <p><strong>Download</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/binindex.html">Binaries</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/sourceindex.html">Source Code</a>
-  </li>
-        </ul>
-      <p><strong>Jakarta</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/news.html">News & Status</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/mission.html">Mission</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/guidelines.html">Guidelines Notes</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/faqs.html">FAQs</a>
-  </li>
-        </ul>
-      <p><strong>Get Involved</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/getinvolved.html">Overview</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/cvsindex.html">CVS Repositories</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/mail.html">Mailing Lists</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/library.html">Reference Library</a>
-  </li>
-          <li>      <a href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
-  </li>
-          <li>      <a href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=Ant&bug_severity=Enhancement">Enhancement Requests</a>
-  </li>
-        </ul>
-            </td>
-          <td align="left" valign="top">
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Ant 1.4 Beta"><strong>Ant 1.4 Beta</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <h3>Ant 1.4 Beta Available !</h3>
-                                <p>The beta version of Ant 1.4 is now available for 
-     <a href="http://jakarta.apache.org/builds/jakarta-ant/release/v1.4Beta1/">
-     download</a>. If you have any feedback on the beta feel free to join the 
-     discussion on the ant-dev and ant-user mailing lists.
-     </p>
-                    </blockquote>
-    </td></tr>
-  </table>
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Ant"><strong>Ant</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>
-Ant is a Java based build tool. In theory it is kind of like make without
-make's wrinkles.
-</p>
-                                <p>
-Why another build tool when there is already make, gnumake, nmake, jam, and
-others? Because all of those tools have limitations that Ant's original author
-couldn't live with when developing software across multiple platforms. Make-like
-tools are inherently shell based. They evaluate a set of dependencies and then
-execute commands not unlike what you would issue on a shell. This means that you
-can easily extend these tools by using or writing any program for the OS that
-you are working on. However, this also means that you limit yourself to the OS,
-or at least the OS type such as Unix, that you are working on.
-</p>
-                                <p>
-Makefiles are inherently evil as well. Anybody who has worked on them for any
-time has run into the dreaded tab problem. "Is my command not executing
-because I have a space in front of my tab!!!" said the original author of
-Ant way too many times. Tools like Jam took care of this to a great degree, but
-still use yet another format to use and remember.
-</p>
-                                <p>
-Ant is different. Instead of a model where it is extended with shell based
-commands, it is extended using Java classes. Instead of writing shell commands,
-the configuration files are XML based calling out a target tree where various
-tasks get executed. Each task is run by an object which implements a particular
-Task interface.
-</p>
-                                <p>
-Granted, this removes some of the expressive power that is inherent by being
-able to construct a shell command such as `find . -name foo -exec rm {}` but it
-gives you the ability to be cross platform. To work anywhere and everywhere. And
-hey, if you really need to execute a shell command, Ant has an exec rule that
-allows different commands to be executed based on the OS that it is executing
-on.
-</p>
-                    </blockquote>
-    </td></tr>
-  </table>
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Documentation"><strong>Documentation</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>
-You can view the documentation for the most recent release 
-<a href="manual/index.html">online</a>
-</p>
-                                <p>
-Comprehensive documentation is included in the source and binary distribtions. 
-</p>
-                    </blockquote>
-    </td></tr>
-  </table>
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Latest Release"><strong>Latest Release</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>
-    You can download the latest release:
-    </p>
-                                <ul>
-        <li><a href="http://jakarta.apache.org/builds/jakarta-ant/release/v1.3/bin/">
-                Download the binary release</a></li>
-        <li><a href="http://jakarta.apache.org/builds/jakarta-ant/release/v1.3/src/">
-                Download the source release</a></li>
-        <li><a href="http://jakarta.apache.org/builds/jakarta-ant/release/v1.3/rpms/">
-                Download source and binary RPMs</a></li>
-    </ul>
-                    </blockquote>
-    </td></tr>
-  </table>
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Nightly Builds"><strong>Nightly Builds</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>
-    If you wish to use the latest Ant features, you can try downloading a nightly 
-    build from <a href="http://jakarta.apache.org/builds/jakarta-ant/nightly/">here</a>
-    </p>
-                    </blockquote>
-    </td></tr>
-  </table>
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Towards Ant2"><strong>Towards Ant2</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>
-    We are currently hashing out design details for Ant2. Please
-    read the latest <a href="antnews.html">Ant news</a> for more details.
-    </p>
-                    </blockquote>
-    </td></tr>
-  </table>
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Get Involved"><strong>Get Involved</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <ul>
-<li><a href="http://jakarta.apache.org/getinvolved/getinvolvedindex.html">Get Involved</a></li>
-<li><a href="http://jakarta.apache.org/getinvolved/mail.html">Join Mailing Lists</a></li>
-<li><a href="http://marc.theaimsgroup.com/?l=ant-dev&amp;r=1&amp;w=2">Search the Dev Mailing List</a>
-</li>
-<li><a href="http://marc.theaimsgroup.com/?l=ant-user&amp;r=1&amp;w=2">Search the User Mailing List</a>
-</li>
-</ul>
-                    </blockquote>
-    </td></tr>
-  </table>
-              </td>
-        </tr>
-
-        <!-- FOOTER -->
-        <tr><td colspan="2">
-          <hr noshade="" size="1"/>
-        </td></tr>
-        <tr><td colspan="2">
-          <div align="center"><font color="#525D76" size="-1"><em>
-          Copyright &#169; 1999-2001, Apache Software Foundation
-          </em></font></div>
-        </td></tr>
-      </table>
-    </body>
-  </html>
-<!-- end the processing -->
-
-
-
-
diff --git a/docs/logos.html b/docs/logos.html
deleted file mode 100644
index f89e367..0000000
--- a/docs/logos.html
+++ /dev/null
@@ -1,943 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
-<!-- Content Stylesheet for Site -->
-
-        
-<!-- start the processing -->
-    <html>
-    <head>
-      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-  
-                      <meta name="author" value="Stefan Bodewig">
-  <meta name="email" value="stefan.bodewig@epost.de">
-        
-      <title>The Jakarta Site - Ant Logo Proposals</title>
-    </head>
-  
-    <body bgcolor="#ffffff" text="#000000" link="#525D76">    
-      <table border="0" width="100%" cellspacing="0">
-        <!-- TOP IMAGE -->
-        <tr>
-                <td colspan="2">
-    <a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" align="left" border="0"/></a>
-    </td>
-          </tr>
-      </table>
-      <table border="0" width="100%" cellspacing="4">
-        <tr><td colspan="2">
-          <hr noshade="" size="1"/>
-        </td></tr>
-        
-        <tr>
-          <!-- LEFT SIDE NAVIGATION -->
-          <td valign="top" nowrap="true">
-                <p><strong>Ant</strong></p>
-    <ul>
-          <li>      <a href="./index.html">Front Page</a>
-  </li>
-          <li>      <a href="./antnews.html">News</a>
-  </li>
-          <li>      <a href="./manual/index.html">Documentation</a>
-  </li>
-          <li>      <a href="./external.html">External Tools and Tasks</a>
-  </li>
-          <li>      <a href="./resources.html">Resources</a>
-  </li>
-          <li>      <a href="./faq.html">Ant FAQ</a>
-  </li>
-          <li>      <a href="./problems.html">Having Problems?</a>
-  </li>
-        </ul>
-      <p><strong>Download</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/binindex.html">Binaries</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/sourceindex.html">Source Code</a>
-  </li>
-        </ul>
-      <p><strong>Jakarta</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/news.html">News & Status</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/mission.html">Mission</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/guidelines.html">Guidelines Notes</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/faqs.html">FAQs</a>
-  </li>
-        </ul>
-      <p><strong>Get Involved</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/getinvolved.html">Overview</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/cvsindex.html">CVS Repositories</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/mail.html">Mailing Lists</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/library.html">Reference Library</a>
-  </li>
-          <li>      <a href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
-  </li>
-          <li>      <a href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=Ant&bug_severity=Enhancement">Enhancement Requests</a>
-  </li>
-        </ul>
-            </td>
-          <td align="left" valign="top">
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Ant needs a Logo"><strong>Ant needs a Logo</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>One of the requirements for Ant2 is, that Ant should have a
-    logo.  You can find the logos that have been proposed to the Ant
-    mailing lists on this page.</p>
-                                <p>Tell us what you think of them (yes, <em>Powered by</em> should
-    better be <em>Built by</em>).</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Entry
-        </font>
-  </td>
-                      <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Author
-        </font>
-  </td>
-                      <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          &nbsp;
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          1
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Bill J. Fellows (Bill.J.Fellows at mail.sprint.com)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/antLogo1.png" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          2
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Bill J. Fellows (Bill.J.Fellows at mail.sprint.com)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/antLogo2.png" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          3
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Christoph Wilhelms (Christoph.Wilhelms at t-online.de)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/ant_logo.gif" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          4
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Christoph Wilhelms (Christoph.Wilhelms at t-online.de)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/ant2_logo.gif" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          5
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Warner Onstine (warner at warneronstine.com)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/ant-logo2.gif" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          6
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Chris Coleman (chris.coleman at csfb.com)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/coleman.gif" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          7
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Stefan Lecho (Stefan.Lecho at iconmedialab.com)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/lecho.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          8
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          David Trogdon (DTrogdon at orgtek.com)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/trogdon.gif" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          9
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Mirko Klemm (Mirko.Klemm at t-online.de)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="http://www.mutantenzoo.de/antlogo-400.png" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          10
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Ryan P Ripley (ryan.ripley at bms.com)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/ripley.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          11
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Christoph Wilhelms (Christoph.Wilhelms at t-online.de)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/wilhelms3.gif" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          12
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Shane Petroff (shane at hayward.ca)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/petroff.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          13
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Jim Cheesman (jchees at msl.es)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/cheesman.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          14
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Kevin Duggins (Kevin.Duggins at definityhealth.com)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/duggins.gif" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          15
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Kevin Duggins (Kevin.Duggins at definityhealth.com)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/duggins2.gif" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          16
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Justin Ransom (Justin.Ransom at rubus.com)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/hughes1.gif" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          17
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Justin Ransom (Justin.Ransom at rubus.com)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/hughes2.gif" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          18
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Martin Schlömer (martin.schloemer at phase26.de)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/schloemer.gif" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          19
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Martin Schlömer (martin.schloemer at phase26.de)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/schloemer2.gif" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          20
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Design Services Team at Hewlett Packard (blair_hughes at hp.com&gt;
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/blairhughes_ant.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          21
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Design Services Team at Hewlett Packard (blair_hughes at hp.com&gt;
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/blairhughes_ant2.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          22
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Design Services Team at Hewlett Packard (blair_hughes at hp.com&gt;
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/blairhughes_ant3.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          23
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Design Services Team at Hewlett Packard (blair_hughes at hp.com&gt;
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/blairhughes_ant4.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          24
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Design Services Team at Hewlett Packard (blair_hughes at hp.com&gt;
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/blairhughes_ant5.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          25
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Design Services Team at Hewlett Packard (blair_hughes at hp.com&gt;
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/blairhughes_ant6.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          26
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Design Services Team at Hewlett Packard (blair_hughes at hp.com&gt;
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/blairhughes_germ1.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          27
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Design Services Team at Hewlett Packard (blair_hughes at hp.com&gt;
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/blairhughes_germ2.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          28
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Design Services Team at Hewlett Packard (blair_hughes at hp.com&gt;
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/blairhughes_germ3.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          29
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Design Services Team at Hewlett Packard (blair_hughes at hp.com&gt;
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/blairhughes_germ4.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          30
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Design Services Team at Hewlett Packard (blair_hughes at hp.com&gt;
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/blairhughes_germ5.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          31
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Design Services Team at Hewlett Packard (blair_hughes at hp.com&gt;
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/blairhughes_germ6.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          32
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Design Services Team at Hewlett Packard (blair_hughes at hp.com&gt;
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/blairhughes_keis1.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          33
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Design Services Team at Hewlett Packard (blair_hughes at hp.com&gt;
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/blairhughes_keis2.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          34
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Design Services Team at Hewlett Packard (blair_hughes at hp.com&gt;
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/blairhughes_keis3.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          35
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Design Services Team at Hewlett Packard (blair_hughes at hp.com&gt;
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/blairhughes_keis4.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          36
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Design Services Team at Hewlett Packard (blair_hughes at hp.com&gt;
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/blairhughes_keis5.jpg" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          37
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Alicia Kolesnikova
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/kolesnikova.gif" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          38
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Matthias Becker (matthias.becker at media4content.de)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/becker1.gif" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          39
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Matthias Becker (matthias.becker at media4content.de)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/becker2.gif" />
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          40
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Matthias Becker (matthias.becker at media4content.de)
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <img src="images/becker3.gif" />
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-              </td>
-        </tr>
-
-        <!-- FOOTER -->
-        <tr><td colspan="2">
-          <hr noshade="" size="1"/>
-        </td></tr>
-        <tr><td colspan="2">
-          <div align="center"><font color="#525D76" size="-1"><em>
-          Copyright &#169; 1999-2001, Apache Software Foundation
-          </em></font></div>
-        </td></tr>
-      </table>
-    </body>
-  </html>
-<!-- end the processing -->
-
-
-
-
diff --git a/docs/manual/CoreTasks/ant.html b/docs/manual/CoreTasks/ant.html
deleted file mode 100644
index d6bf9cf..0000000
--- a/docs/manual/CoreTasks/ant.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="ant">Ant</a></h2>
-<h3>Description</h3>
-<p>Runs Ant on a supplied buildfile. This can be used to build subprojects.</p>
-<p>When the <i>antfile</i> attribute is omitted, the file &quot;build.xml&quot;
-in the supplied directory (<i>dir</i> attribute) is used.</p>
-<p>If no target attribute is supplied, the default target of the new project is
-used.</p>
-<p>By default, all of the properties of the current project will be
-available in the new project.   Alternatively, you can
-set the <i>inheritAll</i> attribute to <code>false</code> and only
-&quot;user&quot; properties (i.e., those passed on the command-line)
-will be passed to the new project.  In either case, the set of
-properties passed to the new project will override the properties that 
-are set in the new project (See also the <a href="property.html">property task</a>).</p>
-<p>You can also set properties in the new project from the old project by
-using nested property tags. These properties are always passed regardless of the
-setting of <i>inheritAll</i>.  This allows you to parameterize your subprojects.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">antfile</td>
-    <td valign="top">the buildfile to use. Defaults to &quot;build.xml&quot;.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">dir</td>
- 	<td valign="top">the directory to use as a basedir for the new Ant project. 
-					 Defaults to the current directory.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">target</td>
-    <td valign="top">the target of the new Ant project that should be executed.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">output</td>
-    <td valign="top">Filename to write the ant output to.
-    </td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">inheritAll</td>
-    <td valign="top">If <code>true</code>, pass all properties to the new Ant
-    project.  Defaults to <code>true</code>.
-    </td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>
-  &lt;ant antfile=&quot;subproject/subbuild.xml&quot; dir=&quot;subproject&quot; target=&quot;compile&quot;/&gt;
-
-  &lt;ant dir=&quot;subproject&quot;/&gt;
-
-  &lt;ant antfile=&quot;subproject/property_based_subbuild.xml&quot;&gt;
-    &lt;property name=&quot;param1&quot; value=&quot;version 1.x&quot;/&gt;
-    &lt;property file=&quot;config/subproject/default.properties&quot;/&gt;
-  &lt;/ant&gt;
-
-  &lt;ant inheritAll=&quot;false&quot; antfile=&quot;subproject/subbuild.xml&quot;&gt;
-    &lt;property name=&quot;output.type&quot; value=&quot;html&quot;/&gt;
-  &lt;/ant&gt;
-</pre>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/antcall.html b/docs/manual/CoreTasks/antcall.html
deleted file mode 100644
index 2c4c946..0000000
--- a/docs/manual/CoreTasks/antcall.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="antcall">AntCall</a></h2>
-<h3>Description</h3>
-<p>Call another target within the same build-file optionally specifying some
-properties (param's in this context)</p>
-<p>By default, all of the properties of the current project will be
-available in the new project.   Alternatively, you can
-set the <i>inheritAll</i> attribute to <code>false</code> and only
-&quot;user&quot; properties (i.e., those passed on the command-line)
-will be passed to the new project.  In either case, the set of
-properties passed to the new project will override the properties that 
-are set in the new project (See also the <a href="property.html">property task</a>).</p>
-<p>You can also set properties in the new project from the old project by
-using nested param tags. These properties are always passed regardless of the
-setting of <i>inheritAll</i>.  This allows you to parameterize your subprojects.</p>
-<p>
-When a target is invoked by antcall, all of its dependent targets will
-also be called within the context of any new parameters. For example. if
-the target "doSomethingElse" depended on the target "init", then the <i>antcall</i> of 
-"doSomethingElse" will call "init" during the call. Of course, any properties defined in the
-antcall task or inherited from the calling target will be fixed and not overridable
-in the init task -or indeed in the "doSomethingElse" 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">target</td>
-    <td valign="top">The target to execute.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">inheritAll</td>
-    <td valign="top">If <code>true</code>, pass all properties to the new Ant
-    project.  Defaults to <code>true</code>.
-    </td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<h3>Parameters specified as nested elements</h3>
-<h4>param</h4>
-<p>Specifies the properties to set before running the specified target. See <a
-href="property.html">property</a> for usage guidelines.</p>
-<h3>Examples</h3>
-<pre>
-  &lt;target name=&quot;default&quot;&gt;
-    &lt;antcall target=&quot;doSomethingElse&quot;&gt;
-      &lt;param name=&quot;param1&quot; value=&quot;value&quot;/&gt;
-    &lt;/antcall&gt;
-  &lt;/target&gt;
-
-  &lt;target name=&quot;doSomethingElse&quot;&gt;
-    &lt;echo message=&quot;param1=${param1}&quot;/&gt;
-  &lt;/target&gt;
-</pre>
-<p>Will run the target 'doSomethingElse' and echo 'param1=value'.</p>
-<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/antstructure.html b/docs/manual/CoreTasks/antstructure.html
deleted file mode 100644
index 708edfc..0000000
--- a/docs/manual/CoreTasks/antstructure.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="antstructure">AntStructure</a></h2>
-<h3>Description</h3> 
-<p>Generates a DTD for Ant buildfiles which contains information
-about all tasks currently known to Ant.</p> 
-<p>Note that the DTD generated by this task is incomplete, you can
-always add XML entities using <a
-href="taskdef.html"><code>&lt;taskdef&gt;</code></a>. See <a
-href="http://www.sdv.fr/pages/casa/html/ant-dtd.en.html" target="_top">here</a> for
-a way to get around this problem.</p>
-<p>This task doesn't know about required attributes, all will be
-listed as <code>#IMPLIED</code>.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">output</td>
-    <td valign="top">file to write the DTD to.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote><pre>
-&lt;antstructure output=&quot;project.dtd&quot;/&gt;
-</pre></blockquote>
-<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/apply.html b/docs/manual/CoreTasks/apply.html
deleted file mode 100644
index ae64d4e..0000000
--- a/docs/manual/CoreTasks/apply.html
+++ /dev/null
@@ -1,199 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="apply">Apply/<i>ExecOn</i></a></h2>
-<p><i>The name execon is deprecated and only kept for backwards
-compatibilty.</i></p>
-<h3>Description</h3>
-<p>Executes a system command. When the <i>os</i> attribute is specified, then
-the command is only executed when Ant is run on one of the specified operating
-systems.</p>
-<p>The files and/or directories of a number of <a
-href="../CoreTypes/fileset.html">FileSet</a>s are passed as arguments
-to the system command.</p>
-<p>If you specify a nested <a
-href="../CoreTypes/mapper.html">mapper</a> and the destdir attribute,
-the timestamp of each source file is compared to the timestamp of a
-target file which is defined by the nested mapper element and searched
-for in the given destdir.</p>
-<p>At least one fileset is required, you must not specify more than
-one mapper.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">executable</td>
-    <td valign="top">the command to execute without any command line
-      arguments.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">dest</td>
-    <td valign="top">the directory where the &lt;apply&gt; expects the target files will be placed by the 
-                     command, when it is executed. 
-    </td>
-    <td align="center" valign="top">Yes, if you specify a nested mapper</td>
-  </tr>
-  <tr>
-    <td valign="top">dir</td>
-    <td valign="top">the directory in which the command should be executed.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">os</td>
-    <td valign="top">list of Operating Systems on which the command may be
-      executed.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">output</td>
-    <td valign="top">the file to which the output of the command should be
-      redirected.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">outputproperty</td>
-    <td valign="top">the name of a property in which the output of the 
-      command should be stored.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">timeout</td>
-    <td valign="top">Stop the command if it doesn't finish within the
-      specified time (given in milliseconds).</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">failonerror</td>
-    <td valign="top">Stop the buildprocess if the command exits with a
-      returncode other than 0.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">skipemptyfilesets</td>
-    <td valign="top">Don't run the command, if no source files have
-      been found or are newer than their corresponding target
-      files.</td>
-    <td align="center" valign="top">No, default is <i>false</i></td>
-  </tr>
-  <tr>
-    <td valign="top">parallel</td>
-    <td valign="top">Run the command only once, appending all files as
-      arguments. If false, command will be executed once for every file. 
-      Defaults to false. </td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">type</td>
-    <td valign="top">One of <i>file</i>, <i>dir</i> or
-      <i>both</i>. If set to <i>file</i>, only the names of plain
-      files will be sent to the command. If set to <i>dir</i>, only
-      the names of directories are considered.</td>
-    <td align="center" valign="top">No, default is <i>file</i></td>
-  </tr>
-  <tr>
-    <td valign="top">newenvironment</td>
-    <td valign="top">Do not propagate old environment when new environment
-      variables are specified.</td>
-    <td align="center" valign="top">No, default is <i>false</i></td>
-  </tr>
-  <tr>
-    <td valign="top">vmlauncher</td>
-    <td valign="top">Run command using the Java VM's execution facilities
-        where available. If set to false the underlying OS's shell,
-        either directly or through the antRun scripts, will be used.
-        Under some operating systems, this gives access to facilities
-        not normally available through the VM including, under Windows,
-        being able to execute scripts, rather than their associated
-        interpreter.</td>
-    <td align="center" valign="top">No, default is <i>true</i></td>
-  </tr>
-</table>
-<h3>Parameters specified as nested elements</h3>
-<h4>fileset</h4>
-<p>You can use any number of nested <code>&lt;fileset&gt;</code>
-elements to define the files for this task and refer to
-<code>&lt;fileset&gt;</code>s defined elsewhere.</p>
-<h4>arg</h4>
-<p>Command line arguments should be specified as nested
-<code>&lt;arg&gt;</code> elements. See <a
-href="../using.html#arg">Command line arguments</a>.</p>
-<h4>srcfile</h4>
-<p>By default the file names of the source files will be added to the
-end of the command line. If you need to place it somewhere different,
-use a nested <code>&lt;srcfile&gt;</code> element between your
-<code>&lt;arg&gt;</code> elements to mark the insertion point.</p>
-<h4>targetfile</h4>
-<p><code>&lt;targetfile&gt;</code> is similar to
-<code>&lt;srcfile&gt;</code> and marks the position of the target
-filename on the command line. If omitted, the target filenames will
-not be added to the command line at all. This element can only be
-specified, if you also define a nested mapper and the destdir
-attribute.</p>
-<h4>env</h4>
-<p>It is possible to specify environment variables to pass to the
-system command via nested <code>&lt;env&gt;</code> elements. See the
-description in the section about <a href="exec.html#env">exec</a></p>
-<p>Please note that the environment of the current Ant process is
-<b>not</b> passed to the system command if you specify variables using
-<code>&lt;env&gt;</code>.</p>
-<h3>Examples</h3>
-<blockquote><pre>
-&lt;apply executable=&quot;ls&quot; &gt;
-  &lt;arg value=&quot;-l&quot;/&gt;
-  &lt;fileset dir=&quot;/tmp&quot;&gt;
-    &lt;patternset&gt;
-      &lt;exclude name=&quot;**/*.txt&quot;/&gt;
-    &lt;/patternset&gt;
-  &lt;/fileset&gt;
-  &lt;fileset refid=&quot;other.files&quot;/&gt;
-&lt;/apply&gt;
-</pre></blockquote>
-<p>invokes <code>ls -l</code>, adding the absolute filenames of all
-files below <code>/tmp</code> not ending in <code>.txt</code> and all
-files of the FileSet with <code>id</code> <code>other.files</code> to
-the command line.</p>
-<blockquote><pre>
-&lt;apply executable=&quot;somecommand&quot; parallel=&quot;false&quot; &gt;
-  &lt;arg value=&quot;arg1&quot;/&gt;
-  &lt;srfile/&gt;
-  &lt;arg value=&quot;arg2&quot;/&gt;
-  &lt;fileset dir=&quot;/tmp&quot;/&gt;
-&lt;/apply&gt;
-</pre></blockquote>
-<p>invokes <code>somecommand arg1 SOURCEFILENAME arg2</code> for each
-file in <code>/tmp</code> replacing SOURCEFILENAME with the absolute
-filename of each file in turn. If <code>parallel</code> had been set
-to true, SOURCEFILENAME would be replaced with the absolute filenames
-of all files separated by spaces.</p>
-<blockquote><pre>
-&lt;apply executable=&quot;cc&quot; dest=&quot;src/C&quot; parallel=&quot;false&quot;&gt;
-  &lt;arg value=&quot;-c&quot;/&gt;
-  &lt;arg value=&quot;-o&quot;/&gt;
-  &lt;targetfile/&gt;
-  &lt;srcfile/&gt;
-  &lt;fileset dir=&quot;src/C&quot; includes=&quot;*.c&quot;/&gt;
-  &lt;mapper type=&quot;glob&quot; from=&quot;*.c&quot; to=&quot;*.o&quot;/&gt;
-&lt;/apply&gt;
-</pre></blockquote>
-<p>invokes <code>cc -c -o TARGETFILE SOURCEFILE</code> for each
-<code>.c</code> file that is newer than the corresponding
-<code>.o</code>, replacing TARGETFILE with the absolute filename of
-the <code>.o</code> and SOURCEFILE with the absolute name of the
-<code>.c</code> file.</p>
-<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/available.html b/docs/manual/CoreTasks/available.html
deleted file mode 100644
index 6652f47..0000000
--- a/docs/manual/CoreTasks/available.html
+++ /dev/null
@@ -1,112 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="available">Available</a></h2>
-<h3>Description</h3>
-<p>Sets a property if a resource is available at runtime. This resource can be a
-file, a directory, a class in the classpath, or a JVM system resource.</p>
-<p>If the resource is present, the property value is set to true by
-default; otherwise, the property is not set. You can set the value to
-something other than the default by specifying the <code>value</code> attribute.</p>
-<p>Normally, this task is used to set properties that are useful to avoid target
-execution depending on system parameters.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">property</td>
-    <td valign="top">The name of the property to set.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">value</td>
-    <td valign="top">The value to set the property to. Defaults to &quot;true&quot;.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">classname</td>
-    <td valign="top">The class to look for in the classpath.</td>
-    <td valign="middle" align="center" rowspan="3">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">file</td>
-    <td valign="top">The file to look for.</td>
-  </tr>
-  <tr>
-    <td valign="top">resource</td>
-    <td valign="top">The resource to look for in the JVM.</td>
-  </tr>
-  <tr>
-    <td valign="top">classpath</td>
-    <td valign="top">The classpath to use when looking up <code>classname</code> or <code>resource</code>.</td>
-    <td align="center" valign="top">No</td>    
-  </tr>
-  <tr>
-    <td valign="top">classpathref</td>
-    <td valign="top">The classpath to use, given as a <a href="../using.html#references">reference</a> to a path defined elsewhere.</td>
-    <td align="center" valign="top">No</td>    
-  </tr>
-  <tr>
-    <td valign="top">type</td>
-    <td valign="top">The type of <code>file</code> to look for, either a directory (<code>type="dir"</code>) or a file (<code>type="file"</code>). If not set, the property will be set if the name specified in the <code>file</code> attribute exists as either a file or a directory.</td>
-    <td align="center" valign="top">No</td>    
-  </tr>
-  
-</table>
-<h3>Parameters specified as nested elements</h3>
-<h4>classpath</h4>
-<p><code>Available</code>'s <code>classpath</code> attribute is a <a
-href="../using.html#path">path-like structure</a> and can also be set via a nested
-<code>&lt;classpath&gt;</code> element.</p>
-<h3>Examples</h3>
-<pre>  &lt;available classname=&quot;org.whatever.Myclass&quot; property=&quot;Myclass.present&quot;/&gt;</pre>
-<p>sets the <code>Myclass.present</code> property to the value &quot;true&quot;
-if the class <code>org.whatever.Myclass</code> is found in Ant's classpath.</p>
-<pre>
-&lt;property name=&quot;jaxp.jar&quot; value=&quot;./lib/jaxp11/jaxp.jar&quot;/&gt;
-&lt;available file=&quot;${jaxp.jar}&quot; property=&quot;jaxp.jar.present&quot;/&gt;
-</pre>
-<p>sets the <code>jaxp.jar.present</code> property to the value &quot;true&quot;
-if the file <code>./lib/jaxp11/jaxp.jar</code> is found.</p>
-<pre>
-&lt;available file=&quot;/usr/local/lib&quot; type=&quot;dir&quot; property=&quot;local.lib.present&quot;/&gt;
-</pre>
-<p>sets the <code>local.lib.present</code> property to the value &quot;true&quot;
-if the directory <code>/usr/local/lib</code> is found.</p>
-<pre>
-...in project ...
-&lt;property name=&quot;jaxp.jar&quot; value=&quot;./lib/jaxp11/jaxp.jar&quot;/&gt;
-&lt;path id=&quot;jaxp&quot; location=&quot;${jaxp.jar}&quot;/&gt;
-...in target ...
-&lt;available classname=&quot;javax.xml.transform.Transformer&quot; classpathref=&quot;jaxp&quot; property=&quot;jaxp11.present&quot;/&gt;
-</pre>
-<p>sets the <code>jaxp11.present</code> property to the value &quot;true&quot;
-if the class <code>javax.xml.transform.Transformer</code> is found in the classpath referenced by <code>jaxp</code> (in this case, <code>./lib/jaxp11/jaxp.jar</code>).
-</p>
-<p>
-<pre>
-&lt;available property=&quot;have.extras&quot; resource=&quot;extratasks.properties&quot;&gt;
-  &lt;classpath&gt;
-    &lt;pathelement location=&quot;/usr/local/ant/extra.jar/&gt;
-&nbsp;&nbsp;&lt;/classpath&gt;
-&lt;/available&gt;
-</pre>
-<p>sets the <code>have.extras</code> property to the value &quot;true&quot;
-if the resource-file <code>extratasks.properties</code> is found.
-</p>
-<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/chmod.html b/docs/manual/CoreTasks/chmod.html
deleted file mode 100644
index 918cd2d..0000000
--- a/docs/manual/CoreTasks/chmod.html
+++ /dev/null
@@ -1,122 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="chmod">Chmod</a></h2>
-<h3>Description</h3>
-<p>Changes the permissions of a file or all files inside specified directories. Right now it has effect only under Unix.
-The permissions are also UNIX style, like the argument for the chmod command.</p>
-<p>See the section on <a href="../dirtasks.html#directorybasedtasks">directory based
-tasks</a>, on how the inclusion/exclusion of files works, and how to
-write patterns.</p>
-<p>This task holds an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
-supports all of FileSet's attributes and nested elements
-directly. More FileSets can be specified using nested
-<code>&lt;fileset&gt;</code> elements.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">file</td>
-    <td valign="top">the file or single directory of which the permissions 
-      must be changed.</td>
-    <td valign="top" valign="middle" rowspan="2">exactly one of the two or nested <code>&lt;fileset&gt;</code> elements.</td>
-  </tr>
-  <tr>
-    <td valign="top">dir</td>
-    <td valign="top">the directory which holds the files whose permissions 
-      must be changed.</td>
-  </tr>
-  <tr>
-    <td valign="top">perm</td>
-    <td valign="top">the new permissions.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      included. All files are included when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an include pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      excluded. No files (except default excludes) are excluded when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an exclude pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes should be used or not
-      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">parallel</td>
-    <td valign="top">process all specified files using a single
-      <code>chmod</code> command. Defaults to true.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">type</td>
-    <td valign="top">One of <i>file</i>, <i>dir</i> or
-      <i>both</i>. If set to <i>file</i>, only the permissions of
-      plain files are going to be changed. If set to <i>dir</i>, only
-      the directories are considered.</td>
-    <td align="center" valign="top">No, default is <i>file</i></td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-  <p><code>&lt;chmod file=&quot;${dist}/start.sh&quot; perm=&quot;ugo+rx&quot;/&gt;</code></p>
-</blockquote>
-<p>makes the &quot;start.sh&quot; file readable and executable for anyone on a
-UNIX system.</p>
-<blockquote>
-<pre>
-    &lt;chmod dir=&quot;${dist}/bin&quot; perm=&quot;ugo+rx&quot; includes=&quot;**/*.sh&quot;/&gt;
-</pre>
-</blockquote>
-<p>makes all &quot;.sh&quot; files below <code>${dist}/bin</code>
-readable and executable for anyone on a UNIX system.</p>
-<blockquote>
-<pre>
-&lt;chmod perm=&quot;g+w&quot;&gt;
-  &lt;fileset dir=&quot;shared/sources1&quot;&gt;
-    &lt;exclude name=&quot;**/trial/**&quot;/&gt;
-  &lt;/fileset&gt;
-  &lt;fileset refid=&quot;other.shared.sources&quot;/&gt;
-&lt;/chmod&gt;
-</pre>
-</blockquote>
-<p>makes all files below <code>shared/sources1</code> (except those
-below any directory named trial) writable for members of the same
-group on a UNIX system. In addition all files belonging to a FileSet
-with <code>id</code> <code>other.shared.sources</code> get the same
-permissions.</p>
-<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/common.html b/docs/manual/CoreTasks/common.html
deleted file mode 100644
index 2c489ca..0000000
--- a/docs/manual/CoreTasks/common.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="javac">Common Attributes of all Tasks</a></h2>
-<p>All tasks share the following attributes:</p>
-
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">id</td>
-    <td valign="top">Unique identifier for this task instance, can be
-       used to reference this task in scripts.</td>
-    <td valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">taskname</td>
-    <td valign="top">A different name for this task instance - will
-      show up in the logging output.</td>
-    <td valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">description</td>
-    <td valign="top">Room for your comments</td>
-    <td valign="top">No</td>
-  </tr>
-</table>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/condition.html b/docs/manual/CoreTasks/condition.html
deleted file mode 100644
index d28152e..0000000
--- a/docs/manual/CoreTasks/condition.html
+++ /dev/null
@@ -1,157 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="Condition">Condition</a></h2>
-<h3>Description</h3>
-<p>Sets a property if a certain condition holds true - this is a
-generalization of <a href="available.html">Available</a> and <a
-href="uptodate.html">Uptodate</a>.</p>
-<p>If the condition holds true, the property value is set to true by
-default; otherwise, the property is not set. You can set the value to
-something other than the default by specifying the <code>value</code>
-attribute.</p>
-<p>Conditions are specified as <a href="#nested">nested elements</a>,
-you must specify exactly one condition.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">property</td>
-    <td valign="top">The name of the property to set.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">value</td>
-    <td valign="top">The value to set the property to. Defaults to
-      &quot;true&quot;.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3><a name="nested">Parameters specified as nested elements</a></h3>
-<p>All conditions to test are specified as nested elements.</p>
-
-<h4>not</h4>
-<p>The <code>&lt;not&gt;</code> element expects exactly one other
-condition to be nested into this element, negating the result of the
-condition.  It doesn't have any attributes and accepts all nested
-elements of the condition task as nested elements as well.</p>
-
-<h4>and</h4> <p>
-The <code>&lt;and&gt;</code> element doesn't have any attributes and
-accepts an arbitrary number of conditions as nested elements - all
-nested elements of the condition task are supported.  This condition
-is true if all of its contained conditions are, conditions will be
-evaluated in the order they have been specified in the build file.</p>
-<p>The <code>&lt;and&gt;</code> condition has the same shortcut
-semantics as the Java &amp;&amp; operator, as soon as one of the
-nested conditions is false, no other condition will be evaluated.</p>
-
-<h4>or</h4> <p>
-The <code>&lt;or&gt;</code> element doesn't have any attributes and
-accepts an arbitrary number of conditions as nested elements - all
-nested elements of the condition task are supported.  This condition
-is true if at least one of its contained conditions is, conditions
-will be evaluated in the order they have been specified in the build
-file.</p> <p>The <code>&lt;or&gt;</code> condition has the same
-shortcut semantics as the Java || operator, as soon as one of the
-nested conditions is true, no other condition will be evaluated.</p>
-
-<h4>available</h4>
-<p>This condition is identical to the <a
-href="available.html">Available</a> task, all attributes and nested
-elements of that task are supported, the property and value attributes
-are redundant and will be ignored.</p>
-
-<h4>uptodate</h4>
-<p>This condition is identical to the <a
-href="uptodate.html">Uptodate</a> task, all attributes and nested
-elements of that task are supported, the property and value attributes
-are redundant and will be ignored.</p>
-
-<h4>os</h4>
-<p>Test whether the current operating system is of a given type.</p>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">family</td>
-    <td valign="top">The name of the operating system family to expect.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<p>Supported values for the family attribute are:
-<ul>
-  <li>windows (for all versions of Microsoft Windows)</li>
-  <li>dos (for all Microsoft DOS based operating systems including
-    Microsoft Windows and OS/2)</li>
-  <li>mac (for all Apple Macintosh systems)</li>
-  <li>unix (for all Unix and Unix-like operating systems)</li>
-</ul>
-
-<h4>equals</h4>
-<p>Tests whether the two given Strings are identical</p>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">arg1</td>
-    <td valign="top">First string to test.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">arg2</td>
-    <td valign="top">Second string to test.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-</table>
-
-<h3>Examples</h3>
-<pre>
-  &lt;condition property=&quot;javamail.complete&quot;&gt;
-    &lt;and&gt;
-      &lt;available classname=&quot;javax.activation.DataHandler&quot; /&gt;
-      &lt;available classname=&quot;javax.mail.Transport&quot; /&gt;
-    &lt;/and&gt;
-  &lt;/condition&gt;
-</pre>
-<p>sets the property <code>javamail.complete</code> if both the
-JavaBeans Activation Framework and JavaMail are available in the
-classpath.</p>
-
-<pre>
-  &lt;condition property=&quot;isMacOsButNotMacOsX&quot;&gt;
-    &lt;and&gt;
-      &lt;os family=&quot;mac&quot; />
-      &lt;not&gt;
-        &lt;os family=&quot;unix&quot; />
-      &lt;/not&gt;
-    &lt;/and&gt;
-  &lt;/condition&gt;
-</pre>
-<p>sets the property <code>isMacOsButNotMacOsX</code> if the current
-operating system is MacOS, but not MacOS X - which Ant considers to be
-in the Unix family as well.</p>
-
-<hr>
-<p align="center">Copyright &copy; 2001 Apache Software
-Foundation. All rights Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/copy.html b/docs/manual/CoreTasks/copy.html
deleted file mode 100644
index 65a2a8d..0000000
--- a/docs/manual/CoreTasks/copy.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="copy">Copy</a></h2>
-<h3>Description</h3>
-<p>Copies a file or Fileset to a new file or directory.  Files are
-only copied if the source file is newer than the destination file,
-or when the destination file does not exist.  However, you can explicitly 
-overwrite files with the <var>overwrite</var> attribute.</p>
-<p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select files to copy.  
-To use a fileset, the <var>todir</var> attribute must be set.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">file</td>
-    <td valign="top">The file to copy.</td>
-    <td valign="top" align="center">One of either <var>file</var> or 
-    at least one nested fileset element.</td>
-  </tr>
-  <tr>
-    <td valign="top">preservelastmodified</td>
-    <td valign="top">Give the copied files the same last modified
-      time as the original files. Defaults to &quot;no&quot;.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">tofile</td>
-    <td valign="top">The file to copy to.</td>
-    <td valign="top" align="center" rowspan="2">With the <var>file</var> attribute, 
-    either <var>tofile</var> or <var>todir</var> can be used.  With nested filesets, 
-    only <var>todir</var> is allowed.</td>
-  </tr>
-  <tr>
-    <td valign="top">todir</td>
-    <td valign="top">The directory to copy to.</td>
-  </tr>
-  <tr>
-    <td valign="top">overwrite</td>
-    <td valign="top">Overwrite existing files even if the destination
-      files are newer. Defaults to &quot;no&quot;.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">filtering</td>
-    <td valign="top">Indicates whether token filtering should take place during
-      the copy. Defaults to &quot;no&quot;.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">flatten</td>
-    <td valign="top">Ignore directory structure of source directory,
-      copy all files into a single directory, specified by the <var>todir</var>
-      attribute. Defaults to &quot;no&quot;. Note that you can achieve the 
-      same effect by using a <a href="../CoreTypes/mapper.html#flatten-mapper">flatten mapper</a></td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includeEmptyDirs</td>
-	 <td valign="top">Copy empty directories included with the nested FileSet(s).
-	   Defaults to &quot;yes&quot;.</td>
-	 <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Parameters specified as nested elements</h3>
-<h4>mapper</h4>
-<p>You can define file name transformations by using a nested <a
-href="../CoreTypes/mapper.html">mapper</a> element. The default mapper used by
-<code>&lt;copy&gt;</code> is the <a
-href="../CoreTypes/mapper.html#identity-mapper">identity</a>.</p>
-<h3>Examples</h3>
-<p><b>Copy a single file</b></p>
-<pre>
-  &lt;copy file=&quot;myfile.txt&quot; tofile=&quot;mycopy.txt&quot;/&gt;
-</pre>
-<p><b>Copy a file to a directory</b></p>
-<pre>
-  &lt;copy file=&quot;myfile.txt&quot; todir=&quot;../some/dir/tree&quot;/&gt;
-</pre>
-<p><b>Copy a directory to another directory</b></p>
-<pre>
-  &lt;copy todir=&quot;../new/dir&quot;&gt;
-    &lt;fileset dir=&quot;src_dir&quot;/&gt;
-  &lt;/copy&gt;
-</pre>
-<p><b>Copy a set of files to a directory</b></p>
-<pre>
-  &lt;copy todir=&quot;../dest/dir&quot; &gt;
-    &lt;fileset dir=&quot;src_dir&quot &gt;
-      &lt;exclude name=&quot;**/*.java&quot;/&gt;
-    &lt;/fileset&gt;
-  &lt;/copy&gt;
-
-  &lt;copy todir=&quot;../dest/dir&quot; &gt;
-    &lt;fileset dir=&quot;src_dir&quot excludes=&quot;**/*.java&quot;/&gt;
-  &lt;/copy&gt;
-</pre>
-<p><b>Copy a set of files to a directory appending
-&quot;<code>.bak</code>&quot; to the file name on the fly</b></p>
-<pre>
-  &lt;copy todir=&quot;../backup/dir&quot; &gt;
-    &lt;fileset dir=&quot;src_dir&quot /&gt;
-    &lt;mapper type=&quot;glob&quot; from=&quot;*&quot; to=&quot;*.bak&quot;/&gt;
-  &lt;/copy&gt;
-</pre>
-<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/copydir.html b/docs/manual/CoreTasks/copydir.html
deleted file mode 100644
index d57bfeb..0000000
--- a/docs/manual/CoreTasks/copydir.html
+++ /dev/null
@@ -1,120 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="copydir">Copydir</a></h2>
-<h3><i>Deprecated</i></h3>
-<p><i>This task has been deprecated.  Use the Copy task instead.</i></p>
-<h3>Description</h3>
-<p>Copies a directory tree from the source to the destination.</p>
-<p>It is possible to refine the set of files that are being copied. This can be
-done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
-attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
-have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
-the files you want to have excluded. This is also done with patterns. And
-finally with the <i>defaultexcludes</i> attribute, you can specify whether you
-want to use default exclusions or not. See the section on <a
-href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
-inclusion/exclusion of files works, and how to write patterns.</p>
-<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
-supports all attributes of <code>&lt;fileset&gt;</code>
-(<code>dir</code> becomes <code>src</code>) as well as the nested
-<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
-<code>&lt;patternset&gt;</code> elements.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">src</td>
-    <td valign="top">the directory to copy.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">dest</td>
-    <td valign="top">the directory to copy to.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      included. All files are included when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an include pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      excluded. No files (except default excludes) are excluded when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an exclude pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes should be used or not
-      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">filtering</td>
-    <td valign="top">indicates whether token filtering should take place during
-      the copy</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">flatten</td>
-    <td valign="top">ignore directory structure of source directory,
-      copy all files into a single directory, specified by the <code>dest</code>
-      attribute (default is <code>false</code>).</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">forceoverwrite</td>
-    <td valign="top">overwrite existing files even if the destination
-      files are newer (default is false).</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>  &lt;copydir src=&quot;${src}/resources&quot;
-           dest=&quot;${dist}&quot;
-  /&gt;</pre>
-<p>copies the directory <code>${src}/resources</code> to <code>${dist}</code>.</p>
-<pre>  &lt;copydir src=&quot;${src}/resources&quot;
-           dest=&quot;${dist}&quot;
-           includes=&quot;**/*.java&quot;
-           excludes=&quot;**/Test.java&quot;
-  /&gt;</pre>
-<p>copies the directory <code>${src}/resources</code> to <code>${dist}</code>
-recursively. All java files are copied, except for files with the name <code>Test.java</code>.</p>
-<pre>  &lt;copydir src=&quot;${src}/resources&quot;
-           dest=&quot;${dist}&quot;
-           includes=&quot;**/*.java&quot;
-           excludes=&quot;mypackage/test/**&quot;/&gt;</pre>
-<p>copies the directory <code>${src}/resources</code> to <code>${dist}</code>
-recursively. All java files are copied, except for the files under the <code>mypackage/test</code>
-directory.</p>
-<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/copyfile.html b/docs/manual/CoreTasks/copyfile.html
deleted file mode 100644
index 129cfad..0000000
--- a/docs/manual/CoreTasks/copyfile.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="copyfile">Copyfile</a></h2>
-<h3><i>Deprecated</i></h3>
-<p><i>This task has been deprecated.  Use the Copy task instead.</i></p>
-<h3>Description</h3>
-<p>Copies a file from the source to the destination. The file is only copied if
-the source file is newer than the destination file, or when the destination file
-does not exist.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">src</td>
-    <td valign="top">the filename of the file to copy.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">dest</td>
-    <td valign="top">the filename of the file where to copy to.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">filtering</td>
-    <td valign="top">indicates whether token filtering should take place during
-      the copy</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">forceoverwrite</td>
-    <td valign="top">overwrite existing files even if the destination
-      files are newer (default is false).</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-  <p><code>&lt;copyfile src=&quot;test.java&quot; dest=&quot;subdir/test.java&quot;
-  /&gt;</code></p>
-  <p><code>&lt;copyfile src=&quot;${src}/index.html&quot; dest=&quot;${dist}/help/index.html&quot;
-  /&gt;</code></p>
-</blockquote>
-<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/cvs.html b/docs/manual/CoreTasks/cvs.html
deleted file mode 100644
index cc82da3..0000000
--- a/docs/manual/CoreTasks/cvs.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="cvs">Cvs</a></h2>
-<h3>Description</h3>
-<p>Handles packages/modules retrieved from a 
-<a href="http://www.cvshome.org/" target="_top">CVS</a> repository.</p>
-<p>When doing automated builds, the <a href="get.html">get task</a> should be
-preferred over the <i>checkout</i> command, because of speed.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">command</td>
-    <td valign="top">the CVS command to execute.</td>
-    <td align="center" valign="top">No, default &quot;checkout&quot;</td>
-  </tr>
-  <tr>
-    <td valign="top">cvsRoot</td>
-    <td valign="top">the CVSROOT variable.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">dest</td>
-    <td valign="top">the directory where the checked out files should be placed.</td>
-    <td align="center" valign="top">No, default is project's basedir.</td>
-  </tr>
-  <tr>
-    <td valign="top">package</td>
-    <td valign="top">the package/module to check out.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">tag</td>
-    <td valign="top">the tag of the package/module to check out.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">date</td>
-    <td valign="top">Use the most recent revision no later than the given date</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">quiet</td>
-    <td valign="top">suppress informational messages.</td>
-    <td align="center" valign="top">No, default &quot;false&quot;</td>
-  </tr>
-  <tr>
-    <td valign="top">noexec</td>
-    <td valign="top">report only, don't change any files.</td>
-    <td align="center" valign="top">No, default &quot;false&quot;</td>
-  </tr>
-  <tr>
-    <td valign="top">output</td>
-    <td valign="top">the file to direct standard output from the command.</td>
-    <td align="center" valign="top">No, default output to ANT Log as MSG_INFO.</td>
-  </tr>
-  <tr>
-    <td valign="top">error</td>
-    <td valign="top">the file to direct standard error from the command.</td>
-    <td align="center" valign="top">No, default error to ANT Log as MSG_WARN.</td>
-  </tr>
-  <tr>
-    <td valign="top">port</td>
-    <td valign="top">Port used by CVS to communicate with the server.</td>
-    <td align="center" valign="top">No, default port 2401.</td>
-  </tr>
-  <tr>
-    <td valign="top">passfile</td>
-    <td valign="top">Password file to read passwords from.</td>
-    <td align="center" valign="top">No, default file ~/.cvspass.</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>  &lt;cvs cvsRoot=&quot;:pserver:anoncvs@jakarta.apache.org:/home/cvspublic&quot;
-       package=&quot;jakarta-tools&quot;
-       dest=&quot;${ws.dir}&quot;
-  /&gt;</pre>
-<p>checks out the package/module &quot;jakarta-tools&quot; from the CVS
-repository pointed to by the cvsRoot attribute, and stores the files in &quot;${ws.dir}&quot;.</p>
-<pre>  &lt;cvs dest=&quot;${ws.dir}&quot; command=&quot;update&quot;/&gt;</pre>
-<p>updates the package/module that has previously been checked out into
-&quot;${ws.dir}&quot;.</p>
-<pre>  &lt;cvs command=&quot;-q diff -u -N&quot; output=&quot;patch.txt&quot;/&gt;</pre>
-<p>silently (-q) creates a file called patch.txt which contains a unified (-u) diff which includes new files added via &quot;cvs add&quot; (-N) and can be used as input to patch.</p>
-<pre>  &lt;cvs command=&quot;update -A -d&quot;/&gt;</pre>
-<p>Updates from the head of repository ignoring sticky bits (-A) and creating any new directories as necessary (-d).</p>
-<p>Note: the text of the command is passed to cvs &quot;as-is&quot; so any cvs options should appear 
-before the command, and any command options should appear after the command as in the diff example 
-above. See <a href="http://www.cvshome.org/docs/manual/index.html" target="_top">the cvs manual</a> for details, 
-specifically the <a href="http://www.cvshome.org/docs/manual/cvs_16.html" target="_top">Guide to CVS commands</a></p>
-<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/cvspass.html b/docs/manual/CoreTasks/cvspass.html
deleted file mode 100644
index c6b3704..0000000
--- a/docs/manual/CoreTasks/cvspass.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="cvs">cvspass</a></h2>
-<h3>Description</h3>
-<p>Adds entries to a .cvspass file. Adding entries to this file has the same affect as a cvs login command.
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">cvsroot</td>
-    <td valign="top">the CVS repository to add an entry for.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">password</td>
-    <td valign="top">Password to be added to the password file.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">passfile</td>
-    <td valign="top">Password file to add the entry to.</td>
-    <td align="center" valign="top">No, default is ~/.cvspass.</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>  &lt;cvspass cvsroot=&quot;:pserver:anoncvs@jakarta.apache.org:/home/cvspublic&quot;
-       password=&quot;anoncvs&quot;
-  /&gt;</pre>
-<p>Adds an entry into the ~/.cvspass password file.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/delete.html b/docs/manual/CoreTasks/delete.html
deleted file mode 100644
index 96de2d7..0000000
--- a/docs/manual/CoreTasks/delete.html
+++ /dev/null
@@ -1,122 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="delete">Delete</a></h2>
-<h3>Description</h3>
-<p>Deletes either a single file, all files in a specified directory and its 
-sub-directories, or a set of files specified by one or more <a href="../CoreTypes/fileset.html">FileSet</a>s.
-When specifying a set of files, empty directories are <i>not</i> removed by default.
-To remove empty directories, use the <em>includeEmptyDirs</em> atribute.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">file</td>
-    <td valign="top">The file to delete.</td>
-    <td align="center" valign="middle" rowspan="2">at least one of the two</td>
-  </tr>
-  <tr>
-    <td valign="top">dir</td>
-    <td valign="top">The directory to delete files from.</td>
-  </tr>
-  <tr>
-    <td valign="top">verbose</td>
-    <td valign="top">Show name of each deleted file (&quot;true&quot;/&quot;false&quot;).
-	 Default is &quot;false&quot; when omitted.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">quiet</td>
-    <td valign="top">If the file does not exist, do not display a diagnostic 
-     message or modify the exit status to reflect an error (unless Ant
-     has been invoked with the -verbose or -debug switches).
-     This means that if a file or directory cannot be deleted,
-     then no error is reported. This setting emulates the 
-     -f option to the Unix &quot;rm&quot; command.
-     (&quot;true&quot;/&quot;false&quot;).
-     Default is &quot;false&quot; meaning things are &quot;noisy&quot;.</td>
-     Setting this to true, implies setting failonerror to false.
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">failonerror</td>
-    <td valign="top">
-    This flag (which is only of relevance if 'quiet' is false),
-    controls whether an error -such as a failure to delete a file-
-    stops the build task, or is merely reported to the screen.
-    The default is &quot;true&quot;
-    </td>
-    <td align="center" valign="top">No</td>
-  </tr>  
-  <tr>
-    <td valign="top">includeEmptyDirs</td>
-    <td valign="top">Set to &quot;true&quot; to delete empty directories when
-    using filesets.  Default is &quot;false&quot;.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top"><i>Deprecated.</i>  Comma separated list of patterns of files that must be
-      deleted. All files are in the current directory 
-      and any sub-directories are deleted when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top"><i>Deprecated.</i>  The name of a file. Each line of this file is
-      taken to be an include pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top"><i>Deprecated.</i>  Comma separated list of patterns of files that must be
-      excluded from the deletion list. No files (except default excludes) are excluded when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top"><i>Deprecated.</i>  The name of a file. Each line of this file is
-      taken to be an exclude pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top"><i>Deprecated.</i>  Indicates whether default excludes should be used or not
-      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>  &lt;delete file=&quot;/lib/ant.jar&quot;/&gt;</pre>
-<p>deletes the file <code>/lib/ant.jar</code>.</p>
-<pre>  &lt;delete dir=&quot;lib&quot;/&gt;</pre>
-<p>deletes the <code>lib</code> directory, including all files 
-and subdirectories of <code>lib</code>.</p>
-<pre>  &lt;delete&gt;
-    &lt;fileset dir=&quot;.&quot; includes=&quot;**/*.bak&quot;/&gt;
-  &lt;/delete&gt;
-</pre>
-<p>deletes all files with the extension &quot;<code>.bak</code>&quot from the current directory 
-and any sub-directories.</p>
-<pre>  &lt;delete includeEmptyDirs=&quot;true&quot; &gt;
-    &lt;fileset dir=&quot;build&quot; /&gt;
-  &lt;/delete&gt;
-</pre>
-<p>deletes all files and subdirectories of <code>build</code>, but not
-<code>build</code> itself.</p>
-<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/deltree.html b/docs/manual/CoreTasks/deltree.html
deleted file mode 100644
index 576b769..0000000
--- a/docs/manual/CoreTasks/deltree.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="deltree">Deltree</a></h2>
-<h3><i>Deprecated</i></h3>
-<p><i>This task has been deprecated.  Use the Delete task instead.</i></p>
-<h3>Description</h3>
-<p>Deletes a directory with all its files and subdirectories.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">dir</td>
-    <td valign="top">the directory to delete.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>  &lt;deltree dir=&quot;dist&quot;/&gt;</pre>
-<p>deletes the directory <code>dist</code>, including its files and
-subdirectories.</p>
-<pre>  &lt;deltree dir=&quot;${dist}&quot;/&gt;</pre>
-<p>deletes the directory <code>${dist}</code>, including its files and
-subdirectories.</p>
-<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/dependset.html b/docs/manual/CoreTasks/dependset.html
deleted file mode 100644
index d2088c8..0000000
--- a/docs/manual/CoreTasks/dependset.html
+++ /dev/null
@@ -1,132 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2>DependSet</h2>
-
-A task to manage arbitrary dependencies between files.
-
-<h3>Description</h3>
-
-<p>
-The dependset task compares a set of source files with a set of target
-files.  If any of the source files is more recent than any of
-the target files, all of the target files are removed.  
-</p>
-<p>
-Source files and target files are specified via nested <a
-href="../CoreTypes/fileset.html">FileSets</a> and/or nested <a
-href="../CoreTypes/filelist.html">FileLists</a>.  Arbitrarily many
-source and target filesets/filelists may be specified, but at 
-least one filelist/fileset is required for both sources and targets.
-</p>
-<p>
-Use a FileSet when you want to use wildcard include or exclude
-patterns and don't care about missing files.  Use a FileList when you
-want to consider the non-existence of a file as if it were out of
-date.  If there are any non-existing files in any source or target
-FileList, all target files will be removed.
-</p>
-<p>
-DependSet is useful to capture dependencies that are not or cannot be
-determined algorithmically.  For example, the &lt;style&gt; task only
-compares the source XML file and XSLT stylesheet against the target
-file to determined whether to restyle the source.  Using dependset you
-can extend this dependency checking to include a DTD or XSD file as
-well as other stylesheets imported by the main stylesheet.
-</p>
-
-<h3>Parameters</h3>
-
-<p>
-(none)
-</p>
-
-<h3>Parameters Specified as Nested Elements</h3>
-
-<h4>srcfileset</h4>
-
-<p>
-The nested <code>srcfileset</code> element specifies a <a
-href="../CoreTypes/fileset.html">FileSet</a>. All files included in
-this fileset will be compared against all files included in all of the
-<code>targetfileset</code> filesets and <code>targetfilelist</code>
-filelists.  Multiple <code>srcfileset</code> filesets may be specified.
-</p>
-
-<h4>srcfilelist</h4>
-
-<p>
-The nested <code>srcfilelist</code> element specifies a <a
-href="../CoreTypes/filelist.html">FileList</a>. All files included in
-this filelist will be compared against all files included in all of the 
-<code>targetfileset</code> filesets and <code>targetfilelist</code>
-filelists.  Multiple <code>srcfilelist</code> filelists may be specified.
-</p>
-
-<h4>targetfileset</h4>
-
-<p>
-The nested <code>targetfileset</code> element specifies a <a
-href="../CoreTypes/fileset.html">FileSet</a>.  All files included in
-this fileset will be compared against all files included in all of the
-<code>srcfileset</code> filesets and <code>sourcefilelist</code>
-filelists, and if any are older, they are all deleted.
-</p>
-
-<h4>targetfilelist</h4>
-
-<p>
-The nested <code>targetfilelist</code> element specifies a <a
-href="../CoreTypes/filelist.html">FileList</a>.  All files included in
-this filelist will be compared against all files included in all of the
-<code>srcfileset</code> filesets and <code>sourcefilelist</code>
-filelists, and if any are older, they are all deleted.
-</p>
-
-<h3>Examples</h3>
-<blockquote> <pre>    
-    &lt;dependset&gt;
-       &lt;srcfilelist
-           dir   = &quot;${dtd.dir}&quot;
-           files = &quot;paper.dtd,common.dtd&quot;/&gt;
-       &lt;srcfilelist
-           dir   = &quot;${xsl.dir}&quot;
-           files = &quot;common.xsl&quot;/&gt;
-       &lt;srcfilelist
-           dir   = &quot;${basedir}&quot;
-           files = &quot;build.xml&quot;/&gt;
-       &lt;targetfileset
-           dir      = &quot;${output.dir}&quot;
-           includes = &quot;**/*.html&quot;/&gt;
-    &lt;/dependset&gt;  </pre>
-</blockquote>
-
-<p> 
-In this example derived HTML files in the ${output.dir} directory 
-will be removed if any are out-of-date with respect to:
-<olist>
-<li>the DTD of their source XML files</li>
-<li>a common DTD (imported by the main DTD)</li>
-<li>a subordinate XSLT stylesheet (imported by the main stylesheet), or</li>
-<li>the buildfile</li>
-</olist>
-</p>
-<p>
-If any of the source files in the above example does not exist, all
-target files will also be removed.  To ignore missing source files instead,
-use filesets instead of filelists for the source files.
-</p>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation.
-All rights
-Reserved.</p>
-
-</body>
-</html>
diff --git a/docs/manual/CoreTasks/ear.html b/docs/manual/CoreTasks/ear.html
deleted file mode 100644
index d404127..0000000
--- a/docs/manual/CoreTasks/ear.html
+++ /dev/null
@@ -1,120 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="ear">Ear</a></h2>
-<h3>Description</h3>
-<p>An extension of the <a href="jar.html">Jar</a> task with special
-treatment for files that should end up in an Enterprise Application archive.</p>
-<p>(The Ear task is a shortcut for specifying the particular layout of a EAR file. 
-The same thing can be accomplished by using the <i>prefix</i> and <i>fullpath</i>
-attributes of zipfilesets in a Zip or Jar task.)</p>
-<p>The extended zipfileset element from the zip task (with attributes <i>prefix</i>, <i>fullpath</i>, and <i>src</i>) is available in the Ear task.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">earfile</td>
-    <td valign="top">the ear-file to create.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">appxml</td>
-    <td valign="top">The deployment descriptor to use (META-INF/application.xml).</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">basedir</td>
-    <td valign="top">the directory from which to jar the files.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">compress</td>
-    <td valign="top">Not only store data but also compress them, defaults to true</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">encoding</td>
-    <td valign="top">The character encoding to use for filenames
-      inside the archive.  Defaults to UTF8. <strong>It is not
-      recommended to change this value as the created archive will most
-      likely be unreadable for Java otherwise.</strong></td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">filesonly</td>
-    <td valign="top">Store only file entries, defaults to false</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      included. All files are included when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an include pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      excluded. No files (except default excludes) are excluded when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an exclude pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes should be used or not
-      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">manifest</td>
-    <td valign="top">the manifest file to use.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">whenempty</td>
-    <td valign="top">Behavior to use if no files match.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Nested elements</h3>
-<h4>metainf</h4>
-<p>The nested <code>metainf</code> element specifies a <a
-href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
-end up in the <code>META-INF</code> directory of the ear file. If this
-fileset includes a file named <code>MANIFEST.MF</code>, the file is
-ignored and you will get a warning.</p>
-<h2>Example</h2>
-<pre>
-    &lt;ear earfile="${build.dir}/myapp.ear" appxml="${src.dir}/metadata/application.xml"&gt;
-      &lt;fileset dir="${build.dir}" includes="*.jar,*.war"/&gt;
-    &lt;/ear&gt;
-</pre>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
-
diff --git a/docs/manual/CoreTasks/echo.html b/docs/manual/CoreTasks/echo.html
deleted file mode 100644
index f1e0aaa..0000000
--- a/docs/manual/CoreTasks/echo.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="echo">Echo</a></h2>
-<h3>Description</h3>
-<p>Echoes a message to System.out or a file.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">message</td>
-    <td valign="top">the message to echo.</td>
-    <td valign="top" align="center">Yes, unless data is included in a
-      character section within this element.</td>
-  </tr>
-  <tr>
-    <td valign="top">file</td>
-    <td valign="top">the file to write the message to.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">append</td>
-    <td valign="top">Append to an existing file?</td>
-    <td valign="top" align="center">No - default is false.</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>  &lt;echo message=&quot;Hello world&quot;/&gt;</pre>
-<pre>  
-&lt;echo&gt;
-This is a longer message stretching over
-two lines.
-&lt;/echo&gt;
-</pre>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/exec.html b/docs/manual/CoreTasks/exec.html
deleted file mode 100644
index d7364e9..0000000
--- a/docs/manual/CoreTasks/exec.html
+++ /dev/null
@@ -1,163 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="exec">Exec</a></h2>
-<h3>Description</h3>
-<p>Executes a system command. When the <i>os</i> attribute is specified, then
-the command is only executed when Ant is run on one of the specified operating
-systems.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">command</td>
-    <td valign="top">the command to execute with all command line
-      arguments. <b>deprecated, use executable and nested
-      <code>&lt;arg&gt;</code> elements instead</b>.</td>
-    <td align="center" rowspan="2">Exactly one of the two.</td>
-  </tr>
-  <tr>
-    <td valign="top">executable</td>
-    <td valign="top">the command to execute without any command line
-      arguments.</td>
-  </tr>
-  <tr>
-    <td valign="top">dir</td>
-    <td valign="top">the directory in which the command should be executed.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">os</td>
-    <td valign="top">list of Operating Systems on which the command may be
-      executed. If the current OS's name is contained in this list, the command will
-      be executed. The OS's name is determined by the Java Virtual machine and is set
-      in the &quot;os.name&quot; system property.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">output</td>
-    <td valign="top">the file to which the output of the command should be
-      redirected.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">outputproperty</td>
-    <td valign="top">the name of a property in which the output of the 
-      command should be stored.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">timeout</td>
-    <td valign="top">Stop the command if it doesn't finish within the
-      specified time (given in milliseconds).</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">failonerror</td>
-    <td valign="top">Stop the buildprocess if the command exits with a
-      returncode other than 0. Defaults to false</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">newenvironment</td>
-    <td valign="top">Do not propagate old environment when new environment
-      variables are specified.</td>
-    <td align="center" valign="top">No, default is <i>false</i></td>
-  </tr>
-  <tr>
-    <td valign="top">vmlauncher</td>
-    <td valign="top">Run command using the Java VM's execution facilities
-        where available. If set to false the underlying OS's shell,
-        either directly or through the antRun scripts, will be used.
-        Under some operating systems, this gives access to facilities
-        not nomrally available through the VM including, under Windows,
-        being able to execute scripts, rather than their associated
-        interpreter.</td>
-    <td align="center" valign="top">No, default is <i>true</i></td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-<pre>
-&lt;exec dir=&quot;${src}&quot; executable=&quot;cmd.exe&quot; os=&quot;Windows 2000&quot; output=&quot;dir.txt&quot;&gt;
-  &lt;arg line=&quot;/c dir&quot;/&gt;
-&lt;/exec&gt;</pre>
-</blockquote>
-<h3>Parameters specified as nested elements</h3>
-<h4>arg</h4>
-<p>Command line arguments should be specified as nested
-<code>&lt;arg&gt;</code> elements. See <a
-href="../using.html#arg">Command line arguments</a>.</p>
-<h4><a name="env">env</a></h4>
-<p>It is possible to specify environment variables to pass to the
-system command via nested <code>&lt;env&gt;</code> elements.</p>
-<p>Please note that the environment of the current Ant process is
-<b>not</b> passed to the system command if you specify variables using
-<code>&lt;env&gt;</code>.</p>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">key</td>
-    <td valign="top">The name of the environment variable.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">value</td>
-    <td valign="top">The literal value for the environment variable.</td>
-    <td align="center" rowspan="3">Exactly one of these.</td>
-  </tr>
-  <tr>
-    <td valign="top">path</td>
-    <td valign="top">The value for a PATH like environment
-      variable. You can use ; or : as path separators and Ant will
-      convert it to the platform's local conventions.</td>
-  </tr>
-  <tr>
-    <td valign="top">file</td>
-    <td valign="top">The value for the environment variable. Will be
-      replaced by the absolute filename of the file by Ant.</td>
-  </tr>
-</table>
-<h5>Examples</h5>
-<blockquote><pre>
-&lt;exec executable=&quot;emacs&quot; &gt;
-  &lt;env key=&quot;DISPLAY&quot; value=&quot;:1.0&quot;/&gt;
-&lt;/exec&gt;
-</pre></blockquote>
-<p>starts <code>emacs</code> on display 1 of the X Window System.</p>
-<blockquote><pre>
-&lt;exec ... &gt;
-  &lt;env key=&quot;PATH&quot; path=&quot;${java.library.path}:${basedir}/bin&quot;/&gt;
-&lt;/exec&gt;
-</pre></blockquote>
-<p>adds <code>${basedir}/bin</code> to the <code>PATH</code> of the
-system command.</p>
-<p><b>Note:</b> Although it may work for you to specify arguments using 
-a simple arg-element and separate them by spaces it may fail if you switch to
-a newer version of the JDK. JDK &lt; 1.2 will pass these as separate arguments
-to the program you are calling, JDK &gt;= 1.2 will pass them as a single 
-argument and cause most calls to fail.</p>
-<p><b>Note2:</b> If you are using Ant on Windows and a new DOS-Window pops up
-for every command which is executed this may be a problem of the JDK you are using.
-This problem may occur with all JDK's &lt; 1.2.</p>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/fail.html b/docs/manual/CoreTasks/fail.html
deleted file mode 100644
index 3b7c266..0000000
--- a/docs/manual/CoreTasks/fail.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="fail">Fail</a></h2>
-<h3>Description</h3>
-<p>Exits the current build (just throwing a BuildException), optionally printing additional information.</p>
-<p>The message of the Exception can be set via the message attribute
-or character data nested into the element.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">message</td>
-    <td valign="top">A message giving further information on why the build exited</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>  &lt;fail/&gt;</pre>
-<p>will exit the current build with no further information given.</p>
-<pre>
-BUILD FAILED
-
-build.xml:4: No message
-</pre>
-
-<pre>  &lt;fail message=&quot;Something wrong here.&quot;/&gt;</pre>
-<p>will exit the current build and print something like the following to wherever
-your output goes:</p>
-<pre>
-BUILD FAILED
-
-build.xml:4: Something wrong here.
-</pre>
-
-<pre>  &lt;fail&gt;Something wrong here.&lt;/fail&gt;</pre>
-<p>will give the same result as above.</p>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/filter.html b/docs/manual/CoreTasks/filter.html
deleted file mode 100644
index f9ffed5..0000000
--- a/docs/manual/CoreTasks/filter.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="filter">Filter</a></h2>
-<h3>Description</h3>
-<p>Sets a token filter for this project or read multiple token filter from
-an input file and sets these as filters.
-Token filters are used by all tasks that perform file copying operations
-through the Project commodity methods.</p>
-<p>Note 1: the token string must not contain the separators chars (@).<br>
-Note 2: Either token and value attributes must be provided, or only the
-filtersfile attribute.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">token</td>
-    <td valign="top">the token string without @</td>
-    <td align="center" valign="top">Yes*</td>
-  </tr>
-  <tr>
-    <td valign="top">value</td>
-    <td valign="top">the string that should be put to replace the token when the 
-      file is copied</td>
-    <td align="center" valign="top">Yes*</td>
-  </tr>
-  <tr>
-    <td valign="top">filtersfile</td>
-    <td valign="top">The file from which the filters must be read. This file must be a formatted as a property file. </td>
-    <td align="center" valign="top">Yes*</td>
-  </tr>
-</table>
-<p>* see notes 1 and 2 above parameters table.</p>
-<h3>Examples</h3>
-<pre>  &lt;filter token=&quot;year&quot; value=&quot;2000&quot;/&gt;
-  &lt;copy todir=&quot;${dest.dir}&quot; filtering=&quot;true&quot;&gt;
-    &lt;fileset dir=&quot;${src.dir}&quot;/&gt;
-  &lt;/copy&gt;</pre> 
-<p>will copy recursively all the files from the <i>src.dir</i> directory into
-the <i>dest.dir</i> directory replacing all the occurences of the string <i>@year@</i>
-with <i>2000.</i></p>
-<pre>  &lt;filter filtersfile=&quot;deploy_env.properties&quot;/&gt;</pre>
-will read all property entries from the <i>deploy_env.properties</i> file
-and set these as filters.
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/fixcrlf.html b/docs/manual/CoreTasks/fixcrlf.html
deleted file mode 100644
index 98a6309..0000000
--- a/docs/manual/CoreTasks/fixcrlf.html
+++ /dev/null
@@ -1,271 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="fixcrlf">FixCRLF</a></h2>
-<h3>Description</h3>
-      <p>
-	Adjusts a text file to local conventions.
-      </p>
-      
-      <p>
-	The set of files to be adjusted can be refined with the
-	<i>includes</i>, <i>includesfile</i>, <i>excludes</i>,
-	<i>excludesfile</i> and <i>defaultexcludes</i>
-	attributes. Patterns provided through the <i>includes</i> or
-	<i>includesfile</i> attributes specify files to be
-	included. Patterns provided through the <i>exclude</i> or
-	<i>excludesfile</i> attribute specify files to be
-	excluded. Additionally, default exclusions can be specified with
-	the <i>defaultexcludes</i> attribute. See the section on <a
-	href="../dirtasks.html#directorybasedtasks">directory based
-	tasks</a>, for details of file inclusion/exclusion patterns
-	and their usage.
-      </p>
-      
-<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
-supports all attributes of <code>&lt;fileset&gt;</code>
-(<code>dir</code> becomes <code>srcdir</code>) as well as the nested
-<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
-<code>&lt;patternset&gt;</code> elements.</p>
-
-      <p>
-	The output file is only written if it is a new file, or if it
-	differs from the existing file.  This prevents spurious
-	rebuilds based on unchanged files which have been regenerated
-	by this task.
-      </p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">srcDir</td>
-    <td valign="top">Where to find the files to be fixed up.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">destDir</td>
-    <td valign="top">Where to place the corrected files.  Defaults to
-      srcDir (replacing the original file)</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      included. All files are included when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an include pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      excluded. No files (except default excludes) are excluded when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an exclude pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes should be used or not
-      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-	<tr>
-	  <td valign="top">eol</td>
-	  <td valign="top">
-	    Specifies how end-of-line (EOL) characters are to be
-	    handled.  The EOL characters are CR, LF and the pair CRLF.
-	    Valid values for this property are:
-	    <ul>
-	      <li>asis: leave EOL characters alone</li>
-	      <li>cr: convert all EOLs to a single CR</li>
-	      <li>lf: convert all EOLs to a single LF</li>
-	      <li>crlf: convert all EOLs to the pair CRLF</li>
-	    </ul>
-	    Default is based on the platform on which you are running
-	    this task.  For Unix platforms, the default is "lf".
-	    For DOS based systems (including Windows), the default is
-	    "crlf".  For Mac OS, the default is "cr".
-	    <p>
-	      This is the preferred method for specifying EOL.  The
-	      &quot;<i><b>cr</b></i>&quot; attribute (see below) is
-	      now deprecated.
-	    </p>
-	    <p>
-	      <i>N.B.</i>: One special case is recognized. The three
-	      characters CR-CR-LF are regarded as a single EOL.
-	      Unless this property is specified as &quot;asis&quot;,
-	      this sequence will be converted into the specified EOL
-	      type.
-	    </p>
-	  </td>
-	  <td valign="top" align="center">No</td>
-	</tr>
-	<tr>
-	  <td valign="top">cr</td>
-	  <td valign="top">
-	    <i><b>Deprecated.</b></i> Specifies how CR characters are
-	    to be handled at end-of-line (EOL).  Valid values for this
-	    property are:
-	    <ul>
-	      <li>asis: leave EOL characters alone.</li>
-	      <li>
-		add: add a CR before any single LF characters. The
-		intent is to convert all EOLs to the pair CRLF.
-	      </li>
-	      <li>
-		remove: remove all CRs from the file.  The intent is
-		to convert all EOLs to a single LF.
-	      </li>
-	    </ul>
-	    Default is based on the platform on which you are running
-	    this task.  For Unix platforms, the default is "remove".
-	    For DOS based systems (including Windows), the default is
-	    "add".
-	    <p>
-	      <i>N.B.</i>: One special case is recognized. The three
-	      characters CR-CR-LF are regarded as a single EOL.
-	      Unless this property is specified as &quot;asis&quot;,
-	      this sequence will be converted into the specified EOL
-	      type.
-	    </p>
-	  </td>
-	  <td valign="top" align="center">No</td>
-	</tr>
-	<tr>
-	  <td valign="top">javafiles</td>
-	  <td valign="top">
-	    Used only in association with the
-	    &quot;<i><b>tab</b></i>&quot; attribute (see below), this
-	    boolean attribute indicates whether the fileset is a set
-	    of java source files
-	    (&quot;yes&quot;/&quot;no&quot;). Defaults to
-	    &quot;no&quot;.  See notes in section on &quot;tab&quot;.
-	  </td>
-	  <td valign="top" align="center">No</td>
-	</tr>
-	<tr>
-  <tr>
-    <td valign="top">tab</td>
-    <td valign="top">Specifies how tab characters are to be handled.  Valid
-      values for this property are:
-      <ul>
-      <li>add: convert sequences of spaces which span a tab stop to tabs</li>
-      <li>asis: leave tab and space characters alone</li>
-      <li>remove: convert tabs to spaces</li>
-      </ul>
-      Default for this parameter is &quot;asis&quot;.
-	    <p>
-	      <i>N.B.</i>: When the attribute
-	      &quot;<i><b>javafiles</b></i>&quot; (see above) is
-	      &quot;true&quot;, literal TAB characters occurring
-	      within Java string or character constants are never
-	      modified.  This functionality also requires the
-	      recognition of Java-style comments.
-	    </p>
-      <p>
-		<i>N.B.</i>: There is an incompatibility between this
-		and the previous version in the handling of white
-		space at the end of lines.  This version does
-		<i><b>not</b></i> remove trailing whitespace on lines.
-</p>
-      </td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">tablength</td>
-    <td valign="top">TAB character interval. Valid values are between
-	      2 and 80 inclusive.  The default for this parameter is 8.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">eof</td>
-    <td valign="top">Specifies how DOS end of file (control-Z) characters are
-      to be handled.  Valid values for this property are:
-      <ul>
-      <li>add: ensure that there is an EOF character at the end of the file</li>
-      <li>asis: leave EOF characters alone</li>
-      <li>remove: remove any EOF character found at the end</li>
-      </ul>
-      Default is based on the platform on which you are running this task.
-      For Unix platforms, the default is remove.  For DOS based systems
-      (including Windows), the default is asis.
-      </td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>  &lt;fixcrlf srcdir=&quot;${src}&quot;
-       eol=&quot;lf&quot; eof=&quot;remove&quot;
-       includes=&quot;**/*.sh&quot;
-  /&gt;</pre>
-<p>Replaces EOLs with LF characters and removes eof characters from
-	the shell scripts.  Tabs and spaces are left as is.</p>
-<pre>  &lt;fixcrlf srcdir=&quot;${src}&quot;
-       eol=&quot;crlf&quot;
-       includes=&quot;**/*.bat&quot;
-  /&gt;</pre>
-<p>Replaces all EOLs with cr-lf pairs in the batch files.
-Tabs and spaces are left as is.
-EOF characters are left alone if run on
-DOS systems, and are removed if run on Unix systems.</p>
-<pre>  &lt;fixcrlf srcdir=&quot;${src}&quot;
-       tabs=&quot;add&quot;
-       includes=&quot;**/Makefile&quot;
-  /&gt;</pre>
-<p>Sets EOLs according to local OS conventions, and
-converts sequences of spaces and tabs to the minimal set of spaces and
-	tabs which will maintain spacing within the line.  Tabs are
-	set at 8 character intervals.  EOF characters are left alone if
-run on DOS systems, and are removed if run on Unix systems.
-Many versions of make require tabs prior to commands.</p>
-      <pre>  &lt;fixcrlf srcdir=&quot;${src}&quot;
-       tabs=&quot;remove&quot;
-       tablength=&quot;3&quot;
-       eol=&quot;lf&quot;
-       javafiles=&quot;yes&quot;
-       includes=&quot;**/*.java&quot;
-  /&gt;</pre>
-      <p>
-	Converts all EOLs in the included java source files to a
-	single LF.  Replace all TAB characters except those in string
-	or character constants with spaces, assuming a tab width of 3.
-	If run on a unix system, any CTRL-Z EOF characters at the end
-	of the file are removed.  On DOS/Windows, any such EOF
-	characters will be left untouched.
-      </p>
-<pre>  &lt;fixcrlf srcdir=&quot;${src}&quot;
-       tabs=&quot;remove&quot;
-       includes=&quot;**/README*&quot;
-  /&gt;</pre>
-<p>Sets EOLs according to local OS conventions, and
-converts all tabs to spaces, assuming a tab width of 8.
-EOF characters are left alone if run on
-DOS systems, and are removed if run on Unix systems.
-You never know what editor a user will use to browse README's.</p>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/genkey.html b/docs/manual/CoreTasks/genkey.html
deleted file mode 100644
index 8559834..0000000
--- a/docs/manual/CoreTasks/genkey.html
+++ /dev/null
@@ -1,103 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="genkey">GenKey</a></h2>
-<h3>Description</h3>
-<p>Generates a key in keystore.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">alias</td>
-    <td valign="top">the alias to add under</td>
-    <td valign="top" align="center">Yes.</td>
-  </tr>
-  <tr>
-    <td valign="top">storepass</td>
-    <td valign="top">password for keystore integrity.</td>
-    <td valign="top" align="center">Yes.</td>
-  </tr>
-  <tr>
-    <td valign="top">keystore</td>
-    <td valign="top">keystore location</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">storetype</td>
-    <td valign="top">keystore type</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">keypass</td>
-    <td valign="top">password for private key (if different)</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">sigalg</td>
-    <td valign="top">the algorithm to use in signing</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">keyalg</td>
-    <td valign="top">the method to use when generating name-value pair</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">verbose</td>
-    <td valign="top">(true | false) verbose output when signing</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">dname</td>
-    <td valign="top">The distinguished name for entity</td>
-    <td valign="top" align="center">Yes if dname element unspecified</td>
-  </tr>
-  <tr>
-    <td valign="top">validity</td>
-    <td valign="top">(integer) indicates how many days certificate is valid</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">keysize</td>
-    <td valign="top">(integer) indicates the size of key generated</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-
-<p>Alternatively you can specify the distinguished name by creating a sub-element named dname and populating it with param elements that have a name and a value. When using the subelement it is automatically encoded properly and , are replace</p>
-<p>The following two examples are identical: </p>
-
-<h3>Examples</h3>
-<blockquote>
-  <p><code>&lt;genkey alias=&quot;apache-group&quot; storepass=&quot;secret&quot; 
-  dname=&quot;CN=Ant Group, OU=Jakarta Division, O=Apache.org, C=US&quot;/&gt;</code></p>
-</blockquote>
-
-<blockquote>
-  <pre><code>&lt;genkey alias=&quot;apache-group&quot; storepass=&quot;secret&quot; &gt;
-  &lt;dname&gt;
-    &lt;param name=&quot;CN&quot; value=&quot;Ant Group&quot;/&gt;
-    &lt;param name=&quot;OU&quot; value=&quot;Jakarta Division&quot;/&gt;
-    &lt;param name=&quot;O&quot;  value=&quot;Apache.Org&quot;/&gt;
-    &lt;param name=&quot;C&quot;  value=&quot;US&quot;/&gt;
-  &lt;/dname&gt;
-&lt;/genkey&gt;</code></pre>
-</blockquote>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/get.html b/docs/manual/CoreTasks/get.html
deleted file mode 100644
index 7337de5..0000000
--- a/docs/manual/CoreTasks/get.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="get">Get</a></h2>
-<h3>Description</h3>
-<p>Gets a file from a URL. When the verbose option is &quot;on&quot;, this task
-displays a '.' for every 100 Kb retrieved.</p>
-<p>This task should be preferred above the <a href="cvs.html">CVS task</a> when
-doing automated builds. CVS is significantly slower than loading a compressed
-archive with http/ftp.</p>
-
-The <i>usetimestamp</i> option enables you to control downloads so that the remote file is
-only fetched if newer than the local copy. If there is no local copy, the download always takes 
-place. When a file is downloaded, the timestamp of the downloaded file is set to the remote timestamp,
-if  the JVM is Java1.2 or later. 
-NB: This timestamp facility only works on downloads using the HTTP protocol. 
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">src</td>
-    <td valign="top">the URL from which to retrieve a file.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">dest</td>
-    <td valign="top">the file where to store the retrieved file.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">verbose</td>
-    <td valign="top">show verbose progress information (&quot;on&quot;/&quot;off&quot;).</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">ignoreerrors</td>
-    <td valign="top">Log errors but don't treat as fatal.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">usetimestamp</td>
-    <td valign="top">conditionally download a file based on the timestamp of the local copy.
-	HTTP only</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>  &lt;get src=&quot;http://jakarta.apache.org/&quot; dest=&quot;help/index.html&quot;/&gt;</pre>
-<p>Gets the index page of http://jakarta.apache.org/, and stores it in the file <code>help/index.html</code>.</p>
-
-<pre>  &lt;get src=&quot;http://jakarta.apache.org/builds/tomcat/nightly/ant.zip&quot; 
-	dest=&quot;optional.jar&quot; 
-	verbose=&quot;true&quot;
-	usetimestamp=&quot;true&quot;/&gt;</pre>
-<p>
-Gets the nightly ant build from the tomcat distribution, if the local copy
-is missing or out of date. Uses the verbose option 
-for progress information.
-</p>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/gunzip.html b/docs/manual/CoreTasks/gunzip.html
deleted file mode 100644
index b18fcd6..0000000
--- a/docs/manual/CoreTasks/gunzip.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="gunzip">GUnzip</a></h2>
-<h3>Description</h3>
-<p>Expands a GZip file.</p>
-
-<p>If <i>dest</i> is a directory the name of the destination file is
-the same as <i>src</i> (with the &quot;.gz&quot; extension removed if
-present). If <i>dest</i> is omitted, the parent dir of <i>src</i> is
-taken. The file is only expanded if the source file is newer than the
-destination file, or when the destination file does not exist.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">src</td>
-    <td valign="top">the file to expand.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">dest</td>
-    <td valign="top">the destination file or directory.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-  <p><code>&lt;gunzip src=&quot;test.tar.gz&quot;/&gt;</code></p>
-</blockquote>
-<p>expands <i>test.tar.gz</i> to <i>test.tar</i></p>
-<blockquote>
-  <p><code>&lt;gunzip src=&quot;test.tar.gz&quot; dest=&quot;test2.tar&quot;/&gt;</code></p>
-</blockquote>
-<p>expands <i>test.tar.gz</i> to <i>test2.tar</i></p>
-<blockquote>
-  <p><code>&lt;gunzip src=&quot;test.tar.gz&quot; dest=&quot;subdir&quot;/&gt;</code></p>
-</blockquote>
-<p>expands <i>test.tar.gz</i> to <i>subdir/test.tar</i> (assuming
-subdir is a directory).</p>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/gzip.html b/docs/manual/CoreTasks/gzip.html
deleted file mode 100644
index 9baf72b..0000000
--- a/docs/manual/CoreTasks/gzip.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="gzip">GZip</a></h2>
-<h3>Description</h3>
-<p>GZips a file.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">src</td>
-    <td valign="top">the file to gzip.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">zipfile</td>
-    <td valign="top">the destination file.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-  <p><code>&lt;gzip src=&quot;test.tar&quot; zipfile=&quot;test.tar.gz&quot;
-  /&gt;</code></p>
-</blockquote>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/jar.html b/docs/manual/CoreTasks/jar.html
deleted file mode 100644
index 74d0ca2..0000000
--- a/docs/manual/CoreTasks/jar.html
+++ /dev/null
@@ -1,170 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="jar">Jar</a></h2>
-<h3>Description</h3>
-<p>Jars a set of files.</p>
-<p>The <i>basedir</i> attribute is the reference directory from where to jar.</p>
-<p>Note that file permissions will not be stored in the resulting jarfile.</p>
-<p>It is possible to refine the set of files that are being jarred. This can be
-done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
-attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
-have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
-the files you want to have excluded. This is also done with patterns. And
-finally with the <i>defaultexcludes</i> attribute, you can specify whether you
-want to use default exclusions or not. See the section on <a
-href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
-inclusion/exclusion of files works, and how to write patterns.</p>
-<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
-supports all attributes of <code>&lt;fileset&gt;</code>
-(<code>dir</code> becomes <code>basedir</code>) as well as the nested
-<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
-<code>&lt;patternset&gt;</code> elements.</p>
-<p>You can also use nested file sets for more flexibility, and specify
-multiple ones to merge together different trees of files into one JAR.
-The extended fileset attributes from the zip task are also available
-in the jar task.
-See the <a href="zip.html">Zip</a> task for more details and examples.</p>
-<p>If the manifest is omitted, a simple one will be supplied by Ant.
-You should not include <samp>META-INF/MANIFEST.MF</samp> in your set of files.</p>
-<p>The <code>whenempty</code> parameter controls what happens when no files match.
-If <code>create</code> (the default), the JAR is created anyway with only a manifest.
-If <code>skip</code>, the JAR is not created and a warning is issued.
-If <code>fail</code>, the JAR is not created and the build is halted with an error.</p>
-<p>(The Jar task is a shortcut for specifying the manifest file of a JAR file. 
-The same thing can be accomplished by using the <i>fullpath</i>
-attribute of a zipfileset in a Zip task. The one difference is that if the
-<i>manifest</i> attribute is not specified, the Jar task will 
-include an empty one for you.)</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">jarfile</td>
-    <td valign="top">the jar-file to create.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">basedir</td>
-    <td valign="top">the directory from which to jar the files.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">compress</td>
-    <td valign="top">Not only store data but also compress them, defaults to true</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">encoding</td>
-    <td valign="top">The character encoding to use for filenames
-      inside the archive.  Defaults to UTF8. <strong>It is not
-      recommended to change this value as the created archive will most
-      likely be unreadable for Java otherwise.</strong></td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">filesonly</td>
-    <td valign="top">Store only file entries, defaults to false</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      included. All files are included when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an include pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      excluded. No files (except default excludes) are excluded when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an exclude pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes should be used or not
-      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">manifest</td>
-    <td valign="top">the manifest file to use.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">whenempty</td>
-    <td valign="top">Behavior to use if no files match.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Nested elements</h3>
-<h4>metainf</h4>
-<p>The nested <code>metainf</code> element specifies a <a
-href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
-end up in the <code>META-INF</code> directory of the jar file. If this
-fileset includes a file named <code>MANIFEST.MF</code>, the file is
-ignored and you will get a warning.</p>
-<h3>Examples</h3>
-<pre>  &lt;jar jarfile=&quot;${dist}/lib/app.jar&quot; basedir=&quot;${build}/classes&quot;/&gt;</pre>
-<p>jars all files in the <code>${build}/classes</code> directory into a file
-called <code>app.jar</code> in the <code>${dist}/lib</code> directory.</p>
-<pre>  &lt;jar jarfile=&quot;${dist}/lib/app.jar&quot;
-       basedir=&quot;${build}/classes&quot;
-       excludes=&quot;**/Test.class&quot;
-  /&gt;</pre>
-<p>jars all files in the <code>${build}/classes</code> directory into a file
-called <code>app.jar</code> in the <code>${dist}/lib</code> directory. Files
-with the name <code>Test.class</code> are excluded.</p>
-<pre>  &lt;jar jarfile=&quot;${dist}/lib/app.jar&quot;
-       basedir=&quot;${build}/classes&quot;
-       includes=&quot;mypackage/test/**&quot;
-       excludes=&quot;**/Test.class&quot;
-  /&gt;</pre>
-<p>jars all files in the <code>${build}/classes</code> directory into a file
-called <code>app.jar</code> in the <code>${dist}/lib</code> directory. Only
-files under the directory <code>mypackage/test</code> are used, and files with
-the name <code>Test.class</code> are excluded.</p>
-<pre>  &lt;jar jarfile=&quot;${dist}/lib/app.jar&quot;&gt;
-    &lt;fileset dir=&quot;${build}/classes&quot;
-             excludes=&quot;**/Test.class&quot;
-    /&gt;
-    &lt;fileset dir=&quot;${src}/resources&quot;/&gt;
-  &lt;/jar&gt;</pre>
-<p>jars all files in the <code>${build}/classes</code> directory and also
-in the <code>${src}/resources</code> directory together into a file
-called <code>app.jar</code> in the <code>${dist}/lib</code> directory.
-Files with the name <code>Test.class</code> are excluded.
-If there are files such as <code>${build}/classes/mypackage/MyClass.class</code>
-and <code>${src}/resources/mypackage/image.gif</code>, they will appear
-in the same directory in the JAR (and thus be considered in the same package
-by Java).</p>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/java.html b/docs/manual/CoreTasks/java.html
deleted file mode 100644
index 8ffa6ec..0000000
--- a/docs/manual/CoreTasks/java.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="java">Java</a></h2>
-<h3>Description</h3>
-<p>Executes a Java class within the running (Ant) VM or forks another VM if
-specified.</p>
-<p>Be careful that the executed class doesn't call System.exit(), because it
-will terminate the VM and thus Ant. In case this happens, it's highly suggested
-that you set the fork attribute so that System.exit() stops the other VM and not
-the one that is currently running Ant.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">classname</td>
-    <td valign="top">the Java class to execute.</td>
-    <td align="center" valign="top">Either jar or classname</td>
-  </tr>
-  <tr>
-    <td valign="top">jar</td>
-    <td valign="top">the location of the jar file to execute (must have a Main-Class entry in the manifest). Fork must be set to true if this option is selected.</td>
-    <td align="center" valign="top">Either jar or classname</td>
-  </tr>
-  <tr>
-    <td valign="top">args</td>
-    <td valign="top">the arguments for the class that is
-      executed. <b>deprecated, use nested <code>&lt;arg&gt;</code>
-      elements instead.</b></td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">classpath</td>
-    <td valign="top">the classpath to use.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">classpathref</td>
-    <td valign="top">the classpath to use, given as <a
-      href="../using.html#references">reference</a> to a PATH defined elsewhere.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">fork</td>
-    <td valign="top">if enabled triggers the class execution in another VM
-      (disabled by default)</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">jvm</td>
-    <td valign="top">the command used to invoke the Java Virtual Machine,
-      default is 'java'.  The command is resolved by java.lang.Runtime.exec().
-      Ignored if fork is disabled.
-    </td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">jvmargs</td>
-    <td valign="top">the arguments to pass to the forked VM (ignored
-      if fork is disabled). <b>deprecated, use nested
-      <code>&lt;jvmarg&gt;</code> elements instead.</b></td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">maxmemory</td>
-    <td valign="top">Max amount of memory to allocate to the forked VM
-      (ignored if fork is disabled)</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">failonerror</td>
-    <td valign="top">Stop the buildprocess if the command exits with a
-      returncode other than 0. Only available if fork is true.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">dir</td>
-    <td valign="top">The directory to invoke the VM in.  (ignored if
-      fork is disabled)</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">output</td>
-    <td valign="top">Name of a file to write the output to.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<h3>Parameters specified as nested elements</h3>
-<h4>arg and jvmarg</h4>
-<p>Use nested <code>&lt;arg&gt;</code> and <code>&lt;jvmarg&gt;</code>
-elements to specify arguments for the or the forked VM. See <a
-href="../using.html#arg">Command line arguments</a>.</p>
-<h4>sysproperty</h4>
-<p>Use nested <code>&lt;sysproperty&gt;</code>
-elements to specify system properties required by the class. 
-These properties will be made available to the VM during the execution
-of the class (either ANT's VM or the forked VM). The attributes
-for this element are the same as for <a href="exec.html#env">environment
-variables</a>.</p>
-<h4>classpath</h4>
-<p><code>Java</code>'s <i>classpath</i> attribute is a <a
-href="../using.html#path">PATH like structure</a> and can also be set via a nested
-<i>classpath</i> element.</p>
-<h5>Example</h5>
-<pre>  
-       &lt;java classname=&quot;test.Main&quot; &gt;
-         &lt;arg value=&quot;-h&quot;/&gt; 
-         &lt;classpath&gt;
-           &lt;pathelement location=&quot;\test.jar&quot;/&gt;
-           &lt;pathelement path=&quot;${java.class.path}&quot;/&gt;
-         &lt;/classpath&gt;
-       &lt;/java&gt;
-</pre>
-<h3>Examples</h3>
-<pre>  &lt;java classname=&quot;test.Main&quot;/&gt;</pre>
-<pre>  &lt;java classname=&quot;test.Main&quot;
-        fork=&quot;yes&quot; &gt;
-    &lt;sysproperty key=&quot;DEBUG&quot; value=&quot;true&quot;/&gt; 
-    &lt;arg value=&quot;-h&quot;/&gt; 
-    &lt;jvmarg value=&quot;-Xrunhprof:cpu=samples,file=log.txt,depth=3&quot;/&gt; 
-  &lt;/java&gt;
-</pre>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/javac.html b/docs/manual/CoreTasks/javac.html
deleted file mode 100644
index 9387ed6..0000000
--- a/docs/manual/CoreTasks/javac.html
+++ /dev/null
@@ -1,278 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="javac">Javac</a></h2>
-<h3>Description</h3>
-<p>Compiles a source tree within the running (Ant) VM.</p>
-<p>The source and destination directory will be recursively scanned for Java
-source files to compile. Only Java files that have no corresponding class file
-or where the class file is older than the java file will be compiled.</p>
-<p>Note: Ant uses only the names of the source and class files to find
-the classes that need a rebuild. It will not scan the source and therefor
-will have no knowledge about nested classes, classes that are named different
-from the source file and so on.</p>
-<p>The directory structure of the source tree should follow the package
-hierarchy.</p>
-<p>It is possible to refine the set of files that are being compiled/copied.
-This can be done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
-attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
-have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
-the files you want to have excluded. This is also done with patterns. And
-finally with the <i>defaultexcludes</i> attribute, you can specify whether you
-want to use default exclusions or not. See the section on <a
-href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
-inclusion/exclusion of files works, and how to write patterns.</p>
-<p>It is possible to use different compilers. This can be selected with the
-&quot;build.compiler&quot; property. There are four choices:</p>
-<ul>
-  <li>classic (the standard compiler of JDK 1.1/1.2) - javac1.1 and
-     javac1.2 can be used as aliases</li>
-  <li>modern (the standard compiler of JDK 1.3/1.4) - javac1.3 and
-     javac1.4 can be used as aliases</li>
-  <li>jikes (the <a
-    href="http://oss.software.ibm.com/developerworks/opensource/jikes/project" target="_top">Jikes</a>
-    compiler)</li>
-  <li>jvc (the Command-Line Compiler from Microsoft's SDK for Java /
-    Visual J++) - microsoft can be used as an alias</li>
-  <li>kjc (the <a href="http://www.dms.at/kopi/" target="_top">kopi</a>
-    compiler)</li>
-  <li>gcj (the gcj compiler from gcc)</li>
-  <li>sj (Symantec java compiler) - symantec can be used as an alias</li>
-  <li>extJavac (run either modern or classic in a JVM of its own)</li>
-</ul>
-<p>For JDK 1.1/1.2, classic is the default. For JDK 1.3/1.4, modern is the default.
-If you wish to use a different compiler interface than one of the four
-supplied, write a class that implements the CompilerAdapter interface
-(package org.apache.tools.ant.taskdefs.compilers). Supply the full
-classname in the &quot;build.compiler&quot; property.
-</p>
-<p>The fork attribute overrides the build.compiler setting and expects
-a JDK1.1 or higher to be set in java.home.
-</p>
-<p>This task will drop all entries that point to non-existant
-files/directories from the CLASSPATH it passes to the compiler.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">srcdir</td>
-    <td valign="top">location of the java files. (See Notes at the end)</td>
-    <td align="center" valign="top">Yes, unless nested <code>&lt;src&gt;</code> elements are present.</td>
-  </tr>
-  <tr>
-    <td valign="top">destdir</td>
-    <td valign="top">location to store the class files.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma-separated list of patterns of files that must be
-      included; all files are included when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top">the name of a file that contains
-      include patterns.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma-separated list of patterns of files that must be
-      excluded; no files (except default excludes) are excluded when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file that contains
-      exclude patterns.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes should be used
-      (<code>yes</code> | <code>no</code>); default excludes are used when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">classpath</td>
-    <td valign="top">the classpath to use.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">bootclasspath</td>
-    <td valign="top">location of bootstrap class files.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">classpathref</td>
-    <td valign="top">the classpath to use, given as a
-      <a href="../using.html#references">reference</a> to a PATH defined elsewhere.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">bootclasspathref</td>
-    <td valign="top">location of bootstrap class files, given as a
-      <a href="../using.html#references">reference</a> to a PATH defined elsewhere.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">extdirs</td>
-    <td valign="top">location of installed extensions.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">encoding</td>
-    <td valign="top">encoding of source files. (gcj doesn't support
-      this option yet)</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">debug</td>
-    <td valign="top">indicates whether source should be compiled with debug
-      information; defaults to <code>off</code>.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">optimize</td>
-    <td valign="top">indicates whether source should be compiled with
-      optimization; defaults to <code>off</code>.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">deprecation</td>
-    <td valign="top">indicates whether source should be compiled with
-      deprecation information; defaults to <code>off</code>.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">target</td>
-    <td valign="top">generate class files for specific VM version (e.g.,
-	 <code>1.1</code> or <code>1.2</code>).</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">verbose</td>
-    <td valign="top">asks the compiler for verbose output.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">depend</td> <td valign="top">enables dependency-tracking
-      for compilers that support this (jikes and classic)</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includeAntRuntime</td> 
-    <td valign="top">whether to include the Ant run-time libraries;
-      defaults to <code>yes</code>.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includeJavaRuntime</td> 
-    <td valign="top">whether to include the default run-time
-      libraries from the executing VM; defaults to <code>no</code>.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">fork</td> 
-    <td valign="top">whether to execute Javac using the JDK compiler externally;
-    defaults to <code>no</code>.</td>
-    <td align="center" valign="top">No</td>
-  </tr>  
-  <tr>
-    <td valign="top">failonerror</td> <td valign="top">
-        indicates whether the build will continue even if there are compilation errors; defaults to <code>true</code>.
-    </td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-
-<h3>Parameters specified as nested elements</h3>
-<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
-supports all attributes of <code>&lt;fileset&gt;</code>
-(<code>dir</code> becomes <code>srcdir</code>) as well as the nested
-<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
-<code>&lt;patternset&gt;</code> elements.</p>
-<h4><code>src</code>, <code>classpath</code>, <code>bootclasspath</code> and <code>extdirs</code></h4>
-<p><code>Javac</code>'s <i>srcdir</i>, <i>classpath</i>,
-<i>bootclasspath</i> and <i>extdirs</i> attributes are <a
-href="../using.html#path">path-like structures</a> and can also be set via nested
-<code>&lt;src&gt</code>,
-<code>&lt;classpath&gt</code>,
-<code>&lt;bootclasspath&gt</code> and
-<code>&lt;extdirs&gt</code> elements, respectively.</p>
-
-<h3>Examples</h3>
-<pre>  &lt;javac srcdir=&quot;${src}&quot;
-         destdir=&quot;${build}&quot;
-         classpath=&quot;xyz.jar&quot;
-         debug=&quot;on&quot;
-  /&gt;</pre>
-<p>compiles all <code>.java</code> files under the <code>${src}</code>
-directory, and stores
-the <code>.class</code> files in the <code>${build}</code> directory.
-The classpath used contains <code>xyz.jar</code>, and debug information is on.</p>
-<pre>  &lt;javac srcdir=&quot;${src}&quot;
-         destdir=&quot;${build}&quot;
-         includes=&quot;mypackage/p1/**,mypackage/p2/**&quot;
-         excludes=&quot;mypackage/p1/testpackage/**&quot;
-         classpath=&quot;xyz.jar&quot;
-         debug=&quot;on&quot;
-  /&gt;</pre>
-<p>compiles <code>.java</code> files under the <code>${src}</code>
-directory, and stores the
-<code>.class</code> files in the <code>${build}</code> directory.
-The classpath used contains <code>xyz.jar</code>, and debug information is on.
-Only files under <code>mypackage/p1</code> and <code>mypackage/p2</code> are
-used. Files in the <code>mypackage/p1/testpackage</code> directory are excluded
-from compilation.</p>
-
-<pre>  &lt;javac srcdir=&quot;${src}:${src2}&quot;
-         destdir=&quot;${build}&quot;
-         includes=&quot;mypackage/p1/**,mypackage/p2/**&quot;
-         excludes=&quot;mypackage/p1/testpackage/**&quot;
-         classpath=&quot;xyz.jar&quot;
-         debug=&quot;on&quot;
-  /&gt;</pre>
-
-<p>is the same as the previous example, with the addition of a second
-source path, defined by
-the property <code>src2</code>. This can also be represented using nested
-<code>&lt;src&gt;</code> elements as follows:</p>
-
-<pre>  &lt;javac destdir=&quot;${build}&quot;
-         classpath=&quot;xyz.jar&quot;
-         debug=&quot;on&quot;&gt;
-    &lt;src path=&quot;${src}&quot;/&gt;
-    &lt;src path=&quot;${src2}&quot;/&gt;
-    &lt;include name=&quot;mypackage/p1/**&quot;/&gt;
-    &lt;include name=&quot;mypackage/p2/**&quot;/&gt;
-    &lt;exclude name=&quot;mypackage/p1/testpackage/**&quot;/&gt;
-  &lt;/javac&gt;</pre>
-
-<p><b>Note:</b> If you are using Ant on Windows and a new DOS window pops up
-for every use of an external compiler, this may be a problem of the JDK you are using.
-This problem may occur with all JDKs &lt; 1.2.</p>
-
-<p><b>Note:</b> If you wish to compile only source-files located in some packages below a
-common root you should not include these packages in the srcdir-attribute. Use include/exclude-attributes
-or elements to filter for these packages. If you include part of your package-structure inside the srcdir-attribute 
-(or nested src-elements) Ant will start to recompile your sources everytime you call it.</p>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/javadoc.html b/docs/manual/CoreTasks/javadoc.html
deleted file mode 100644
index c4a3b30..0000000
--- a/docs/manual/CoreTasks/javadoc.html
+++ /dev/null
@@ -1,577 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="javadoc">Javadoc/<i>Javadoc2</i></a></h2>
-<h3>Description</h3>
-<p>Generates code documentation using the javadoc tool.</p>
-<p>The source directory will be recursively scanned for Java source files to process
-but only those matching the inclusion rules, and not matching the exclusions rules
-will be passed to the javadoc tool. This
-allows wildcards to be used to choose between package names, reducing verbosity
-and management costs over time. This task, however, has no notion of
-&quot;changed&quot; files, unlike the <a href="javac.html">javac</a> task. This means
-all packages will be processed each time this task is run. In general, however,
-this task is used much less frequently.</p>
-<p>This task works seamlessly between different javadoc versions (1.1 and 1.2),
-with the obvious restriction that the 1.2 attributes will be ignored if run in a
-1.1 VM.</p>
-<p>NOTE: since javadoc calls System.exit(), javadoc cannot be run inside the
-same VM as ant without breaking functionality. For this reason, this task 
-always forks the VM. This overhead is not significant since javadoc is normally a heavy
-application and will be called infrequently.</p>
-<p>NOTE: the packagelist attribute allows you to specify the list of packages to 
-document outside of the Ant file. It's a much better practice to include everything 
-inside the build.xml file. This option was added in order to make it easier to 
-migrate from regular makefiles, where you would use this option of javadoc. 
-The packages listed in packagelist are not checked, so the task performs even 
-if some packages are missing or broken. Use this option if you wish to convert from 
-an existing makefile. Once things are running you should then switch to the regular 
-notation. </p>
-
-<p><i><b>DEPRECATION:</b> the javadoc2 task simply points to the javadoc task and it's
-there for back compatibility reasons. Since this task will be removed in future
-versions, you are strongly encouraged to use <a href="javadoc.html">javadoc</a>
-instead.</i></p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Availability</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">sourcepath</td>
-    <td valign="top">Specify where to find source files</td>
-    <td align="center" valign="top">all</td>
-    <td align="center" rowspan="2">At least one of the two or nested
-      <code>&lt;sourcepath&gt;</code></td>
-  </tr>
-  <tr>
-    <td valign="top">sourcepathref</td>
-    <td valign="top">Specify where to find source files by <a
-      href="../using.html#references">reference</a> to a PATH defined elsewhere.</td>
-    <td align="center" valign="top">all</td>
-  </tr>
-  <tr>
-    <td valign="top">destdir</td>
-    <td valign="top">Destination directory for output files</td>
-    <td align="center" valign="top">all</td>
-    <td align="center" valign="top">Yes, unless a doclet has been specified.</td>
-  </tr>
-  <tr>
-    <td valign="top">maxmemory</td>
-    <td valign="top">Max amount of memory to allocate to the javadoc VM</td>
-    <td align="center" valign="top">all</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">sourcefiles</td>
-    <td valign="top">Comma separated list of source files</td>
-    <td align="center" valign="top">all</td>
-    <td align="center" valign="middle" rowspan="2">at least one of the two
-    or nested <code>&lt;source&gt;</code> or <code>&lt;package&gt;</code></td>
-  </tr>
-  <tr>
-    <td valign="top">packagenames</td>
-    <td valign="top">Comma separated list of package files (with terminating
-      wildcard)</td>
-    <td align="center" valign="top">all</td>
-  </tr>
-  <tr>
-    <td valign="top">packageList</td>
-    <td valign="top">The name of a file containing the packages to process</td>
-    <td align="center" valign="top">all</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">classpath</td>
-    <td valign="top">Specify where to find user class files</td>
-    <td align="center" valign="top">all</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">Bootclasspath</td>
-    <td valign="top">Override location of class files loaded by the bootstrap
-      class loader</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">classpathref</td>
-    <td valign="top">Specify where to find user class files by <a
-      href="../using.html#references">reference</a> to a PATH defined elsewhere.</td>
-    <td align="center" valign="top">all</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">bootclasspathref</td>
-    <td valign="top">Override location of class files loaded by the
-      bootstrap class loader by <a href="../using.html#references">reference</a> to a
-      PATH defined elsewhere.</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">Extdirs</td>
-    <td valign="top">Override location of installed extensions</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">Overview</td>
-    <td valign="top">Read overview documentation from HTML file</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">access</td>
-    <td valign="top">Access mode: one of <code>public</code>, <code>protected</code>,
-                     <code>package</code>, or <code>private</code></td>
-    <td align="center" valign="top">all</td>
-    <td align="center" valign="top">No (default <code>protected</code>)</td>
-  </tr>
-  <tr>
-    <td valign="top">Public</td>
-    <td valign="top">Show only public classes and members</td>
-    <td align="center" valign="top">all</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">Protected</td>
-    <td valign="top">Show protected/public classes and members (default)</td>
-    <td align="center" valign="top">all</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">Package</td>
-    <td valign="top">Show package/protected/public classes and members</td>
-    <td align="center" valign="top">all</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">Private</td>
-    <td valign="top">Show all classes and members</td>
-    <td align="center" valign="top">all</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">Old</td>
-    <td valign="top">Generate output using JDK 1.1 emulating doclet</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">Verbose</td>
-    <td valign="top">Output messages about what Javadoc is doing</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">Locale</td>
-    <td valign="top">Locale to be used, e.g. en_US or en_US_WIN</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">Encoding</td>
-    <td valign="top">Source file encoding name</td>
-    <td align="center" valign="top">all</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">Version</td>
-    <td valign="top">Include @version paragraphs</td>
-    <td align="center" valign="top">all</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">Use</td>
-    <td valign="top">Create class and package usage pages</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">Author</td>
-    <td valign="top">Include @author paragraphs</td>
-    <td align="center" valign="top">all</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">Splitindex</td>
-    <td valign="top">Split index into one file per letter</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">Windowtitle</td>
-    <td valign="top">Browser window title for the documentation (text)</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">Doctitle</td>
-    <td valign="top">Include title for the package index(first) page (html-code)</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">Header</td>
-    <td valign="top">Include header text for each page (html-code)</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">Footer</td>
-    <td valign="top">Include footer text for each page (html-code)</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">bottom</td>
-    <td valign="top">Include bottom text for each page (html-code)</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">link</td>
-    <td valign="top">Create links to javadoc output at the given URL</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">linkoffline</td>
-    <td valign="top">Link to docs at &lt;url&gt; using package list at
-      &lt;url2&gt; - separate the URLs by using a space character.</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">group</td>
-    <td valign="top">Group specified packages together in overview
-      page.  The format is as described <a href="#groupattribute">below</a>.</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">nodeprecated</td>
-    <td valign="top">Do not include @deprecated information</td>
-    <td align="center" valign="top">all</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">nodeprecatedlist</td>
-    <td valign="top">Do not generate deprecated list</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">notree</td>
-    <td valign="top">Do not generate class hierarchy</td>
-    <td align="center" valign="top">all</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">noindex</td>
-    <td valign="top">Do not generate index</td>
-    <td align="center" valign="top">all</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">nohelp</td>
-    <td valign="top">Do not generate help link</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">nonavbar</td>
-    <td valign="top">Do not generate navigation bar</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">serialwarn</td>
-    <td valign="top">FUTURE: Generate warning about @serial tag</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">helpfile</td>
-    <td valign="top">FUTURE: Specifies the HTML help file to use</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">stylesheetfile</td>
-    <td valign="top">Specifies the CSS stylesheet to use</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">charset</td>
-    <td valign="top">FUTURE: Charset for cross-platform viewing of generated
-      documentation</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">docencoding</td>
-    <td valign="top">Output file encoding name</td>
-    <td align="center" valign="top">1.1</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">doclet</td>
-    <td valign="top">Specifies the class file that starts the doclet used in generating the documentation.</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">docletpath</td>
-    <td valign="top">Specifies the path to the doclet class file that is specified with the -doclet option.</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">docletpathref</td>
-    <td valign="top">Specifies the path to the doclet class file that
-      is specified with the -doclet option by <a
-      href="../using.html#references">reference</a> to a PATH defined elsewhere.</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">additionalparam</td>
-    <td valign="top">Lets you add additional parameters to the javadoc
-            command line. Useful for doclets. Parameters containing
-            spaces need to be quoted using &amp;quot;.</td>
-    <td align="center" valign="top">1.2</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">failonerror</td>
-    <td valign="top">Stop the buildprocess if the command exits with a
-      returncode other than 0.</td>
-    <td align="center" valign="top">all</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludepackagenames</td>
-    <td valign="top">comma separated list of packages you don't want
-      docs for.</td>
-    <td align="center" valign="top">all</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes should be used
-      (<code>yes</code> | <code>no</code>); default excludes are used when omitted.</td>
-    <td align="center" valign="top">all</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">useexternalfile</td>
-    <td valign="top">indicates whether the sourcefile name specified
-      in srcfiles or as nested source elements should be written to a
-      temporary file to make the command line shorter. Also applies to
-      the package names specified via the packagenames attribute or
-      nested package elements.
-      (<code>yes</code> | <code>no</code>). Default is no.</td>
-    <td align="center" valign="top">all</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-
-<h4><a name="groupattribute">Format of the group attribute</a></h4>
-<p>The arguments are comma-delimited. Each single argument is 2
-space-delimited strings, where the first one is the group's title and
-the second one a colon delimited list of packages.</p>
-<p>If you need to specify more than one group, or a group whose title
-contains a comma or a space character, using <a
-href="#groupelement">nested group elements</a> is highly
-recommended.</p>
-<p>E.g., 
-<pre>    group=&quot;XSLT_Packages org.apache.xalan.xslt*,XPath_Packages org.apache.xalan.xpath*&quot;
-</pre></p>
-
-<h3>Parameters specified as nested elements</h3>
-
-<h4>package</h4>
-<p>Same as one entry in the list given by <code>packagenames</code>.</p>
-
-<h5>Parameters</h5>
-<table width="60%" border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">name</td>
-    <td valign="top">The package name (may be a wildcard)</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-</table>
-  
-<h4>excludepackage</h4>
-<p>Same as one entry in the list given by <code>excludepackagenames</code>.</p>
-
-<h5>Parameters</h5>
-Same as for <code>package</code>.
-
-<h4>source</h4>
-<p>Same as one entry in the list given by <code>sourcefiles</code>.</p>
-
-<h5>Parameters</h5>
-<table width="60%" border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">file</td>
-    <td valign="top">The source file to document</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-</table>
-
-<h4>doctitle</h4>
-
-<p>Same as the <code>doctitle</code> attribute, but you can nest text
-inside the element this way.</p>
-
-<h4>header</h4>
-
-<p>Similar to <code>&lt;doctitle&gt;</code>.</p>
-
-<h4>footer</h4>
-
-<p>Similar to <code>&lt;doctitle&gt;</code>.</p>
-
-<h4>bottom</h4>
-
-<p>Similar to <code>&lt;doctitle&gt;</code>.</p>
-
-<h4>link</h4>
-<p>Create link to javadoc output at the given URL. This performs the
-same role as the link and linkoffline attributes. You can use either
-syntax (or both at once), but with the nested elements you can easily
-specify multiple occurrences of the arguments.</p>
-
-<h5>Parameters</h5>
-<table width="60%" border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">href</td>
-    <td valign="top">The URL for the external documentation you wish to link to</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">offline</td>
-    <td valign="top">True if this link is not available online at the time of 
-                     generating the documentation</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">packagelistLoc</td>
-    <td valign="top">The location to the directory containing the package-list file for
-                     the external documentation</td>
-    <td align="center" valign="top">Only if the offline attribute is true</td>
-  </tr>
-</table>
-  
-<h4><a name="groupelement">group</a></h4> 
-<p>Separates packages on the overview page into whatever groups you
-specify, one group per table. This performs the same role as the group
-attribute. You can use either syntax (or both at once), but with the
-nested elements you can easily specify multiple occurrences of the
-arguments.</p>
-
-<h5>Parameters</h5>
-<table width="60%" border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">title</td>
-    <td valign="top">Title of the group</td>
-    <td align="center" valign="top">Yes, unless nested <code>&lt;title&gt;</code> given</td>
-  </tr>
-  <tr>
-    <td valign="top">packages</td>
-    <td valign="top">List of packages to include in that group. Multiple packages are separated with ':'.</td>
-    <td align="center" valign="top">Yes, unless nested <code>&lt;package&gt;</code>s given</td>
-  </tr>
-</table>
-
-<p>The title may be specified as a nested <code>&lt;title&gt;</code> element
-with text contents, and the packages may be listed with nested
-<code>&lt;package&gt;</code> elements as for the main task.
-
-<h4>doclet</h4>
-<p>The doclet nested element is used to specify the doclet that javadoc will 
-use to process the input source files. A number of the standard javadoc arguments
-are actually arguments of the standard doclet. If these are specified in the javadoc
-task's attributes, they will be passed to the doclet specified in the 
-<code>&lt;doclet&gt;</code> nested element. Such attributes should only be specified, 
-therefore, if they can be interpreted by the doclet in use.</p>
-
-<p>If the doclet requires additional parameters, these can be specified with
-<code>&lt;param&gt;</code> elements within the <code>&lt;doclet&gt;</code> 
-element. These paramaters are restricted to simple strings. An example usage
-of the doclet element is shown below:</p>
-
-<pre>  &lt;javadoc ...&gt;
-     &lt;doclet name=&quot;theDoclet&quot;
-             path=&quot;path/to/theDoclet&quot;&gt;
-        &lt;param name=&quot;-foo&quot; value=&quot;foovalue&quot;/&gt;
-        &lt;param name=&quot;-bar&quot; value=&quot;barvalue&quot;/&gt;
-     &lt;/doclet&gt;
-  &lt;/javadoc&gt;
-</pre>
-
-<h4>sourcepath, classpath and bootclasspath</h4>
-<p><code>Javadoc</code>'s <i>sourcepath</i>, <i>classpath</i> and
-<i>bootclasspath</i> attributes are <a href="../using.html#path">PATH like
-structure</a> and can also be set via nested <i>sourcepath</i>,
-<i>classpath</i> and <i>bootclasspath</i> elements
-respectively.</p>
-
-<h3>Example</h3>
-<pre>  &lt;javadoc packagenames=&quot;com.dummy.test.*&quot;
-           sourcepath=&quot;src&quot;
-           excludepackagenames=&quot;com.dummy.test.doc-files.*&quot;
-           defaultexcludes=&quot;yes&quot;
-           destdir=&quot;docs/api&quot;
-           author=&quot;true&quot;
-           version=&quot;true&quot;
-           use=&quot;true&quot;
-           windowtitle=&quot;Test API&quot;&gt;
-    &lt;doctitle&gt;&lt;![CDATA[&lt;h1&gt;Test&lt;/h1&gt;]]&gt;&lt;/doctitle&gt;
-    &lt;bottom&gt;&lt;![CDATA[&lt;i&gt;Copyright &amp;#169; 2000 Dummy Corp. All Rights Reserved.&lt;/i&gt;]]&gt;&lt;/bottom&gt;
-    &lt;group title=&quot;Group 1 Packages&quot; packages=&quot;com.dummy.test.a*&quot;/&gt;
-    &lt;group title=&quot;Group 2 Packages&quot; packages=&quot;com.dummy.test.b*:com.dummy.test.c*&quot;/&gt;
-    &lt;link offline=&quot;true&quot; href=&quot;http://java.sun.com/products/jdk/1.2/docs/api/&quot; packagelistLoc=&quot;C:\tmp&quot;/&gt;
-    &lt;link href=&quot;http://developer.java.sun.com/developer/products/xml/docs/api/&quot;/&gt;
-  &lt/javadoc&gt;</pre>
-  
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/mail.html b/docs/manual/CoreTasks/mail.html
deleted file mode 100644
index 61da405..0000000
--- a/docs/manual/CoreTasks/mail.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="mail">Mail</a></h2>
-<h3>Description</h3>
-<p>A task to send SMTP email.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">from</td>
-    <td valign="top">Email address of sender.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">tolist</td>
-    <td valign="top">Comma-separated list of recipients.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">message</td>
-    <td valign="top">Message to send in the body of the email.</td>
-    <td align="center" valign="middle" rowspan="2">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">files</td>
-    <td valign="top">Filename(s) of text to send in the body of the email. 
-	Multiple files are comma-separated.</td>
-  </tr>
-  <tr>
-    <td valign="top">mailhost</td>
-    <td valign="top">Host name of the mail server.</td>
-    <td align="center" valign="top">No, default to &quot;localhost&quot;</td>
-  </tr>
-  <tr>
-    <td valign="top">subject</td>
-    <td valign="top">Email subject line.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>
-  &lt;mail from=&quot;me&quot; tolist=&quot;you&quot; subject=&quot;Results of nightly build&quot;
-        files=&quot;build.log&quot;/&gt;</pre>
-<p>Sends an eMail from <i>me</i> to <i>you</i> with a subject of 
-<i>Results of nightly build</i> and includes the contents of <i>build.log</i>
-in the body of the message.</p>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/mkdir.html b/docs/manual/CoreTasks/mkdir.html
deleted file mode 100644
index 76ae61f..0000000
--- a/docs/manual/CoreTasks/mkdir.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="mkdir">Mkdir</a></h2>
-<h3>Description</h3>
-<p>Creates a directory. Also non-existent parent directories are created, when
-necessary.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">dir</td>
-    <td valign="top">the directory to create.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>&lt;mkdir dir=&quot;${dist}&quot;/&gt;</pre>
-<p>creates a directory <code>${dist}</code>.</p>
-<pre>&lt;mkdir dir=&quot;${dist}/lib&quot;/&gt;</pre>
-<p>creates a directory <code>${dist}/lib</code>.</p>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/move.html b/docs/manual/CoreTasks/move.html
deleted file mode 100644
index cafd04e..0000000
--- a/docs/manual/CoreTasks/move.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="move">Move</a></h2>
-<h3>Description</h3>
-<p>Moves a file to a new file or directory, or sets of files to
-a new directory.  By default, the
-destination file is overwritten if it already exists.  When <var>overwrite</var> is
-turned off, then files are only moved if the source file is newer than
-the destination file, or when the destination file does not exist.</p>
-<p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select sets of files
-to move to the <var>todir</var> directory.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">file</td>
-    <td valign="top">the file to move</td>
-    <td valign="top" align="center">One of <var>file</var> or 
-     at least one nested fileset element</td>
-  </tr>
-  <tr>
-    <td valign="top">tofile</td>
-    <td valign="top">the file to move to</td>
-    <td valign="top" align="center" rowspan="2">With the <var>file</var> attribute, 
-    either <var>tofile</var> or <var>todir</var> can be used.  With a nested fileset, 
-	 only <var>todir</var> is allowed.</td>
-  </tr>
-  <tr>
-    <td valign="top">todir</td>
-    <td valign="top">the directory to move to</td>
-  </tr>
-  <tr>
-    <td valign="top">overwrite</td>
-    <td valign="top">overwrite existing files even if the destination
-      files are newer (default is &quot;true&quot;)</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">filtering</td>
-    <td valign="top">indicates whether token filtering should take place during
-      the move.  See the <a href="filter.html">filter</a> task for a description of
-      how filters work.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">flatten</td>
-    <td valign="top">ignore directory structure of source directory,
-      copy all files into a single directory, specified by the <var>todir</var>
-      attribute (default is &quot;false&quot;).Note that you can achieve the 
-      same effect by using a <a href="../CoreTypes/mapper.html#flatten-mapper">flatten mapper</a></td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includeEmptyDirs</td>
-	 <td valign="top">Copy empty directories included with the nested FileSet(s).
-	   Defaults to &quot;yes&quot;.</td>
-	 <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Parameters specified as nested elements</h3>
-<h4>mapper</h4>
-<p>You can define file name transformations by using a nested <a
-href="../CoreTypes/mapper.html">mapper</a> element. The default mapper used by
-<code>&lt;copy&gt;</code> is the <a
-href="../CoreTypes/mapper.html#identity-mapper">identity</a>.</p>
-<h3>Examples</h3>
-<p><b>Move a single file (rename a file)</b></p>
-<pre>
-  &lt;move file=&quot;file.orig&quot; tofile=&quot;file.moved&quot;/&gt;
-</pre>
-<p><b>Move a single file to a directory</b></p>
-<pre>
-  &lt;move file=&quot;file.orig&quot; todir=&quot;dir/to/move/to&quot;/&gt;
-</pre>
-<p><b>Move a directory to a new directory</b></p>
-<pre>
-  &lt;move todir=&quot;new/dir/to/move/to&quot;&gt;
-    &lt;fileset dir=&quot;src/dir&quot;/&gt;
-  &lt;/move&gt;
-</pre>
-<p><b>Move a set of files to a new directory</b></p>
-<pre>
-  &lt;move todir=&quot;some/new/dir&quot; &gt;
-    &lt;fileset dir=&quot;my/src/dir&quot; &gt;
-      &lt;include name=&quot;**/*.jar&quot;/&gt;
-      &lt;exclude name=&quot;**/ant.jar&quot;/&gt;
-    &lt;/fileset&gt;
-  &lt;/move&gt;
-</pre>
-<p><b>Append <code>&quot;.bak&quot;</code> to the names of all files
-in a directory.</b></p>
-<pre>
-  &lt;move todir=&quot;my/src/dir&quot; &gt;
-    &lt;fileset dir=&quot;my/src/dir&quot; &gt;
-      &lt;exclude name=&quot;**/*.bak&quot;/&gt;
-    &lt;/fileset&gt;
-    &lt;mapper type=&quot;glob&quot; from=&quot;*&quot; to=&quot;*.bak&quot;/&gt;
-  &lt;/move&gt;
-</pre>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/overview.html b/docs/manual/CoreTasks/overview.html
deleted file mode 100644
index 7d5c113..0000000
--- a/docs/manual/CoreTasks/overview.html
+++ /dev/null
@@ -1,341 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Language" content="en-us">
-  <title>Overview of Ant core tasks</title>
-  <base target="mainFrame">
-</head>
-
-<body>
-<h2>Overview of Ant core tasks</h2>
-<p>Given the large number of tasks available to a build designer, it may be 
-difficult to get an overall view of what each task can do.  The following 
-table provides a short description of each task and a link to the complete
-documentation.</p>
-
-<table border="1" cellpadding="4" cellspacing="0">
-  <tr valign="top">
-    <th>Task Name</th>
-    <th>Description</th>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="ant.html">Ant</a></td>
-    <td><p>Runs Ant on a supplied buildfile. This can be used to build subprojects.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="antcall.html">AntCall</a></td>
-    <td><p>Call another target within the same build-file optionally specifying some
-properties.</p></td>
-  </tr>
-  
-  <tr valign="top">
-    <td><a href="antstructure.html">AntStructure</a></td>
-    <td><p>Generates a DTD for Ant buildfiles which contains information
-about all tasks currently known to Ant.</p></td>
-  </tr>
-  
-  <tr valign="top">
-    <td><a href="apply.html">Apply</a></td>
-    <td><p>Executes a system command. When the <i>os</i> attribute is specified, then
-the command is only executed when Ant is run on one of the specified operating
-systems.</p></td>
-  </tr>
-  
-  <tr valign="top">
-    <td><a href="available.html">Available</a></td>
-    <td><p>Sets a property if a resource is available at runtime. This resource can be a
-file, a directory, a class in the classpath, or a JVM system resource.</p></td>
-  </tr>
-  
-  <tr valign="top">
-    <td><a href="chmod.html">Chmod</a></td>
-    <td><p>Changes the permissions of a file or all files inside specified directories. 
-    Right now it has effect only under Unix. The permissions are also UNIX style, like 
-    the argument for the chmod command.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="copy.html">Copy</a></td>
-    <td><p>Copies a file or Fileset to a new file or directory.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="copydir.html"><i>Copydir</i></a></td>
-    <td><p><i>This task has been deprecated.  Use the Copy task instead.</i></p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="copyfile.html"><i>Copyfile</i></a></td>
-    <td><p><i>This task has been deprecated.  Use the Copy task instead.</i></p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="cvs.html">Cvs</a></td>
-    <td><p>Handles packages/modules retrieved from a 
-<a href="http://www.cvshome.org/" target="_top">CVS</a> repository.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="cvspass.html">CVSPass</a></td>
-    <td><p>Adds entries to a .cvspass file. Adding entries to this file has the same 
-    affect as a cvs login command.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="delete.html">Delete</a></td>
-    <td><p>Deletes either a single file, all files in a specified directory 
-    and its sub-directories, or a set of files specified by one or more 
-    <a href="../CoreTypes/fileset.html">FileSet</a>s.</td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="deltree.html"><i>Deltree</i></a></td>
-    <td><p><i>This task has been deprecated.  Use the Delete task instead.</i></p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="ear.html">Ear</a></td>
-    <td><p>An extension of the <a href="jar.html">Jar</a> task with special
-    treatment for files that should end up in an Enterprise Application archive.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="echo.html">Echo</a></td>
-    <td><p>Echoes a message to System.out or a file.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="exec.html">Exec</a></td>
-    <td><p>Executes a system command. When the <i>os</i> attribute is specified, then
-the command is only executed when Ant is run on one of the specified operating
-systems.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="execon.html">ExecOn</a></td>
-    <td><p>Executes a system command. When the <i>os</i> attribute is specified, then
-the command is only executed when Ant is run on one of the specified operating
-systems.</p>
-<p>The files and/or directories of a number of <a
-href="../CoreTypes/fileset.html">FileSet</a>s are passed as arguments to the system
-command. At least one nested <code>&lt;fileset&gt;</code> is required.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="fail.html">Fail</a></td>
-    <td><p>Exits the current build (just throwing a BuildException), optionally printing additional information.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="filter.html">Filter</a></td>
-    <td><p>Sets a token filter for this project or read multiple token filter from
-an input file and sets these as filters.
-Token filters are used by all tasks that perform file copying operations
-through the Project commodity methods.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="fixcrlf.html">FixCRLF</a></td>
-    <td><p>Modifies a file to add or remove tabs, carriage returns, linefeeds, and
-    EOF characters.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="genkey.html">GenKey</a></td>
-    <td><p>Generates a key in keystore.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="get.html">Get</a></td>
-    <td><p>Gets a file from a URL.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="gunzip.html">GUnzip</a></td>
-    <td><p>Expands a GZip file.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="gzip.html">GZip</a></td>
-    <td><p>GZips a file.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="jar.html">Jar</a></td>
-    <td><p>Jars a set of files.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="java.html">Java</a></td>
-    <td><p>Executes a Java class within the running (Ant) VM or forks another VM if
-specified.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="javac.html">Javac</a></td>
-    <td><p>Compiles a source tree within the running (Ant) VM.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="javadoc.html">Javadoc/<i>Javadoc2</i></a></td>
-    <td><p>Generates code documentation using the javadoc tool.</p>
-    <p><i>The Javadoc2 task is deprecated.  Use the Javadoc task 
-    instead.</i></p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="mail.html">Mail</a></td>
-    <td><p>A task to send SMTP email.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="mkdir.html">Mkdir</a></td>
-    <td><p>Creates a directory. Also non-existent parent directories are created, when
-necessary.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="move.html">Move</a></td>
-    <td><p>Moves a file to a new file or directory, or sets of files to
-a new directory.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="patch.html">Patch</a></td>
-    <td><p>Applies a diff file to originals.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="pathconvert.html">PathConvert</a></td>
-    <td><p>Converts a nested path, path reference, or fileset reference to the form usable on a
-    specified platform and stores the result in a given property.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="property.html">Property</a></td>
-    <td><p>Sets a property (by name and value), or set of properties (from file or
-resource) in the project.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="recorder.html">Record</a></td>
-    <td><p>A recorder is a listener to the current build process that records the
-output to a file.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="rename.html"><i>Rename</i></a></td>
-    <td><p><i>This task has been deprecated.  Use the Move task instead.</i></p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="replace.html">Replace</a></td>
-    <td><p>Replace is a directory based task for replacing the occurrence of a given string with another string 
-in selected file.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="rmic.html">Rmic</a></td>
-    <td><p>Runs the rmic compiler for a certain class.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="signjar.html">SignJar</a></td>
-    <td><p>Signs a jar or zip file with the javasign command line tool.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="sleep.html">Sleep</a></td>
-    <td><p> A task for sleeping a short period of time, useful when a build or 
-    deployment process requires an interval between tasks.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="sql.html">Sql</a></td>
-    <td><p>Executes a series of SQL statements via JDBC to a database. Statements 
-    can either be read in from a text file using the <i>src</i> attribute or from 
-    between the enclosing SQL tags.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="style.html">Style</a></td>
-    <td><p>Process a set of documents via XSLT.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="tar.html">Tar</a></td>
-    <td><p>Creates a tar archive.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="taskdef.html">Taskdef</a></td>
-    <td><p>Adds a task definition to the current project, such that this new task can be
-used in the current project.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="touch.html">Touch</a></td>
-    <td><p>Changes the modification time of a file and possibly creates it at
-the same time.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="tstamp.html">TStamp</a></td>
-    <td><p>Sets the <code>DSTAMP</code>, <code>TSTAMP</code>, and 
-    <code>TODAY</code> properties in the current project based on 
-    the current date and time.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="typedef.html">Typedef</a></td>
-    <td><p>Adds a data type definition to the current project, such that this
-new type can be used in the current project.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="unzip.html">Unjar</a></td>
-    <td><p>Unzips a jarfile.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="untar.html">Untar</a></td>
-    <td><p>Untars a tarfile.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="unzip.html">Unwar</a></td>
-    <td><p>Unzips a warfile.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="unzip.html">Unzip</a></td>
-    <td><p>Unzips a zipfile.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="uptodate.html">Uptodate</a></td>
-    <td><p>Sets a property if a target files are more up to date than a set of
-Source files.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="war.html">War</a></td>
-    <td><p>An extension of the <a href="jar.html">Jar</a> task with special
-    treatment for files that should end up in the <code>WEB-INF/lib</code>, 
-    <code>WEB-INF/classes</code> or <code>WEB-INF</code> directories of the 
-    Web Application Archive.</p></td>
-  </tr>
-
-  <tr valign="top">
-    <td><a href="zip.html">Zip</a></td>
-    <td><p>Creates a zipfile.</p></td>
-  </tr>
-</table>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
diff --git a/docs/manual/CoreTasks/parallel.html b/docs/manual/CoreTasks/parallel.html
deleted file mode 100644
index d4d49b6..0000000
--- a/docs/manual/CoreTasks/parallel.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2>Parallel</h2>
-<h3>Description</h3>
-<p>Parallel is a container task - it can contain other Ant tasks. Each nested
-task within the parallel task will be executed in its own thread. </p>
-
-<p>Parallel tasks have a number of uses in an Ant build file including:
-<ul>
-<li>Taking advantage of available processing resources to reduce build time</li>
-<li>Testing servers, where the server can be run in one thread and the test
-harness is run in another thread.</li>
-</ul>
-
-<p>Care must be taken when using multithreading to ensure the tasks within the
-threads do not interact. For example, two javac compile tasks which write 
-classes into the same destination directory may interact where one tries to
-read a class for depenency information while the other task is writing the 
-class file. Be sure to avoid these types of interactions within a 
-&lt;parallel&gt; task</p>
-  
-<p>The parallel task has no attributes and does not support any nested 
-elements apart from Ant tasks. Any valid Ant task may be embedded within a 
-parallel task, including other parallel tasks.</p>
-
-<p>Note that while the tasks within the parallel task are being run, the main 
-thread will be blocked waiting for all the child threads to complete.</p>  
-
-<p>If any of the tasks within the &lt;parallel&gt; task fails, the remaining 
-tasks in other threads will continue to run until all threads have completed. 
-In this sitiuation, the parallel task will also fail.</p>
-
-<p>The parallel task may be combined with the <a href="sequential.html">
-sequential</a> task to define sequences of tasks to be executed on each thread
-within the parallel block</p>
-
-<h3>Examples</h3>
-<pre>
-&lt;parallel&gt;
-  &lt;wlrun ...&gt;
-  &lt;sequential&gt;
-    &lt;sleep seconds=&quot;30&quot;/&gt;
-    &lt;junit ...&gt;
-    &lt;wlstop/&gt;
-  &lt;/sequential&gt;
-&lt;/parallel&gt;
-</pre>
-<p>This example represents a typical pattern for testing a server application. 
-In one thread the server is started (the wlrun task). The other thread consists 
-of a three tasks which are performed in sequence. The sleep task is used to 
-give the server time to come up. Another task which is capabale of validating 
-that the server is available could be used in place of the sleep task. The 
-test harness is then run. Once the tests are complete, the server is stopped 
-(using wlstop in this example), allowing both threads to complete. The 
-parallel task will also complete at this time and the build will then 
-continue.</p>
-
-<pre>
-&lt;parallel&gt;
-  &lt;javac ...&gt; &lt;!-- compiler servlet code --&gt;
-  &lt;wljspc ...&gt; &lt;!-- precompile JSPs --&gt;
-&lt;/parallel&gt;
-</pre>
-
-<p>This example shows two independent tasks being run to achieve better 
-resource utilization during the build. In this instance, some servlets are being
-compiled in one thead and a set of JSPs is being precompiled in another. As 
-noted above, you need to be careful that the two tasks are independent, both in 
-terms of their dependencies and in terms of their potential interactions in
-Ant's external environment.</p>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/patch.html b/docs/manual/CoreTasks/patch.html
deleted file mode 100644
index aa84ce9..0000000
--- a/docs/manual/CoreTasks/patch.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="patch">Patch</a></h2>
-<h3>Description</h3>
-<p>Applies a diff file to originals.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">patchfile</td> 
-    <td valign="top">the file that includes the diff output</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">originalfile</td> 
-    <td valign="top">the file to patch</td>
-    <td align="center" valign="top">No, tries to guess it from the diff 
-      file</td>
-  </tr>
-  <tr>
-    <td valign="top">backups</td> 
-    <td valign="top">Keep backups of the unpatched files</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">quiet</td> 
-    <td valign="top">Work silently unless an error occurs</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">reverse</td> 
-    <td valign="top">Assume patch was created with old and new files 
-      swapped.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">ignorewhitespace</td> 
-    <td valign="top">Ignore whitespace differences.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">strip</td> 
-    <td valign="top">Strip the smallest prefix containing <i>num</i> leading 
-      slashes from filenames.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>  &lt;patch patchfile=&quot;module.1.0-1.1.patch&quot;/&gt;</pre>
-<p>applies the diff included in <i>module.1.0-1.1.patch</i> to the
-files in base directory guessing the filename(s) from the diff output.</p>
-<pre>  &lt;patch patchfile=&quot;module.1.0-1.1.patch&quot; strip=&quot;1&quot;/&gt;</pre>
-<p>like above but one leading directory part will be removed. i.e. if
-the diff output looked like</p>
-<pre>
---- a/mod1.0/A	Mon Jun  5 17:28:41 2000
-+++ a/mod1.1/A	Mon Jun  5 17:28:49 2000
-</pre> 
-the leading <i>a/</i> will be stripped.
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/property.html b/docs/manual/CoreTasks/property.html
deleted file mode 100644
index 1d45a9d..0000000
--- a/docs/manual/CoreTasks/property.html
+++ /dev/null
@@ -1,139 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="property">Property</a></h2>
-<h3>Description</h3>
-<p>Sets a property (by name and value), or set of properties (from file or
-resource) in the project.</p>
-<p>When a property was set by the user, or was a property in a parent project
-(that started this project with the <a href="ant.html">ant task</a>), then this
-property cannot be set, and will be ignored. This means that properties set
-outside the current project always override the properties of the current
-project.</p>
-<p>There are five ways to set properties:</p>
-<ul>
-  <li>By supplying both the <i>name</i> and <i>value</i> attribute.</li>
-  <li>By supplying both the <i>name</i> and <i>refid</i> attribute.</li>
-  <li>By setting the <i>file</i> attribute with the filename of the property
-    file to load. This property file has the format as defined by the file used
-    in the class java.util.Properties.</li>
-  <li>By setting the <i>resource</i> attribute with the resource name of the
-    property file to load. This property file has the format as defined by the
-    file used in the class java.util.Properties.</li>
-  <li>By setting the <i>environment</i> attribute with a prefix to use.
-    Properties will be defined for every environment variable by
-    prefixing the supplied name and a period to the name of the variable.</li>
-</ul>
-<p>Although combinations of the three ways are possible, only one should be used
-at a time. Problems might occur with the order in which properties are set, for
-instance.</p>
-<p>The value part of the properties being set, might contain references to other
-properties. These references are resolved at the time these properties are set.
-This also holds for properties loaded from a property file.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">name</td>
-    <td valign="top">the name of the property to set.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">value</td>
-    <td valign="top">the value of the property.</td>
-    <td valign="middle" align="center" rowspan="6">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">refid</td>
-    <td valign="top"><a href="../using.html#references">Reference</a> to an object
-      defined elsewhere. Only yields reasonable results for references
-      to <a href="../using.html#path">PATH like structures</a> or properties.</td>
-  </tr>
-  <tr>
-    <td valign="top">resource</td>
-    <td valign="top">the resource name of the property file.</td>
-  </tr>
-  <tr>
-    <td valign="top">file</td>
-    <td valign="top">the filename of the property file .</td>
-  </tr>
-  <tr>
-    <td valign="top">location</td>
-    <td valign="top">Sets the property to the absolute filename of the
-      given file. If the value of this attribute is an absolute path, it
-      is left unchanged (with / and \ characters converted to the
-      current platforms conventions). Otherwise it is taken as a path
-      relative to the project's basedir and expanded.</td>
-  </tr>
-  <tr>
-    <td valign="top">environment</td>
-    <td valign="top">the prefix to use when retrieving environment variables. Thus
-    if you specify environment=&quot;myenv&quot; you will be able to access OS-specific 
-    environment variables via property names &quot;myenv.PATH&quot; or 
-	&quot;myenv.TERM&quot;. Note that if you supply a property name with a final 
-	&quot;.&quot; it will not be doubled. ie environment=&quot;myenv.&quot; will still 
-	allow access of environment variables through &quot;myenv.PATH&quot; and 
-	&quot;myenv.TERM&quot;. This functionality is currently only implemented 
-    on select platforms. Feel free to send patches to increase the number of platforms
-    this functionality is supported on ;)</td>
-  </tr>
-  <tr>
-    <td valign="top">classpath</td> 
-    <td valign="top">the classpath to use when looking up a resource.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">classpathref</td> 
-    <td valign="top">the classpath to use when looking up a resource,
-      given as <a href="../using.html#references">reference</a> to a PATH defined
-      elsewhere..</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<h3>Parameters specified as nested elements</h3>
-<h4>classpath</h4>
-<p><code>Property</code>'s <i>classpath</i> attribute is a <a
-href="../using.html#path">PATH like structure</a> and can also be set via a nested
-<i>classpath</i> element.</p>
-<h3>Examples</h3>
-<pre>  &lt;property name=&quot;foo.dist&quot; value=&quot;dist&quot;/&gt;</pre>
-<p>sets the property <code>foo.dist</code> to the value &quot;dist&quot;.</p>
-<pre>  &lt;property file=&quot;foo.properties&quot;/&gt;</pre>
-<p>reads a set of properties from a file called &quot;foo.properties&quot;.</p>
-<pre>  &lt;property resource=&quot;foo.properties&quot;/&gt;</pre>
-<p>reads a set of properties from a resource called &quot;foo.properties&quot;.</p>
-<p>Note that you can reference a global properties file for all of your Ant
-builds using the following:</p>
-<pre>  &lt;property file=&quot;${user.home}/.ant-global.properties&quot;/&gt;</pre>
-<p>since the &quot;user.home&quot; property is defined by the Java virtual machine
-to be your home directory.  This technique is more appropriate for Unix than 
-Windows since the notion of a home directory doesn't exist on Windows.  On the
-JVM that I tested, the home directory on Windows is &quot;C:\&quot;.  Different JVM
-implementations may use other values for the home directory on Windows.</p>
-
-<pre>
-  &lt;property environment=&quot;env&quot;/&gt;
-  &lt;echo message=&quot;Number of Processors = ${env.NUMBER_OF_PROCESSORS}&quot;/&gt;
-  &lt;echo message=&quot;ANT_HOME is set to = ${env.ANT_HOME}&quot;/&gt;
-</pre>
-<p>reads the system environment variables and stores them in properties, prefixed with &quot;env&quot;.
-Note that this only works on <em>select</em> operating systems.
-Two of the values are shown being echoed. 
-</p> 
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/recorder.html b/docs/manual/CoreTasks/recorder.html
deleted file mode 100644
index 0c45ef2..0000000
--- a/docs/manual/CoreTasks/recorder.html
+++ /dev/null
@@ -1,158 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="log">Record</a></h2>
-<h3>Description</h3>
-<p>A recorder is a listener to the current build process that records the
-output to a file.
-
-<p>Several recorders can exist at the same time.  Each recorder is
-associated with a file.  The filename is used as a unique identifier for
-the recorders.  The first call to the recorder task with an unused filename
-will create a recorder (using the parameters provided) and add it to the
-listeners of the build.  All subsiquent calls to the recorder task using
-this filename will modify that recorders state (recording or not) or other
-properties (like logging level).
-
-<p>Some technical issues: the file's print stream is flushed for "finished"
-events (buildFinished, targetFinished and taskFinished), and is closed on
-a buildFinished event.
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">name</td>
-    <td valign="top">The name of the file this logger is associated with.</td>
-    <td align="center" valign="middle">yes</td>
-  </tr>
-  <tr>
-    <td valign="top">action</td>
-    <td valign="top">This tells the logger what to do: should it start
-    recording or stop?  The first time that the recorder task is called for
-    this logfile, and if this attribute is not provided, then the default
-    for this attribute is "start".  If this attribute is not provided on
-    subsiquest calls, then the state remains as previous.
-    [Values = {start|stop}, Default = no state change]</td>
-    <td align="center" valign="middle">no</td>
-  </tr>
-  <tr>
-    <td valign="top">append</td>
-    <td valign="top">Should the recorder append to a file, or create a new
-    one? This is only applicable the first time this task is called for
-    this file.  [Vaules = {yes|no}, Default=yes]</td>
-    <td align="center" valign="middle">no</td>
-  </tr>
-  <tr>
-    <td valign="top">loglevel</td>
-    <td valign="top">At what logging level should this recorder instance
-    record to?  This is not a once only parameter (like <code>append</code>
-    is) -- you can increase or decrease the logging level as the build process
-    continues.  [Vaules= {error|warn|info|verbose|debug}, Default = no change]
-    </td>
-    <td align="center" valign="middle">no</td>
-  </tr>
-</table>
-
-<h3>Examples</h3>
-<p>The following build.xml snippit is an example of how to use the recorder
-to record just the <code>&lt;javac&gt;</code> task:
-<pre>
-    ...
-    &lt;compile &gt;
-        &lt;record name="log.txt" action="start" /&gt;
-        &lt;javac ...
-        &lt;record name="log.txt" action="stop" /&gt;
-    &lt;compile/&gt;
-    ...
-</pre>
-
-<p>The following two calls to <code>&lt;record&gt;</code> set up two
-recorders: one to file "records-simple.log" at logging level <code>info</code>
-(the default) and one to file "ISO.log" using logging level of
-<code>verbose</code>.
-<pre>
-    ...
-    &lt;record name="records-simple.log" /&gt;
-    &lt;record name="ISO.log" loglevel="verbose" /&gt;
-    ...
-</pre>
-
-<h3>Notes</h3>
-<p>There is some funtionality that I would like to be able to add in the
-future.  They include things like the following:
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">messageprefix</td>
-    <td valign="top">Whether or not to include the message prefixes (things
-    like the name of the tasks or targets, etc). This has the same effect as
-    the <code>-emacs</code> command line parameter does to the screen output.
-    [yes|no]</td>
-    <td align="center" valign="middle">no</td>
-  </tr>
-  <tr>
-    <td valign="top">listener</td>
-    <td valign="top">A classname of a build listener to use from this point
-    on instead of the default listener.</td>
-    <td align="center" valign="middle">no</td>
-  </tr>
-  <tr>
-    <td valign="top">includetarget</td>
-    <td valign="top" rowspan=2>A comma-separated list of targets to automaticly
-    record.  If this value is "all", then all targets are recorded.
-    [Default = all]</td>
-    <td align="center" valign="middle">no</td>
-  </tr>
-  <tr>
-    <td valign="top">excludetarget</td>
-    <td align="center" valign="middle">no</td>
-  </tr>
-  <tr>
-    <td valign="top">includetask</td>
-    <td valign="top" rowspan=2>A comma-separated list of task to automaticly
-    record or not.  This could be difficult as it could conflict with the
-    <code>includetarget/excludetarget</code>.  (e.g.:
-    <code>includetarget="compile" exlcudetask="javac"</code>, what should
-    happen?)</td>
-    <td align="center" valign="middle">no</td>
-  </tr>
-  <tr>
-    <td valign="top">excludetask</td>
-    <td align="center" valign="middle">no</td>
-  </tr>
-  <tr>
-    <td valign="top">action</td>
-    <td valign="top">add greater flexability to the action attribute.  Things
-    like <code>close</code> to close the print stream.</td>
-    <td align="center" valign="top">no</td>
-  </tr>
-  <tr>
-    <td valign="top"></td>
-    <td valign="top"></td>
-    <td align="center" valign="top"></td>
-  </tr>
-</table>
-
-
-
-<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/rename.html b/docs/manual/CoreTasks/rename.html
deleted file mode 100644
index 6c2d133..0000000
--- a/docs/manual/CoreTasks/rename.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="rename">Rename</a></h2>
-<h3><i>Deprecated</i></h3>
-<p><i>This task has been deprecated.  Use the Move task instead.</i></p>
-<h3>Description</h3>
-<p>Renames a given file.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">src</td>
-    <td valign="top">file to rename.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">dest</td>
-    <td valign="top">new name of the file.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">replace</td>
-    <td valign="top">Enable replacing of existing file (default: on).</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>  &lt;rename src=&quot;foo.jar&quot; dest=&quot;${name}-${version}.jar&quot;/&gt;</pre> 
-<p>Renames the file <code>foo.jar</code> to <code>${name}-${version}.jar</code> (assuming <code>name</code>
- and <code>version</code> being predefined properties). If a file named <code>${name}-${version}.jar</code>
- already exists, it will be removed prior to renaming <code>foo.jar</code>.</p>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/replace.html b/docs/manual/CoreTasks/replace.html
deleted file mode 100644
index 6191f23..0000000
--- a/docs/manual/CoreTasks/replace.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="replace">Replace</a></h2>
-<h3>Description</h3>
-<p>Replace is a directory based task for replacing the occurrence of a given string with another string 
-in selected file.</p>
-<p>If you want to replace a text that crosses line boundaries, you
-must use a nested <code>&lt;replacetoken&gt;</code> element.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">file</td>
-    <td valign="top">file for which the token should be replaced.</td>
-    <td align="center" rowspan="2">Exactly one of the two.</td>
-  </tr>
-  <tr>
-    <td valign="top">dir</td>
-    <td valign="top">The base directory to use when replacing a token in 
-      multiple files.</td>
-  </tr>
-  <tr>
-    <td valign="top">token</td>
-    <td valign="top">the token which must be replaced.</td>
-    <td valign="top" align="center">Yes, unless a nested <code>replacetoken</code>
-      element is used.</td>
-  </tr>
-  <tr>
-    <td valign="top">value</td>
-    <td valign="top">the new value for the token. When omitted, an empty string
-      (&quot;&quot;) is used.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">summary</td>
-    <td valign="top">Indicates whether a summary of the replace operation 
-                     should be produced, detailing how many token occurrences 
-                     and files were processed
-                     </td>
-    <td valign="top" align="center">No, by default no summary is produced</td>
-  </tr>
-  <tr>
-    <td valign="top">propertyFile</td>
-    <td valign="top">valid property file from which properties specified using nested <code>&lt;replacefilter&gt;</code> elements are drawn.</td>
-    <td valign="top" align="center">Yes only if <i>property</i> attribute of <code>&lt;replacefilter&gt;</code> is used.</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      included. All files are included when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an include pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      excluded. No files (except default excludes) are excluded when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an exclude pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes should be used or not
-      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>  &lt;replace file=&quot;${src}/index.html&quot; token=&quot;@@@&quot; value=&quot;wombat&quot;/&gt;</pre>
-<p>replaces occurrences of the string &quot;@@@&quot; with the string
-&quot;wombat&quot;, in the file <code>${src}/index.html</code>.</p>
-<h3>Parameters specified as nested elements</h3>
-<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
-supports all attributes of <code>&lt;fileset&gt;</code> as well as the
-nested <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
-<code>&lt;patternset&gt;</code> elements.</p>
-<p>If either the text you want to replace or the replacement text
-cross line boundaries, you can use nested elements to specify
-them.</p>
-<h3>Examples</h3>
-<blockquote><pre>
-&lt;replace dir=&quot;${src}&quot; value=&quot;wombat&quot;&gt;
-  &lt;include name=&quot;**/*.html&quot;/&gt;
-  &lt;replacetoken&gt;&lt;![CDATA[multi line
-token]]>&lt;/replacetoken&gt;
-&lt;/replace&gt;
-</pre></blockquote>
-<p>replaces occurrences of the string &quot;multi
-line<i>\n</i>token&quot; with the string &quot;wombat&quot;, in all
-HTML files in the directory <code>${src}</code>.Where <i>\n</i> is
-the platform specific line separator.</p>
-<blockquote><pre>
-&lt;replace file=&quot;${src}/index.html&quot;&gt;
-  &lt;replacetoken&gt;&lt;![CDATA[two line
-token]]>&lt;/replacetoken&gt;
-  &lt;replacevalue&gt;&lt;![CDATA[two line
-token]]>&lt;/replacevalue&gt;
-&lt;/replace&gt;
-</pre></blockquote>
-<h4>replacefilter</h4>
-<p>In addition to allowing for multiple replacements, optional nested <code>&lt;replacefilter&gt;</code> elements allow replacement values to be extracted from a property file. The name of this file is specified using the <code>&lt;replace&gt;</code> attribute <i>propertyFile</i>.
-</p>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">token</td>
-    <td valign="top">The string to search for.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">value</td>
-    <td valign="top">The replacement string.</td>
-    <td align="center" rowspan="2">Either may be specified, but not both. Both can be omitted, if desired.</td>
-  </tr>
-  <tr>
-    <td valign="top">property</td>
-    <td valign="top">Name of the property whose value is to serve as the replacement value.</td>
-  </tr>
-</table>
-<p>If neither <i>value</i> nor <i>property</i> is used, the value provided using the <code>&lt;replace&gt;</code> attribute <i>value</i> and/or the <code>&lt;replacevalue&gt;</code> element is used. If no value was specified using either of these options, the token is replaced with an empty string.
-</p>
-<h3>Examples</h3>
-<blockquote><pre>
-&lt;replace 
-    file=&quot;configure.sh&quot;
-    value=&quot;defaultvalue&quot;
-    propertyFile=&quot;source/name.properties&quot; &gt;
-  &lt;replacefilter 
-    token=&quot;@token1@&quot; /&gt;
-  &lt;replacefilter 
-    token=&quot;@token2@&quot; 
-    value=&quot;value2&quot;/&gt;
-  &lt;replacefilter 
-    token=&quot;@token3@&quot; 
-    property=&quot;property.key&quot;/&gt;
-&lt;/replace&gt;
-</pre></blockquote>
-<p>In file <code>configure.sh</code>, replace all instances of &quot;@token1@&quot; with &quot;defaultvalue&quot;, all instances of &quot;@token2@&quot; with &quot;value2&quot;, and all instances of &quot;@token3@&quot; with the value of the property &quot;property.key&quot;, as it appears in property file <code>src/name.properties</code>.</p>
-<p><b>Note:</b> It is possible to use either the <i>token</i>/<code>&lt;replacetoken&gt;</code> and <i>value</i>/<code>&lt;replacevalue&gt;</code> attributes/elements, the nested replacefilter elements, or both in the same operation.
-</p>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/rmic.html b/docs/manual/CoreTasks/rmic.html
deleted file mode 100644
index 5e65d9e..0000000
--- a/docs/manual/CoreTasks/rmic.html
+++ /dev/null
@@ -1,185 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="rmic">Rmic</a></h2>
-<h3>Description</h3>
-<p>Runs the rmic compiler for a certain class.</p>
-<p>Rmic can be run on a single class (as specified with the classname
-attribute) or a number of classes at once (all classes below base that
-are neither _Stub nor _Skel classes).  If you want to rmic a single
-class and this class is a class nested into another class, you have to
-specify the classname in the form <code>Outer$$Inner</code> instead of
-<code>Outer.Inner</code>.</p>
-<p>It is possible to refine the set of files that are being rmiced. This can be
-done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
-attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
-have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
-the files you want to have excluded. This is also done with patterns. And
-finally with the <i>defaultexcludes</i> attribute, you can specify whether you
-want to use default exclusions or not. See the section on <a
-href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
-inclusion/exclusion of files works, and how to write patterns.</p>
-<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
-supports all attributes of <code>&lt;fileset&gt;</code>
-(<code>dir</code> becomes <code>base</code>) as well as the nested
-<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
-<code>&lt;patternset&gt;</code> elements.</p>
-<p>It is possible to use different compilers. This can be selected with the
-&quot;build.rmic&quot; property. There are three choices:</p>
-<ul>
-  <li>sun (the standard compiler of the JDK)</li>
-  <li>kaffe (the standard compiler of <a href="http://www.kaffe.org" target="_top">Kaffe</a>)</li>
-  <li>weblogic</li>
-</ul>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">base</td>
-    <td valign="top">the location to store the compiled files.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">classname</td>
-    <td valign="top">the class for which to run <code>rmic</code>.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">filtering</td>
-    <td valign="top">indicates whether token filtering should take place</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">sourcebase</td>
-    <td valign="top">Pass the &quot;-keepgenerated&quot; flag to rmic and
- move the generated source file to the base directory.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">stubversion</td>
-    <td valign="top">Specify the JDK version for the generated stub code.
- Specify &quot;1.1&quot; to pass the &quot;-v1.1&quot; option to rmic.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">classpath</td>
-    <td valign="top">The classpath to use during compilation</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">classpathref</td>
-    <td valign="top">The classpath to use during compilation, given as <a
-      href="../using.html#references">reference</a> to a PATH defined elsewhere</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      included. All files are included when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an include pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      excluded. No files (except default excludes) are excluded when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an exclude pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes should be used or not
-      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">verify</td>
-    <td valign="top">check that classes implement Remote before handing them 
-        to rmic (default is false)</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">iiop</td>
-    <td valign="top">indicates that portable (RMI/IIOP) stubs should be generated</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">iiopopts</td>
-    <td valign="top">additional arguments for IIOP class generation</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">idl</td>
-    <td valign="top">indicates that IDL output files should be generated</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">idlopts</td>
-    <td valign="top">additional arguments for IDL file generation</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">debug</td>
-    <td valign="top">generate debug info (passes -g to rmic). Defaults to false.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includeAntRuntime</td> 
-    <td valign="top">whether to include the Ant run-time libraries;
-      defaults to <code>yes</code>.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includeJavaRuntime</td> 
-    <td valign="top">whether to include the default run-time
-      libraries from the executing VM; defaults to <code>no</code>.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">extdirs</td>
-    <td valign="top">location of installed extensions.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<h3>Parameters specified as nested elements</h3>
-<h4>classpath and extdirs</h4>
-<p><code>Rmic</code>'s <i>classpath</i> and <i>extdirs</i> attributes are <a
-href="../using.html#path">PATH like structure</a> and can also be set via a nested
-<i>classpath</i> and <i>extdirs</i> elements.</p>
-<h3>Examples</h3>
-<pre>  &lt;rmic classname=&quot;com.xyz.FooBar&quot; base=&quot;${build}/classes&quot;/&gt;</pre>
-<p>runs the rmic compiler for the class <code>com.xyz.FooBar</code>. The
-compiled files will be stored in the directory <code>${build}/classes</code>.</p>
-<pre>  &lt;rmic base=&quot;${build}/classes&quot; includes=&quot;**/Remote*.class&quot;/&gt;</pre>
-<p>runs the rmic compiler for all classes with <code>.class</code>
-files below <code>${build}/classes</code> whose classname starts with
-<i>Remote</i>. The compiled files will be stored in the directory
-<code>${build}/classes</code>.</p>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/sequential.html b/docs/manual/CoreTasks/sequential.html
deleted file mode 100644
index 38603c9..0000000
--- a/docs/manual/CoreTasks/sequential.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2>Sequential</h2>
-<h3>Description</h3>
-<p>Sequential is a container task - it can contain other Ant tasks. The nested 
-tasks are simply executed in sequence. Sequential's primary use is to support 
-the sequential execution of a subset of tasks within the 
-<a href="parallel.html">parallel</a> task</p>
-
-<p>The sequential task has no attributes and does not support any nested 
-elements apart from Ant tasks. Any valid Ant task may be embedded within the 
-sequential task.</p>
-
-<h3>Example</h3>
-<pre>
-&lt;parallel&gt;
-  &lt;wlrun ...&gt;
-  &lt;sequential&gt;
-    &lt;sleep seconds=&quot;30&quot;/&gt;
-    &lt;junit ...&gt;
-    &lt;wlstop/&gt;
-  &lt;/sequential&gt;
-&lt;/parallel&gt;
-</pre>
-<p>This example shows how the sequential task is used to execute three tasks in
-sequence, while another task is being executed in a separate thread. 
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/signjar.html b/docs/manual/CoreTasks/signjar.html
deleted file mode 100644
index c093e14..0000000
--- a/docs/manual/CoreTasks/signjar.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="signjar">SignJar</a></h2>
-<h3>Description</h3>
-<p>Signs a jar or zip file with the javasign command line tool.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">jar</td>
-    <td valign="top">the jar file to sign</td>
-    <td valign="top" align="center">Yes.</td>
-  </tr>
-  <tr>
-    <td valign="top">alias</td>
-    <td valign="top">the alias to sign under</td>
-    <td valign="top" align="center">Yes.</td>
-  </tr>
-  <tr>
-    <td valign="top">storepass</td>
-    <td valign="top">password for keystore integrity.</td>
-    <td valign="top" align="center">Yes.</td>
-  </tr>
-  <tr>
-    <td valign="top">keystore</td>
-    <td valign="top">keystore location</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">storetype</td>
-    <td valign="top">keystore type</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">keypass</td>
-    <td valign="top">password for private key (if different)</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">sigfile</td>
-    <td valign="top">name of .SF/.DSA file</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">signedjar</td>
-    <td valign="top">name of signed JAR file</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">verbose</td>
-    <td valign="top">(true | false) verbose output when signing</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">internalsf</td>
-    <td valign="top">(true | false) include the .SF file inside the signature
-block</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">sectionsonly</td>
-    <td valign="top">(true | false) don't compute hash of entire manifest</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-  <p><code>&lt;signjar jar=&quot;${dist}/lib/ant.jar&quot;
-alias=&quot;apache-group&quot; storepass=&quot;secret&quot;/&gt;</code></p>
-</blockquote>
-<p>signs the ant.jar with alias &quot;apache-group&quot; accessing the
-keystore and private key via &quot;secret&quot; password.</p>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/sleep.html b/docs/manual/CoreTasks/sleep.html
deleted file mode 100644
index 0835696..0000000
--- a/docs/manual/CoreTasks/sleep.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<html>
-
-<head>
-<title>Sleep</title>
-</head>
-
-<body>
-
-<h2><a name="sleep">Sleep</a></h2>
-<h3>Description</h3>
-<p> A task for sleeping a short period of time, useful when a build or deployment 
-  process requires an interval between tasks.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr> 
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr> 
-    <td valign="top">hours</td>
-    <td valign="top">hours to to add to the sleep time</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr> 
-    <td valign="top">minutes</td>
-    <td valign="top"> minutes to add to the sleep time</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr> 
-    <td valign="top">seconds</td>
-    <td valign="top">seconds to add to the sleep time</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr> 
-    <td valign="top">milliseconds</td>
-    <td valign="top">milliseconds to add to the sleep time</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr> 
-    <td valign="top">failonerror</td>
-    <td valign="top">flag controlling whether to break the build on an error. 
-    </td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<p>The sleep time is the sum of specified values, hours, minutes seconds and milliseconds. 
-  A negative value can be supplied to any of them provided the total sleep time 
-  is positive</p>
-<p>Note that sleep times are always hints to be interpred by the OS how it feels 
-  - small times may either be ignored or rounded up to a minimum timeslice. Note 
-  also that the system clocks often have a fairly low granularity too, which complicates 
-  measuring how long a sleep actually took.</p>
-<h3>Examples</h3>
-<pre>   &lt;sleep milliseconds=&quot;10&quot;/&gt;</pre>
-Sleep for about 10 mS. 
-<pre>   &lt;sleep seconds=&quot;2&quot;/&gt;</pre>
-Sleep for about 2 seconds. 
-<pre>   &lt;sleep minutes=&quot;-59&quot; seconds=&quot;-58&quot;/&gt;</pre>
-<p>Sleep for -one hour less 59:58, or two seconds again </p>
-<pre>   &lt;sleep /&gt;</pre>
-Sleep for no time at all. This may yield the CPU time to another thread or process. 
-<hr>
-
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/sql.html b/docs/manual/CoreTasks/sql.html
deleted file mode 100644
index 8e719a2..0000000
--- a/docs/manual/CoreTasks/sql.html
+++ /dev/null
@@ -1,229 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-<body>
-
-<h2><a name="sql">Sql</a></h2>
-<h3>Description</h3>
-<p>Executes a series of SQL statements via JDBC to a database. Statements can either be read in from a text file using the <i>src</i> attribute or from between the enclosing SQL tags.</p>
-
-<p>Multiple statements can be provided, separated by semi-colons (or the defined <i>delimiter</i>). Individual lines within the statements can be commented using either --, // or REM at the start of the line.</p>
-
-<p>The <i>autocommit</i> attribute specifies whether auto-commit should be turned on or off whilst executing the statements. If auto-commit is turned on each statement will be executed and committed. If it is turned off the statements will all be executed as one transaction.</p>
-
-<p>The <i>onerror</i> attribute specifies how to proceed when an error occurs during the execution of one of the statements. 
-The possible values are: <b>continue</b> execution, only show the error;
-<b>stop</b> execution and commit transaction;
-and <b>abort</b> execution and transaction and fail task.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-<tr>
-  <td width="12%" valign="top"><b>Attribute</b></td>
-  <td width="78%" valign="top"><b>Description</b></td>
-  <td width="10%" valign="top"><b>Required</b></td>
-</tr>
-<tr>
-  <td width="12%" valign="top">driver</td>
-  <td width="78%" valign="top">Class name of the jdbc driver</td>
-  <td width="10%" valign="top">Yes</td>
-</tr>
-<tr>
-  <td width="12%" valign="top">url</td>
-  <td width="78%" valign="top">Database connection url</td>
-  <td width="10%" valign="top">Yes</td>
-</tr>
-<tr>
-  <td width="12%" valign="top">userid</td>
-  <td width="78%" valign="top">Database user name</td>
-  <td width="10%" valign="top">Yes</td>
-</tr>
-<tr>
-  <td width="12%" valign="top">password</td>
-  <td width="78%" valign="top">Database password</td>
-  <td width="10%" valign="top">Yes</td>
-</tr>
-<tr>
-  <td width="12%" valign="top">src</td>
-  <td width="78%" valign="top">File containing SQL statements</td>
-  <td width="10%" valign="top">Yes, unless statements enclosed within tags</td>
-</tr>
-<tr>
-  <td width="12%" valign="top">delimiter</td>
-  <td width="78%" valign="top">String that separates SQL statements</td>
-  <td width="10%" valign="top">No, default ";"</td>
-</tr>
-<tr>
-  <td width="12%" valign="top">autocommit</td>
-  <td width="78%" valign="top">Auto commit flag for database connection (default false)</td>
-  <td width="10%" valign="top">No, default &quot;false&quot;</td>
-</tr>
-<tr>
-  <td width="12%" valign="top">print</td>
-  <td width="78%" valign="top">Print result sets from the statements (default false)</td>
-  <td width="10%" valign="top">No, default &quot;false&quot;</td>
-</tr>
-<tr>
-  <td width="12%" valign="top">showheaders</td>
-  <td width="78%" valign="top">Print headers for result sets from the statements (default true)</td>
-  <td width="10%" valign="top">No, default &quot;true&quot;</td>
-</tr>
-<tr>
-  <td width="12%" valign="top">output</td>
-  <td width="78%" valign="top">Output file for result sets (defaults to System.out)</td>
-  <td width="10%" valign="top">No (print to System.out by default)</td>
-</tr>
-<tr>
-  <td width="12%" valign="top">classpath</td>
-  <td width="78%" valign="top">Classpath used to load driver</td>
-  <td width="10%" valign="top">No (use system classpath)</td>
-</tr>
-<tr>
-  <td width="12%" valign="top">onerror</td>
-  <td width="78%" valign="top">Action to perform when statement fails: continue, stop, abort</td>
-  <td width="10%" valign="top">No, default &quot;abort&quot;</td>
-</tr>
-<tr>
-  <td width="12%" valign="top">rdbms</td>
-  <td width="78%" valign="top">Execute task only if this rdbms</td>
-  <td width="10%" valign="top">No (no restriction)</td>
-</tr>
-<tr>
-  <td width="12%" valign="top">version</td>
-  <td width="78%" valign="top">Execute task only if rdbms version match</td>
-  <td width="10%" valign="top">No (no restriction)</td>
-</tr>
-</table>
-
-<h3>Parameters specified as nested elements</h3>
-<h4>transaction</h4>
-<p>Use nested <code>&lt;transaction&gt;</code> 
-elements to specify multiple blocks of commands to the executed
-executed in the same connection but different transactions. This
-is particularly useful when there are multiple files to execute
-on the same schema.</p>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">src</td>
-    <td valign="top">File containing SQL statements</td>
-    <td valign="top" align="center">Yes, unless statements enclosed within tags</td>
-  </tr>
-</table>
-<h4>classpath</h4>
-<p><code>Sql</code>'s <em>classpath</em> attribute is a <a
-href="../using.html#path">PATH like structure</a> and can also be set via a nested
-<em>classpath</em> element. It is used to load the JDBC classes.</p>
-<p>
-The 
-</p>
-
-<h3>Examples</h3>
-<blockquote><pre>&lt;sql
-    driver=&quot;org.database.jdbcDriver&quot;
-    url=&quot;jdbc:database-url&quot;
-    userid=&quot;sa&quot;
-    password=&quot;pass&quot;
-    src=&quot;data.sql&quot;
-/&gt;
-</pre></blockquote>
-
-<p>Connects to the database given in <i>url</i> as the sa user using the org.database.jdbcDriver and executes the SQL statements contained within the file data.sql</p>
-
-<blockquote><pre>&lt;sql
-    driver=&quot;org.database.jdbcDriver&quot;
-    url=&quot;jdbc:database-url&quot;
-    userid=&quot;sa&quot;
-    password=&quot;pass&quot;
-    &gt;
-insert
-into table some_table
-values(1,2,3,4);
-
-truncate table some_other_table;
-&lt;/sql&gt;
-</pre></blockquote>
-
-<p>Connects to the database given in <i>url</i> as the sa
- user using the org.database.jdbcDriver and executes the two SQL statements inserting data into some_table and truncating some_other_table </p>
-
-<p>Note that you may want to enclose your statements in
-<code>&lt;![CDATA[</code> ... <code>]]&gt;</code> sections so you don't
-need to escape <code>&lt;</code>, <code>&gt;</code> <code>&amp;</code>
-or other special characters. For example:</p>
-
-<blockquote><pre>&lt;sql
-    driver=&quot;org.database.jdbcDriver&quot;
-    url=&quot;jdbc:database-url&quot;
-    userid=&quot;sa&quot;
-    password=&quot;pass&quot;
-    &gt;&lt;![CDATA[
-
-update some_table set column1 = column1 + 1 where column2 &lt; 42;
-
-]]&gt;&lt;/sql&gt;
-</pre></blockquote>
-
-<p>The following connects to the database given in url as the sa user using the org.database.jdbcDriver and executes the SQL statements contained within the files data1.sql, data2.sql and data3.sql and then executes the truncate operation on <i>some_other_table</i>.</p>
-
-<blockquote><pre>&lt;sql
-    driver=&quot;org.database.jdbcDriver&quot;
-    url=&quot;jdbc:database-url&quot;
-    userid=&quot;sa&quot;
-    password=&quot;pass&quot; &gt;
-  &lt;transaction  src=&quot;data1.sql&quot; /&gt;
-  &lt;transaction  src=&quot;data2.sql&quot; /&gt;
-  &lt;transaction  src=&quot;data3.sql&quot; /&gt;
-  &lt;transaction&gt;
-    truncate table some_other_table;
-  &lt;/transaction&gt;
-&lt;/sql&gt;
-</pre></blockquote>
-
-<p>The following connects to the database given in url as the sa user using the org.database.jdbcDriver and executes the SQL statements contained within the file data.sql, with output piped to outputfile.txt, searching /some/jdbc.jar as well as the system classpath for the driver class.</p>
-
-<blockquote><pre>&lt;sql
-    driver=&quot;org.database.jdbcDriver&quot;
-    url=&quot;jdbc:database-url&quot;
-    userid=&quot;sa&quot;
-    password=&quot;pass&quot;
-    src=&quot;data.sql&quot;
-    print=&quot;yes&quot;
-    output=&quot;outputfile.txt&quot;
-    &gt;
-&lt;classpath&gt;
-	&lt;pathelement location=&quot;/some/jdbc.jar&quot;&gt;
-&lt;/classpath&gt;
-&lt;/sql&gt;
-</pre></blockquote>
-
-<p>The following will only execute if the RDBMS is &quot;oracle&quot; and the version 
-starts with &quot;8.1.&quot;</p>
-
-<blockquote><pre>&lt;sql
-    driver=&quot;org.database.jdbcDriver&quot;
-    url=&quot;jdbc:database-url&quot;
-    userid=&quot;sa&quot;
-    password=&quot;pass&quot;
-    src=&quot;data.sql&quot;
-    rdbms=&quot;oracle&quot;
-    version=&quot;8.1.&quot;
-    &gt;
-insert
-into table some_table
-values(1,2,3,4);
-
-truncate table some_other_table;
-&lt;/sql&gt;
-</pre></blockquote>
-
-
-
-</body>
-</html>
diff --git a/docs/manual/CoreTasks/style.html b/docs/manual/CoreTasks/style.html
deleted file mode 100644
index 6069130..0000000
--- a/docs/manual/CoreTasks/style.html
+++ /dev/null
@@ -1,181 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="style">Style</a></h2>
-<h3>Description</h3>
-<p>Process a set of documents via XSLT.</p>
-<p>This is useful for building views of XML based documentation,
-or in generating code.</p>
-<p>It is possible to refine the set of files that are being copied. This can be
-done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
-attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
-have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
-the files you want to have excluded. This is also done with patterns. And
-finally with the <i>defaultexcludes</i> attribute, you can specify whether you
-want to use default exclusions or not. See the section on <a
-href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
-inclusion/exclusion of files works, and how to write patterns.</p>
-<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and supports all 
-  attributes of <code>&lt;fileset&gt;</code> (<code>dir</code> becomes <code>basedir</code>) 
-  as well as the nested <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> 
-  and <code>&lt;patternset&gt;</code> elements.</p>
-<p>Style supports the use of a &lt;param&gt; element which is used to pass values 
-  to an &lt;xsl:param&gt; declaration.</p>
-<p>If you want to use Xalan-J 1 or XSL:P, you also need Ant's optional.jar</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">basedir</td>
-    <td valign="top">where to find the source XML file, default is the
-      project's basedir.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">destdir</td>
-    <td valign="top">directory in which to store the results.</td>
-    <td align="center" valign="top">Yes, unless in and out have been
-      specified.</td>
-  </tr>
-  <tr>
-    <td valign="top">extension</td>
-    <td valign="top">desired file extension to be used for the targets. If not 
-      specified, the default is &quot;html&quot;.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">style</td>
-    <td valign="top">name of the stylesheet to use - given either relative
-      to the project's basedir or as an absolute path
-      <em><strong>DEPRECATED</strong> - can be specified as a path relative
-          to the basedir attribute of this task as well</em>.
-    </td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">classpath</td> 
-    <td valign="top">the classpath to use when looking up the XSLT
-      processor.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">classpathref</td>
-    <td valign="top">the classpath to use, given as <a
-      href="../using.html#references">reference</a> to a path defined elsewhere.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">force</td>
-    <td valign="top">Recreate target files, even if they are newer
-      than their corresponding source files or the stylesheet.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">processor</td>
-    <td valign="top">name of the XSLT processor to use.  Permissible values are
-      &quot;trax&quot; for a TraX compliant processor, &quot;xslp&quot; for the 
-      XSL:P processor, &quot;xalan&quot; for the Apache XML Xalan (version 1) 
-      processor, or the name of an arbitrary XSLTLiaison class. Defaults to trax, 
-      followed by xslp then xalan (in that order). The first one found in your 
-      class path is the one that is used.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma separated list of patterns of files that must be included. 
-      All files are included when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top">the name of a file. Each line of this file is taken to be 
-      an include pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma separated list of patterns of files that must be excluded. 
-      No files (except default excludes) are excluded when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file. Each line of this file is taken to be 
-      an exclude pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes should be used or not
-      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">in</td>
-    <td valign="top">specifies a single XML document to be styled. Should be used 
-      with the out attribute.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">out</td>
-    <td valign="top">specifies the output name for the styled result from the 
-      in attribute.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Parameters specified as nested elements</h3>
-<h4>classpath</h4>
-<p>The classpath to load the processor from can be specified via a
-nested <code>&lt;classpath&gt;</code>, as well - that is, a 
-<a href="../using.html#path">path</a>-like structure.</p>
-<h4>param</h4>
-<p>Param is used to pass a parameter to the XSL stylesheet.</p>
-<h4>Parameters</h4>
-<table width="60%" border="1" cellpadding="2" cellspacing="0">
-  <tr> 
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr> 
-    <td valign="top">name</td>
-    <td valign="top">Name of the XSL parameter</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr> 
-    <td valign="top">expression</td>
-    <td valign="top">XSL expression to be placed into the param. To pass a text 
-      value into the style sheet it needs to be escaped using single quotes.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-  <pre>
-&lt;style basedir=&quot;doc&quot; destdir=&quot;build/doc&quot;
-       extension=&quot;html&quot; style=&quot;style/apache.xsl&quot;/&gt;</pre>
-  <h4>Using XSL parameters</h4>
-  <pre>&lt;style basedir=&quot;doc&quot; destdir=&quot;build/doc&quot;
-		extension=&quot;html&quot; style=&quot;style/apache.xsl&quot;&gt;
-	&lt;param name=&quot;date&quot; expression=&quot;'07-01-2000'&quot;/&gt;
-&lt;/style&gt;</pre>
-  <p>This will replace an xsl:param definition&lt;xsl:param name=&quot;date&quot;&gt;&lt;/xsl:param&gt; 
-    with the text value 07-01-2000 </p>
-  </blockquote>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/tar.html b/docs/manual/CoreTasks/tar.html
deleted file mode 100644
index 86d1f21..0000000
--- a/docs/manual/CoreTasks/tar.html
+++ /dev/null
@@ -1,185 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="tar">Tar</a></h2>
-<h3>Description</h3>
-<p>Creates a tar archive.</p>
-<p>The <i>basedir</i> attribute is the reference directory from where to tar.</p>
-<p>This task is a <a href="../dirtasks.html#directorybasedtasks">directory based task</a>
-and, as such, forms an implicit <a href="../CoreTypes/fileset.html">Fileset</a>. This 
-defines which files, relative to the <i>basedir</i>, will be included in the
-archive. The tar task supports all the attributes of Fileset to refine the
-set of files to be included in the implicit fileset.</p>
-
-<p>In addition to the implicit fileset, the tar task supports nested filesets. These
-filesets are extended to allow control over the access mode, username and groupname 
-to be applied to the tar entries. This is useful, for example, when preparing archives for 
-Unix systems where some files need to have execute permission.</p>
-
-<p>Early versions of tar did not support path lengths greater than 100 
-characters. Modern versions of tar do so, but in incompatible ways.
-The behaviour of the tar task when it encounters such paths is 
-controlled by the <i>longfile</i> attribute. 
-If the longfile attribute is set to <code>fail</code>, any long paths will 
-cause the tar task to fail.  If the longfile attribute is set to 
-<code>truncate</code>, any long paths will be truncated to the 100 character 
-maximum length prior to adding to the archive. If the value of the longfile 
-attribute is set to <code>omit</code> then files containing long paths will be 
-omitted from the archive.  Either option ensures that the archive can be 
-untarred by any compliant version of tar. If the loss of path or file 
-information is not acceptable, and it rarely is, longfile may be set to the 
-value <code>gnu</code>. The tar task will then produce a GNU tar file which 
-can have arbitrary length paths. Note however, that the resulting archive will 
-only be able to be untarred with GNU tar.  The default for the longfile 
-attribute is <code>warn</code> which behaves just like the gnu option except 
-that it produces a warning for each file path encountered that does not match 
-the limit.</p>
-
-<p>Note that this task does not perform compression. You might want to use the 
-<a href="gzip.html">GZip</a> task to prepare a .tar.gz package.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td valign="top" align="center"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">tarfile</td>
-    <td valign="top">the tar-file to create.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">basedir</td>
-    <td valign="top">the directory from which to zip the files.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">longfile</td>
-    <td valign="top">Determines how long files (&gt;100 chars) are to be 
-       handled.  Allowable values are &quot;truncate&quot;, &quot;fail&quot;, 
-       &quot;warn&quot;, &quot;omil&quot; and &quot;gnu&quot;.  Default is 
-       &quot;warn&quot;.
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      included. All files are included when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an include pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      excluded. No files (except default excludes) are excluded when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an exclude pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes should be used or not
-      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-
-<h3>Nested Elements</h3>
-The tar task supports nested <a href="../CoreTypes/fileset.html">tarfileset</a> elements. These are
-extended Filesets which, in addition to the standard fileset elements, support three additional
-attributes
-
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td valign="top" align="center"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">mode</td>
-    <td valign="top">An 3 digit octal string, specify the user, group and other modes in 
-                     the standard Unix fashion</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">username</td>
-    <td valign="top">The username for the tar entry. This is not the same as the UID, which is 
-                     not currently set by the tar task.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">group</td>
-    <td valign="top">The groupname for the tar entry. This is not the same as the GID, which is 
-                     not currently set by the tar task.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-
-<h3>Examples</h3>
-<pre>  &lt;tar tarfile=&quot;${dist}/manual.tar&quot; basedir=&quot;htdocs/manual&quot;/&gt;
-  &lt;gzip zipfile=&quot;${dist}/manual.tar.gz&quot; src=&quot;${dist}/manual.tar&quot;/&gt;</pre>
-<p>tars all files in the <code>htdocs/manual</code> directory into a file called <code>manual.tar</code>
-in the <code>${dist}</code>  directory, then applies the gzip task to compress
-it.</p>
-<pre>  &lt;tar tarfile=&quot;${dist}/manual.tar&quot;
-       basedir=&quot;htdocs/manual&quot;
-       excludes=&quot;mydocs/**, **/todo.html&quot;
-  /&gt;</pre>
-<p>tars all files in the <code>htdocs/manual</code> directory into a file called <code>manual.tar</code>
-in the <code>${dist}</code> directory. Files in the directory <code>mydocs</code>,
-or files with the name <code>todo.html</code> are excluded.</p>
-
-<pre>&lt;tar longfile=&quot;gnu&quot;
-     tarfile=&quot;${dist.base}/${dist.name}-src.tar&quot; &gt;
-  &lt;tarfileset dir=&quot;${dist.name}/..&quot; mode=&quot;755&quot; username=&quot;ant&quot; group=&quot;ant&quot;&gt;
-    &lt;include name=&quot;${dist.name}/bootstrap.sh&quot;/&gt;
-    &lt;include name=&quot;${dist.name}/build.sh&quot;/&gt;
-  &lt;/tarfileset&gt; 
-  &lt;tarfileset dir=&quot;${dist.name}/..&quot; username=&quot;ant&quot; group=&quot;ant&quot;&gt; 
-    &lt;include name=&quot;${dist.name}/**&quot;/&gt;
-    &lt;exclude name=&quot;${dist.name}/bootstrap.sh&quot;/&gt;
-    &lt;exclude name=&quot;${dist.name}/build.sh&quot;/&gt;
-  &lt;/tarfileset&gt;
-&lt;/tar&gt; </pre>
-
-<p>This example shows building a tar which uses the GNU extensions for long paths and
-where some files need to be marked as executable (mode 755)
-and the rest are use the default mode (read-write by owner). The first
-fileset selects just the executable files. The second fileset must exclude
-the executable files and include all others. </p>
-
-<p><strong>Note: </strong> The tar task does not ensure that a file is only selected
-by one fileset. If the same file is selected by more than one fileset, it will be included in the 
-tar file twice, with the same path.</p>
-
-<p><strong>Note:</strong> The patterns in the include and exclude
-elements are considered to be relative to the corresponding dir
-attribute as with all other filesets.  In the example above,
-<code>${dist.name}</code> is not an absolute path, but a simple name
-of a directory, so <code>${dist.name}</code> is a valid path relative
-to <code>${dist.name}/..</code>.</p>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/taskdef.html b/docs/manual/CoreTasks/taskdef.html
deleted file mode 100644
index 9d24fbe..0000000
--- a/docs/manual/CoreTasks/taskdef.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="taskdef">Taskdef</a></h2>
-<h3>Description</h3>
-<p>Adds a task definition to the current project, such that this new task can be
-used in the current project. Two attributes are needed, the name that identifies
-this task uniquely, and the full name of the class (including the packages) that
-implements this task.</p>
-<p>You can also define a group of tasks at once using the file or
-resource attributes.  These attributes point to files in the format of
-Java property files.  Each line defines a single task in the
-format:</p>
-<pre>
-taskname=fully.qualified.java.classname
-</pre>
-<p>Taskdef should be used to add your own tasks to the system. See also &quot;<a
-href="../develop.html#writingowntask">Writing your own task</a>&quot;.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">name</td>
-    <td valign="top">the name of the task</td>
-    <td valign="top" align="center">Yes, unless file or resource have
-    been specified.</td>
-  </tr>
-  <tr>
-    <td valign="top">classname</td>
-    <td valign="top">the full class name implementing the task</td>
-    <td valign="top" align="center">Yes, unless file or resource have
-    been specified.</td>
-  </tr>
-  <tr>
-    <td valign="top">file</td>
-    <td valign="top">Name of the property file to load
-     taskname/classname pairs from.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">resource</td>
-    <td valign="top">Name of the property resource to load
-     taskname/classname pairs from.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">classpath</td> <td valign="top">the classpath to
-    use when looking up <code>classname</code> or
-    <code>resource</code>.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<h3>Parameters specified as nested elements</h3>
-<h4>classpath</h4>
-<p><code>Taskdef</code>'s <i>classpath</i> attribute is a <a
-href="../using.html#path">PATH like structure</a> and can also be set via a nested
-<i>classpath</i> element.</p>
-<h3>Examples</h3>
-<pre>  &lt;taskdef name=&quot;myjavadoc&quot; classname=&quot;com.mydomain.JavadocTask&quot;/&gt;</pre>
-<p>makes a task called <code>myjavadoc</code> available to Ant. The class <code>com.mydomain.JavadocTask</code>
-implements the task.</p>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/touch.html b/docs/manual/CoreTasks/touch.html
deleted file mode 100644
index 6393813..0000000
--- a/docs/manual/CoreTasks/touch.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="touch">Touch</a></h2>
-<h3>Description</h3>
-<p>Changes the modification time of a file and possibly creates it at
-the same time. In addition to working with a single file, this Task
-can also work a <a href="../CoreTypes/fileset.html">Fileset</a> (which
-also includes directories).</p>
-<p>For JDK 1.1 only the creation of new files with a modification time
-of now works, all other cases will emit a warning.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">file</td>
-    <td valign="top">the name of the file</td>
-    <td valign="top" align="center">unless a nested fileset element
-       has been specified.</td>
-  </tr>
-  <tr>
-    <td valign="top">millis</td>
-    <td valign="top">specifies the new modification time of the file
-       in milliseconds since midnight Jan 1 1970</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">datetime</td>
-    <td valign="top">specifies the new modification time of the file
-       in the format MM/DD/YYYY HH:MM AM_or_PM.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<p>If both <code>millis</code> and <code>datetime</code> are omitted
-the current time is assumed.</p>
-<h3>Examples</h3>
-<pre>  &lt;touch file=&quot;myfile&quot;/&gt;</pre>
-<p>creates <code>myfile</code> if it doesn't exist and changes the
-modification time to the current time.</p>
-<pre>  &lt;touch file=&quot;myfile&quot; datetime=&quot;06/28/2000 2:02 pm&quot;/&gt;</pre>
-<p>creates <code>myfile</code> if it doesn't exist and changes the
-modification time to Jun, 28 2000 2:02 pm (14:02 for those used to 24
-hour times).</p>
-<pre>  &lt;touch datetime=&quot;09/10/1974 4:30 pm&quot;&gt;
-    &lt;fileset dir=&quot;src_dir&quot;/&gt;
-  &lt;/touch&gt;</pre>
-<p>changes the modification time to Oct, 09 1974 4:30 pm of all files and directories 
-  found in <code>src_dir</code>. </p>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/tstamp.html b/docs/manual/CoreTasks/tstamp.html
deleted file mode 100644
index bb98da6..0000000
--- a/docs/manual/CoreTasks/tstamp.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="tstamp">Tstamp</a></h2>
-
-<h3>Description</h3>
-<p>Sets the <code>DSTAMP</code>, <code>TSTAMP</code>, and <code>TODAY</code>
-properties in the current project. The <code>DSTAMP</code> property is in the
-format &quot;yyyymmdd&quot;, <code>TSTAMP</code> is in the
-format &quot;hhmm&quot;, and <code>TODAY</code> is in the
-format &quot;month day year&quot;.
-
-<p>These properties can be used in the build-file, for instance, to create
-time-stamped filenames, or used to replace placeholder tags inside documents
-to indicate, for example, the release date. The best place for this task is
-probably in an initialization target.
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr> <td colspan="3"> No parameters</td>
-  </tr>
-</table>
-
-<h3>Nested Elements</h3>
-The Tstamp task supports a <code>&lt;format&gt;</code> nested element that
-allows a property to be set to the current date and time in a given format.
-The date/time patterns are as defined in the Java 
-<a href=http://java.sun.com/products/jdk/1.2/docs/api/java/text/SimpleDateFormat.html>SimpleDateFormat</a> class. 
-The format element also allows offsets to be applied to the time to generate different time values.
-<br><br>
-<table width="60%" border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">property</td>
-    <td valign="top">
-        The property to receive the date/time string in the given pattern.
-    </td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">pattern</td>
-    <td valign="top">The date/time pattern to be used. The values are as defined by the Java SimpleDateFormat class.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">offset</td>
-    <td valign="top">The numeric offset to the current time</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">unit</td>
-    <td valign="top">The unit of the offset to be applied to the current time.
-                     Valid Values are
-                     <ul>
-                        <li>millisecond</li>
-                        <li>second</li>
-                        <li>minute</li>
-                        <li>hour</li>
-                        <li>day</li>
-                        <li>week</li>
-                        <li>month</li>
-                        <li>year</li>
-                     </ul>
-    </td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">locale</td>
-    <td valign="top">The locale used to create date/time string. The general
-      form is "language, country, variant" but either variant or variant and
-      country may be omitted. For more information please refer to documentation
-      for the 
-      <a href="http://java.sun.com/j2se/1.3/docs/api/java/util/Locale.html">Locale</a>
-      class.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-
-<h3>Examples</h3>
-
-<pre>
-  &lt;tstamp/&gt;
-</pre>
-
-<p>
-sets the standard <code>DSTAMP</code>, <code>TSTAMP</code>,
-and <code>TODAY</code> properties according to the default formats.</p>
-<pre>
-  &lt;tstamp&gt;
-    &lt;format property=&quot;TODAY_UK&quot; pattern=&quot;d-MMMM-yyyy&quot; locale=&quot;en&quot;/&gt;
-  &lt;/tstamp&gt;
-</pre>
-<p>
-sets the standard properties as well as the property
-<code>TODAY_UK</code> with the date/time pattern &quot;d-MMMM-yyyy&quot;
-using English locale (eg. 21-May-2001).
-
-<pre>
-  &lt;tstamp&gt;
-      &lt;format property=&quot;touch.time&quot; pattern=&quot;MM/dd/yyyy hh:mm aa&quot; 
-              offset=&quot;-5&quot; unit=&quot;hour&quot;/&gt;
-  &lt;/tstamp&gt; 
-</pre>    
-<p>
-Creates a timestamp, in the property touch.time, 5 hours before the current time. The format in this example
-is suitable for use with the &lt;touch&gt; task</p>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/typedef.html b/docs/manual/CoreTasks/typedef.html
deleted file mode 100644
index a5c927d..0000000
--- a/docs/manual/CoreTasks/typedef.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="typedef">Typedef</a></h2>
-<h3>Description</h3>
-<p>Adds a data type definition to the current project, such that this
-new type can be used in the current project. Two attributes are
-needed, the name that identifies this data type uniquely, and the full
-name of the class (including the packages) that implements this
-type.</p>
-<p>You can also define a group of data types at once using the file or
-resource attributes.  These attributes point to files in the format of
-Java property files.  Each line defines a single data type in the
-format:</p>
-<pre>
-typename=fully.qualified.java.classname
-</pre>
-<p>Typedef should be used to add your own types to the system. Data
-types are things like <a href="../using.html#path">paths</a> or <a
-href="../CoreTypes/fileset.html">filesets</a> that can be defined at
-the project level and referenced via their ID attribute.</p>
-<p>Custom data types usually need custom tasks to put them to good use.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">name</td>
-    <td valign="top">the name of the data type</td>
-    <td valign="top" align="center">Yes, unless file or resource have
-    been specified.</td>
-  </tr>
-  <tr>
-    <td valign="top">classname</td>
-    <td valign="top">the full class name implementing the data type</td>
-    <td valign="top" align="center">Yes, unless file or resource have
-    been specified.</td>
-  </tr>
-  <tr>
-    <td valign="top">file</td>
-    <td valign="top">Name of the property file to load
-     typename/classname pairs from.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">resource</td>
-    <td valign="top">Name of the property resource to load
-     typename/classname pairs from.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">classpath</td> <td valign="top">the classpath to
-      use when looking up <code>classname</code>.</td> <td
-    align="center" valign="top">No</td>
-  </tr>
-</table>
-<h3>Parameters specified as nested elements</h3>
-<h4>classpath</h4>
-<p><code>Typedef</code>'s <i>classpath</i> attribute is a 
-<a href="../using.html#path">PATH like structure</a> and can also be set
-via a nested <i>classpath</i> element.</p>
-<h3>Examples</h3>
-<pre>  &lt;typedef name=&quot;urlset&quot; classname=&quot;com.mydomain.URLSet&quot;/&gt;</pre>
-<p>makes a data type called <code>urlset</code> available to Ant. The
-class <code>com.mydomain.URLSet</code> implements this type.</p>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software
-Foundation. All rights Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/untar.html b/docs/manual/CoreTasks/untar.html
deleted file mode 100644
index f2c1835..0000000
--- a/docs/manual/CoreTasks/untar.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="untar">Untar</a></h2>
-<h3>Description</h3>
-<p>Untars a tarfile.</p>
-
-<p><strong>Note: </strong>File permissions will not be restored on extracted files.</p>
-
-<p>For JDK 1.1 &quot;last modified time&quot; field is set to current time instead of being 
-carried from tarfile.</p>
-
-<p>The untar task recognizes the long pathname entries used by GNU tar.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">src</td>
-    <td valign="top">tarfile to expand.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">dest</td>
-    <td valign="top">directory where to store the expanded files.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">overwrite</td>
-    <td valign="top">Overwrite files, even if they are newer than the
-      corresponding entries in the archive (true or false, default is
-      true).</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-  <p><code>
-&lt;gunzip src=&quot;tools.tar.gz&quot;/&gt;<br>
-&lt;untar src=&quot;tools.tar&quot; dest=&quot;${tools.home}&quot;/&gt;
-</code></p>
-</blockquote>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/unzip.html b/docs/manual/CoreTasks/unzip.html
deleted file mode 100644
index dd7415b..0000000
--- a/docs/manual/CoreTasks/unzip.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="unzip">Unjar/Unwar/Unzip</a></h2>
-<h3>Description</h3>
-<p>Unzips a zip-, war- or jarfile.</p>
-<p>For JDK 1.1 &quot;last modified time&quot; field is set to current time instead of being 
-carried from zipfile.</p>
-<p>File permissions will not be restored on extracted files.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">src</td>
-    <td valign="top">zipfile to expand.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">dest</td>
-    <td valign="top">directory where to store the expanded files.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">overwrite</td>
-    <td valign="top">Overwrite files, even if they are newer than the
-      corresponding entries in the archive (true or false, default is
-      true).</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-  <p><code>&lt;unzip src=&quot;${tomcat_src}/tools-src.zip&quot; dest=&quot;${tools.home}&quot;
-  /&gt;</code></p>
-</blockquote>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/uptodate.html b/docs/manual/CoreTasks/uptodate.html
deleted file mode 100644
index de53292..0000000
--- a/docs/manual/CoreTasks/uptodate.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="uptodate">Uptodate</a></h2>
-<h3>Description</h3>
-<p>Sets a property if a target files are more up to date than a set of
-Source files. Source files are specified by nested &lt;srcfiles&gt;
-elements, these are <a href="../CoreTypes/fileset.html">FileSet</a>s, while target
-files are specified using a nested <a href="../CoreTypes/mapper.html">mapper</a>
-element.</p>
-<p>The value part of the property being set is <i>true</i> if the
-timestamp of the target files is more recent than the timestamp of
-every corresponding source file.</p>
-<p>The default behavior is to use a <a href="../CoreTypes/mapper.html#merge-mapper">merge
-mapper</a> with the <code>to</code> attribute set to the value of the
-targetfile attribute.</p>
-<p>Normally, this task is used to set properties that are useful to avoid target
-execution depending on the relative age of the specified files.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">property</td>
-    <td valign="top">the name of the property to set.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">value</td>
-    <td valign="top">the value to set the property to. Defaults to &quot;true&quot;.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">targetfile</td>
-    <td valign="top">the file for which we want to determine the status.</td>
-    <td valign="top" align="center">Yes, unless a nested mapper element is 
-      present.</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>  &lt;uptodate property=&quot;xmlBuild.notRequired&quot; targetfile=&quot;${deploy}\xmlClasses.jar&quot; &gt;
-    &lt;srcfiles dir= &quot;${src}/xml&quot; includes=&quot;**/*.dtd&quot;/&gt;
-  &lt;/uptodate&gt;</pre>
-<p>sets the property <code><i>xmlBuild.notRequired</i></code> to the value &quot;true&quot;
-if the <i>${deploy}/xmlClasses.jar</i> is more up to date than any of the DTD files in the <i>${src}/xml</i> directory.</p>
-<p>This can be written as</p>
-<pre>  &lt;uptodate property=&quot;xmlBuild.notRequired&quot;  &gt;
-    &lt;srcfiles dir= &quot;${src}/xml&quot; includes=&quot;**/*.dtd&quot;/&gt;
-    &lt;mapper type=&quot;merge&quot; to=&quot;${deploy}\xmlClasses.jar&quot;/&gt;
-  &lt;/uptodate&gt;</pre>
-<p>as well.</p>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/war.html b/docs/manual/CoreTasks/war.html
deleted file mode 100644
index bb19991..0000000
--- a/docs/manual/CoreTasks/war.html
+++ /dev/null
@@ -1,168 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="war">War</a></h2>
-<h3>Description</h3>
-<p>An extension of the <a href="jar.html">Jar</a> task with special
-treatment for files that should end up in the
-<code>WEB-INF/lib</code>, <code>WEB-INF/classes</code> or
-<code>WEB-INF</code> directories of the Web Application Archive.</p>
-<p>(The War task is a shortcut for specifying the particular layout of a WAR file. 
-The same thing can be accomplished by using the <i>prefix</i> and <i>fullpath</i>
-attributes of zipfilesets in a Zip or Jar task.)</p>
-<p>The extended zipfileset element from the zip task (with attributes <i>prefix</i>, <i>fullpath</i>, and <i>src</i>) is available in the War task.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">warfile</td>
-    <td valign="top">the war-file to create.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">webxml</td>
-    <td valign="top">The deployment descriptor to use (WEB-INF/web.xml).</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">basedir</td>
-    <td valign="top">the directory from which to jar the files.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">compress</td>
-    <td valign="top">Not only store data but also compress them, defaults to true</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">encoding</td>
-    <td valign="top">The character encoding to use for filenames
-      inside the archive.  Defaults to UTF8. <strong>It is not
-      recommended to change this value as the created archive will most
-      likely be unreadable for Java otherwise.</strong></td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">filesonly</td>
-    <td valign="top">Store only file entries, defaults to false</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      included. All files are included when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an include pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      excluded. No files (except default excludes) are excluded when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an exclude pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes should be used or not
-      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">manifest</td>
-    <td valign="top">the manifest file to use.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">whenempty</td>
-    <td valign="top">Behavior to use if no files match.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Nested elements</h3>
-<h4>lib</h4>
-<p>The nested <code>lib</code> element specifies a <a
-href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
-end up in the <code>WEB-INF/lib</code> directory of the war file.</p>
-<h4>classes</h4>
-<p>The nested <code>classes</code> element specifies a <a
-href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
-end up in the <code>WEB-INF/classes</code> directory of the war file.</p>
-<h4>webinf</h4>
-<p>The nested <code>webinf</code> element specifies a <a
-href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
-end up in the <code>WEB-INF</code> directory of the war file. If this
-fileset includes a file named <code>web.xml</code>, the file is
-ignored and you will get a warning.</p>
-<h4>metainf</h4>
-<p>The nested <code>metainf</code> element specifies a <a
-href="../CoreTypes/fileset.html">FileSet</a>. All files included in this fileset will
-end up in the <code>META-INF</code> directory of the war file. If this
-fileset includes a file named <code>MANIFEST.MF</code>, the file is
-ignored and you will get a warning.</p>
-<h3>Examples</h3>
-<p>Assume the following structure in the project's base directory:</p>
-<pre>
-thirdparty/libs/jdbc1.jar
-thirdparty/libs/jdbc2.jar
-build/main/com/myco/myapp/Servlet.class
-src/metadata/myapp.xml
-src/html/myapp/index.html
-src/jsp/myapp/front.jsp
-src/graphics/images/gifs/small/logo.gif
-src/graphics/images/gifs/large/logo.gif
-</pre>
-then the war file <code>myapp.war</code> created with
-<pre>
-&lt;war warfile=&quot;myapp.war&quot; webxml=&quot;src/metadata/myapp.xml&quot;&gt;
-  &lt;fileset dir=&quot;src/html/myapp&quot;/&gt;
-  &lt;fileset dir=&quot;src/jsp/myapp&quot;/&gt;
-  &lt;lib dir=&quot;thirdparty/libs&quot;&gt;
-    &lt;exclude name=&quot;jdbc1.jar&quot;/&gt;
-  &lt;/lib&gt;
-  &lt;classes dir=&quot;build/main&quot;/&gt;
-  &lt;zipfileset dir=&quot;src/graphics/images/gifs&quot; 
-              prefix=&quot;images&quot;/&gt;
-&lt;/war&gt;
-</pre>
-will consist of
-<pre>
-WEB-INF/web.xml
-WEB-INF/lib/jdbc2.jar
-WEB-INF/classes/com/myco/myapp/Servlet.class
-META-INF/MANIFEST.MF
-index.html
-front.jsp
-images/small/logo.gif
-images/large/logo.gif
-</pre>
-using Ant's default manifest file. The content of
-<code>WEB-INF/web.xml</code> is identical to
-<code>src/metadata/myapp.xml</code>.
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTasks/zip.html b/docs/manual/CoreTasks/zip.html
deleted file mode 100644
index 57ed597..0000000
--- a/docs/manual/CoreTasks/zip.html
+++ /dev/null
@@ -1,180 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="zip">Zip</a></h2>
-<h3>Description</h3>
-<p>Creates a zipfile.</p>
-<p>The <i>basedir</i> attribute is the reference directory from where to zip.</p>
-<p>Note that file permissions will not be stored in the resulting zipfile.</p>
-<p>It is possible to refine the set of files that are being zipped. This can be
-done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
-attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
-have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
-the files you want to have excluded. This is also done with patterns. And
-finally with the <i>defaultexcludes</i> attribute, you can specify whether you
-want to use default exclusions or not. See the section on <a
-href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
-inclusion/exclusion of files works, and how to write patterns. </p>
-<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
-supports all attributes of <code>&lt;fileset&gt;</code>
-(<code>dir</code> becomes <code>basedir</code>) as well as the nested
-<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
-<code>&lt;patternset&gt;</code> elements.</p>
-<p>Or, you may place within it nested file sets, or references to file sets.
-In this case <code>basedir</code> is optional; the implicit file set is <i>only used</i>
-if <code>basedir</code> is set. You may use any mixture of the implicit file set
-(with <code>basedir</code> set, and optional attributes like <code>includes</code>
-and optional subelements like <code>&lt;include&gt;</code>); explicit nested
-<code>&lt;fileset&gt;</code> elements so long as at least one fileset total is specified. The ZIP file will
-only reflect the relative paths of files <i>within</i> each fileset. The Zip task and its derivatives know a special form of a fileset named zipfileset that has additional attributes (described below). </p>
-<p>The <code>whenempty</code> parameter controls what happens when no files match.
-If <code>skip</code> (the default), the ZIP is not created and a warning is issued.
-If <code>fail</code>, the ZIP is not created and the build is halted with an error.
-If <code>create</code>, an empty ZIP file (explicitly zero entries) is created,
-which should be recognized as such by compliant ZIP manipulation tools.</p>
-<p>This task will now use the platform's default character encoding
-for filenames - this is consistent with the command line ZIP tools,
-but causes problems if you try to open them from within Java and your
-filenames contain non US-ASCII characters. Use the encoding attribute
-and set it to UTF8 to create zip files that can savely be read by
-Java.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td valign="top" align="center"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">zipfile</td>
-    <td valign="top">the zip-file to create.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">basedir</td>
-    <td valign="top">the directory from which to zip the files.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">compress</td>
-    <td valign="top">Not only store data but also compress them, defaults to true</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">encoding</td>
-    <td valign="top">The character encoding to use for filenames
-    inside the zip file.  For a list of possible values see <a
-    href="http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html">http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html</a>.
-    Defaults to the platform's default character encoding.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">filesonly</td>
-    <td valign="top">Store only file entries, defaults to false</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      included. All files are included when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an include pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      excluded. No files (except default excludes) are excluded when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an exclude pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes should be used or not
-      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">whenempty</td>
-    <td valign="top">Behavior when no files match.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Parameters specified as nested elements</h3>
-<h4>fileset</h4>
-<p>The zip task supports any number of nested <a
-href="../CoreTypes/fileset.html"><code>&lt;fileset&gt;</code></a> elements to specify
-the files to be included in the archive.</p>
-<h4>zipfileset</h4>
-<p>A <code>&lt;zipfileset&gt;</code> has three additional attributes: <i>prefix</i>, <i>fullpath</i>, and <i>src</i>.  The 
-<i>prefix</i> and <i>fullpath</i> attributes modify the location of the files when they are placed 
-inside the archive. If the <i>prefix</i> attribute is set, all files in the fileset are prefixed
-with that path in the archive. If the <i>fullpath</i> attribute is set, the file described by the fileset is placed at that 
-exact location in the archive. (The <i>fullpath</i> attribute can only be set for filesets that represent a single file. The <i>prefix</i> and <i>fullpath</i> attributes cannot both be set on the same fileset.)  The <i>src</i> attribute
-may be used in place of the <i>dir</i> attribute to specify a zip file whose
-contents will be extracted and included in the archive.  As with directories, include and exclude patterns may be used to specify a subset of the zip file
-for inclusion in the archive.</p>
-
-<h3>Examples</h3>
-<pre>  &lt;zip zipfile=&quot;${dist}/manual.zip&quot;
-       basedir=&quot;htdocs/manual&quot;
-  /&gt;</pre>
-<p>zips all files in the <code>htdocs/manual</code> directory into a file called <code>manual.zip</code>
-in the <code>${dist}</code> directory.</p>
-<pre>  &lt;zip zipfile=&quot;${dist}/manual.zip&quot;
-       basedir=&quot;htdocs/manual&quot;
-       excludes=&quot;mydocs/**, **/todo.html&quot;
-  /&gt;</pre>
-<p>zips all files in the <code>htdocs/manual</code> directory. Files in the directory <code>mydocs</code>,
-or files with the name <code>todo.html</code> are excluded.</p>
-<pre>  &lt;zip zipfile=&quot;${dist}/manual.zip&quot;
-       basedir=&quot;htdocs/manual&quot;
-       includes=&quot;api/**/*.html&quot;
-       excludes=&quot;**/todo.html&quot;
-  /&gt;</pre>
-<p>zips all files in the <code>htdocs/manual</code> directory. Only html files under the directory <code>api</code>
-are zipped, and files with the name <code>todo.html</code> are excluded.</p>
-<pre>  &lt;zip zipfile=&quot;${dist}/manual.zip&quot;&gt;
-    &lt;fileset dir=&quot;htdocs/manual&quot;/&gt;
-    &lt;fileset dir=&quot;.&quot; includes=&quot;ChangeLog.txt&quot;/&gt;
-  &lt;/zip&gt;</pre>
-<p>zips all files in the <code>htdocs/manual</code> directory, and also adds the file <code>ChangeLog.txt</code> in the
-current directory. <code>ChangeLog.txt</code> will be added to the top of the ZIP file, just as if
-it had been located at <code>htdocs/manual/ChangeLog.txt</code>.</p>
-<pre>  &lt;zip zipfile=&quot;${dist}/manual.zip&quot;&gt;
-    &lt;zipfileset dir=&quot;htdocs/manual&quot; prefix=&quot;docs/user-guide&quot;/&gt;
-    &lt;zipfileset dir=&quot;.&quot; includes=&quot;ChangeLog27.txt&quot; fullpath=&quot;docs/ChangeLog.txt&quot;/&gt;
-    &lt;zipfileset src=&quot;examples.zip&quot; includes=&quot;**/*.html&quot; prefix=&quot;docs/examples&quot;/&gt;
-  &lt;/zip&gt;</pre>
-<p>zips all files in the <code>htdocs/manual</code> directory into the <code>docs/user-guide</code> directory
-in the archive, adds the file <code>ChangeLog27.txt</code> in the
-current directory as <code>docs/ChangeLog.txt</code>, and includes all the html files in <code>examples.zip</code> 
-under <code>docs/examples</code>.  The archive might end up containing the files:</p>
-<pre><code>    docs/user-guide/html/index.html
-    docs/ChangeLog.txt
-    docs/examples/index.html
-</code></pre>
-
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTypes/description.html b/docs/manual/CoreTypes/description.html
deleted file mode 100644
index 02d1a2a..0000000
--- a/docs/manual/CoreTypes/description.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="description">Description</a></h2>
-<h3>Description</h3>
-<p>Provides a description of the current project.</p>
-<h3>Parameters</h3>
-<p>(none)</p>
-<h3>Examples</h3>
-<pre>  
-&lt;description&gt;
-This buildfile is used to build the foo subproject within 
-the large, complex bar project.
-&lt;/description&gt;
-</pre>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTypes/filelist.html b/docs/manual/CoreTypes/filelist.html
deleted file mode 100644
index bb67949..0000000
--- a/docs/manual/CoreTypes/filelist.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="filelist">FileList</a></h2> 
-
-<p>FileLists are explicitly named lists of files.  Whereas FileSets
-act as filters, returning only those files that exist in the file
-system and match specified patterns, filelists are useful for
-specifying filenames that may or may not exist.  Multiple files are
-specified via a comma-separated list, with no support for wildcards.
-FileLists can appear inside tasks that support this feature or at the
-same level as <code>target</code> - i.e., as children of
-<code>project</code>.
-</p>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">dir</td>
-    <td valign="top">the base directory of this FileList.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">files</td>
-    <td valign="top">Comma-separated list of file names.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  </tr>
-</table>
-
-<h4>Examples</h4>
-<blockquote><pre>
-&lt;filelist 
-    id=&quot;docfiles&quot; 
-    dir=&quot;${doc.src}&quot;
-    files=&quot;foo.xml,bar.xml&quot;/&gt; 
-</pre></blockquote>
-
-<p>The files <code>${doc.src}/foo.xml</code> and
-<code>${doc.src}/bar.xml</code>.  Note that these files may not (yet)
-actually exist.
-</p>
-
-<blockquote><pre>
-&lt;filelist refid=&quot;docfiles&quot;/&gt; 
-</pre></blockquote>
-
-<p>Same files as the example above.</p>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTypes/fileset.html b/docs/manual/CoreTypes/fileset.html
deleted file mode 100644
index 91bafd5..0000000
--- a/docs/manual/CoreTypes/fileset.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="fileset">FileSet</a></h2>
-<p>FileSets are groups of files. These files can be found in a
-directory tree starting in a base directory and are matched by
-patterns taken from a number of <a
-href="patternset.html">PatternSets</a>. FileSets can appear inside tasks
-that support this feature or at the same level as <code>target</code>
-- i.e., as children of <code>project</code>.</p>
-<p>PatternSets can be specified as nested
-<code>&lt;patternset&gt;</code> elements. In addition, FileSet holds
-an implicit PatternSet and supports the nested
-<code>&lt;include&gt;</code>, <code>&lt;includesfile&gt;</code>,
-<code>&lt;exclude&gt;</code> and <code>&lt;excludesfile&gt;</code>
-elements of PatternSet directly, as well as PatternSet's
-attributes.</p>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">dir</td>
-    <td valign="top">the root of the directory tree of this FileSet.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes should be used or not
-      (<code>yes | no</code>); default excludes are used when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma-separated list of patterns of files that must be
-      included; all files are included when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top">the name of a file; each line of this file is
-      taken to be an include pattern.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma-separated list of patterns of files that must be
-      excluded; no files (except default excludes) are excluded when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file; each line of this file is
-      taken to be an exclude pattern.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-
-<h4>Examples</h4>
-<blockquote><pre>
-&lt;fileset dir=&quot;${server.src}&quot; &gt;
-  &lt;patternset id=&quot;non.test.sources&quot; &gt;
-    &lt;include name=&quot;**/*.java&quot;/&gt;
-    &lt;exclude name=&quot;**/*Test*&quot;/&gt;
-  &lt;/patternset&gt;
-&lt;/fileset&gt;
-</pre></blockquote>
-<p>Groups all files in directory <code>${server.src}</code> that are Java
-source files and don't have the text <code>Test</code> in their
-name.</p>
-<blockquote><pre>
-&lt;fileset dir=&quot;${client.src}&quot; &gt;
-  &lt;patternset refid=&quot;non.test.sources&quot;/&gt;
-&lt;/fileset&gt;
-</pre></blockquote>
-<p>Groups all files in directory <code>${client.src}</code>, using the
-same patterns as the example above.</p>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTypes/mapper.html b/docs/manual/CoreTypes/mapper.html
deleted file mode 100644
index aafa38e..0000000
--- a/docs/manual/CoreTypes/mapper.html
+++ /dev/null
@@ -1,336 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="mapper">Mapping File Names</a></h2>
-<p>Some tasks take source files and create target files. Depending on
-the task, it may be quite obvious which name a target file will have
-(using <a href="../CoreTasks/javac.html">javac</a>, you know there will be
-<code>.class</code> files for your <code>.java</code> files) - in
-other cases you may want to specify the target files, either to help
-Ant or to get an extra bit of functionality.</p>
-<p>While source files are usually specified as <a
-href="fileset.html">fileset</a>s, you don't specify target files directly -
-instead, you tell Ant how to find the target file(s) for one source file. An
-instance of <code>org.apache.tools.ant.util.FileNameMapper</code> is
-responsible for this. It constructs target file names based on rules
-that can be parameterized with <code>from</code> and <code>to</code>
-attributes - the exact meaning of which is implementation-dependent.</p>
-<p>These instances are defined in <code>&lt;mapper&gt;</code> elements
-with the following attributes:</p>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">type</td>
-    <td valign="top">specifies one of the built-in implementations.</td>
-    <td rowspan="2" align="center" valign="middle">Exactly one of both</td>
-  </tr>
-  <tr>
-    <td valign="top">classname</td>
-    <td valign="top">specifies the implementation by class name.</td>
-  </tr>
-  <tr>
-    <td valign="top">classpath</td> 
-    <td valign="top">the classpath to use when looking up
-      <code>classname</code>.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">classpathref</td>
-    <td valign="top">the classpath to use, given as <a
-      href="../using.html#references">reference</a> to a path defined elsewhere.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">from</td> 
-    <td valign="top">the <code>from</code> attribute for the given
-      implementation.</td>
-    <td align="center" valign="top">Depends on implementation.</td>
-  </tr>
-  <tr>
-    <td valign="top">to</td> 
-    <td valign="top">the <code>to</code> attribute for the given
-      implementation.</td>
-    <td align="center" valign="top">Depends on implementation.</td>
-  </tr>
-</table>
-<p>The classpath can be specified via a nested
-<code>&lt;classpath&gt;</code>, as well - that is,
-a <a href="../using.html#path">path</a>-like structure.</p>
-<p>The built-in mapper types are:</p>
-<h4><a name="identity-mapper">identity</a></h4>
-<p>The target file name is identical to the source file name. Both
-<code>to</code> and <code>from</code> will be ignored.</p>
-<b>Examples:</b>
-<blockquote><pre>
-&lt;mapper type=&quot;identity&quot;/&gt;
-</pre></blockquote>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Source file name</b></td>
-    <td valign="top"><b>Target file name</b></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>A.java</code></td>
-    <td valign="top"><code>A.java</code></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>foo/bar/B.java</code></td>
-    <td valign="top"><code>foo/bar/B.java</code></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>C.properties</code></td>
-    <td valign="top"><code>C.properties</code></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
-    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
-  </tr>
-</table>
-<h4><a name="flatten-mapper">flatten</a></h4>
-<p>The target file name is identical to the source file name, with all
-leading directory information stripped off. Both <code>to</code> and
-<code>from</code> will be ignored.</p>
-<b>Examples:</b>
-<blockquote><pre>
-&lt;mapper type=&quot;flatten&quot;/&gt;
-</pre></blockquote>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Source file name</b></td>
-    <td valign="top"><b>Target file name</b></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>A.java</code></td>
-    <td valign="top"><code>A.java</code></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>foo/bar/B.java</code></td>
-    <td valign="top"><code>B.java</code></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>C.properties</code></td>
-    <td valign="top"><code>C.properties</code></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
-    <td valign="top"><code>A.properties</code></td>
-  </tr>
-</table>
-<h4><a name="merge-mapper">merge</a></h4>
-<p>The target file name will always be the same, as defined by
-<code>to</code> - <code>from</code> will be ignored.</p>
-<h5>Examples:</h5>
-<blockquote><pre>
-&lt;mapper type=&quot;merge&quot; to=&quot;archive.tar&quot;/&gt;
-</pre></blockquote>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Source file name</b></td>
-    <td valign="top"><b>Target file name</b></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>A.java</code></td>
-    <td valign="top"><code>archive.tar</code></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>foo/bar/B.java</code></td>
-    <td valign="top"><code>archive.tar</code></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>C.properties</code></td>
-    <td valign="top"><code>archive.tar</code></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
-    <td valign="top"><code>archive.tar</code></td>
-  </tr>
-</table>
-<h4><a name="glob-mapper">glob</a></h4>
-<p>Both <code>to</code> and <code>from</code> define patterns that may
-contain at most one <code>*</code>. For each source file that matches
-the <code>from</code> pattern, a target file name will be constructed
-from the <code>to</code> pattern by substituting the <code>*</code> in
-the <code>to</code> pattern with the text that matches the
-<code>*</code> in the <code>from</code> pattern. Source file names
-that don't match the <code>from</code> pattern will be ignored.</p>
-<b>Examples:</b>
-<blockquote><pre>
-&lt;mapper type=&quot;glob&quot; from=&quot;*.java&quot; to=&quot;*.java.bak&quot;/&gt;
-</pre></blockquote>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Source file name</b></td>
-    <td valign="top"><b>Target file name</b></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>A.java</code></td>
-    <td valign="top"><code>A.java.bak</code></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>foo/bar/B.java</code></td>
-    <td valign="top"><code>foo/bar/B.java.bak</code></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>C.properties</code></td>
-    <td valign="top">ignored</td>
-  </tr>
-  <tr>
-    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
-    <td valign="top">ignored</td>
-  </tr>
-</table>
-<blockquote><pre>
-&lt;mapper type=&quot;glob&quot; from=&quot;C*ies&quot; to=&quot;Q*y&quot;/&gt;
-</pre></blockquote>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Source file name</b></td>
-    <td valign="top"><b>Target file name</b></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>A.java</code></td>
-    <td valign="top">ignored</td>
-  </tr>
-  <tr>
-    <td valign="top"><code>foo/bar/B.java</code></td>
-    <td valign="top">ignored</td>
-  </tr>
-  <tr>
-    <td valign="top"><code>C.properties</code></td>
-    <td valign="top"><code>Q.property</code></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
-    <td valign="top"><code>Qlasses/dir/dir2/A.property</code></td>
-  </tr>
-</table>
-<h4><a name="regexp-mapper">regexp</a></h4>
-<p>Both <code>to</code> and <code>from</code> define regular
-expressions. If the source file name matches the <code>from</code>
-pattern, the target file name will be constructed from the
-<code>to</code> pattern, using <code>\0</code> to <code>\9</code> as
-back-references for the full
-match (<code>\0</code>) or the matches of the subexpressions in
-parentheses.
-Source
-files not matching the <code>from</code> pattern will be ignored.</p>
-<p>Note that you need to escape a dollar-sign (<code>$</code>) with
-another dollar-sign in Ant.</p>
-<p>The regexp mapper needs a supporting library and an implementation
-of <code>org.apache.tools.ant.util.regexp.RegexpMatcher</code> that
-hides the specifics of the library. Ant comes with implementations for
-<a href="http://java.sun.com/j2se/1.4/docs/api/java/util/regex/package-summary.html"  target="_top">the java.util.regex package of JDK 1.4</a>,
-<a href="http://jakarta.apache.org/regexp/" target="_top">jakarta-regexp</a> and <a
-href="http://jakarta.apache.org/oro/" target="_top">jakarta-ORO</a>. If you compile
-from sources and plan to use one of them, make sure the libraries are
-in your <code>CLASSPATH</code>. For information about using <a
-href="http://www.cacas.org/~wes/java/" target="_top">gnu.regexp</a> or <a
-href="http://www.crocodile.org/~sts/Rex/" target="_top">gnu.rex</a> with Ant, see <a
-href="http://marc.theaimsgroup.com/?l=ant-dev&m=97550753813481&w=2" target="_top">this</a>
-article.</p>
-<p>Ant will choose the regular-expression library based on the
-following algorithm:</p>
-<ul>
-<li>If the system property
-<code>ant.regexp.matcherimpl</code> has been set, it is taken as the
-name of the class implementing
-<code>org.apache.tools.ant.util.regexp.RegexpMatcher</code> that
-should be used.</li>
-<li>If it has not been set, first try the JDK 1.4 classes, then
-jakarta-ORO and finally try jakarta-regexp.</li>
-</ul>
-
-<b>Examples:</b>
-<blockquote><pre>
-&lt;mapper type=&quot;regexp&quot; from=&quot;^(.*)\.java$$&quot; to=&quot;\1.java.bak&quot;/&gt;
-</pre></blockquote>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Source file name</b></td>
-    <td valign="top"><b>Target file name</b></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>A.java</code></td>
-    <td valign="top"><code>A.java.bak</code></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>foo/bar/B.java</code></td>
-    <td valign="top"><code>foo/bar/B.java.bak</code></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>C.properties</code></td>
-    <td valign="top">ignored</td>
-  </tr>
-  <tr>
-    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
-    <td valign="top">ignored</td>
-  </tr>
-</table>
-<blockquote><pre>
-&lt;mapper type=&quot;regexp&quot; from=&quot;^(.*)/([^/]+)/([^/]*)$$&quot; to=&quot;\1/\2/\2-\3&quot;/&gt;
-</pre></blockquote>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Source file name</b></td>
-    <td valign="top"><b>Target file name</b></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>A.java</code></td>
-    <td valign="top">ignored</td>
-  </tr>
-  <tr>
-    <td valign="top"><code>foo/bar/B.java</code></td>
-    <td valign="top"><code>foo/bar/bar-B.java</code></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>C.properties</code></td>
-    <td valign="top">ignored</td>
-  </tr>
-  <tr>
-    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
-    <td valign="top"><code>Classes/dir/dir2/dir2-A.properties</code></td>
-  </tr>
-</table>
-<blockquote><pre>
-&lt;mapper type=&quot;regexp&quot; from=&quot;^(.*)\.(.*)$$&quot; to=&quot;\2.\1&quot;/&gt;
-</pre></blockquote>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Source file name</b></td>
-    <td valign="top"><b>Target file name</b></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>A.java</code></td>
-    <td valign="top"><code>java.A</code></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>foo/bar/B.java</code></td>
-    <td valign="top"><code>java.foo/bar/B</code></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>C.properties</code></td>
-    <td valign="top"><code>properties.C</code></td>
-  </tr>
-  <tr>
-    <td valign="top"><code>Classes/dir/dir2/A.properties</code></td>
-    <td valign="top"><code>properties.Classes/dir/dir2/A</code></td>
-  </tr>
-</table>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/CoreTypes/patternset.html b/docs/manual/CoreTypes/patternset.html
deleted file mode 100644
index b575d72..0000000
--- a/docs/manual/CoreTypes/patternset.html
+++ /dev/null
@@ -1,168 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="patternset">PatternSet</a></h2>
-<p><a href="../dirtasks.html#patterns">Patterns</a> can be grouped to
-sets and later be referenced by their <code>id</code> attribute. They
-are defined via a <code>patternset</code> element, which can appear
-nested into a <a href="fileset.html">FileSet</a> or a directory-based
-task that constitutes an implicit FileSet. In addition,
-<code>patternset</code>s can be defined as a stand alone element at
-the same level as <code>target</code> &#151; i.e., as children of
-<code>project</code> as well as as children of
-<code>target</code>.</p> <p>Patterns can be specified by nested
-<code>&lt;include&gt;</code>, or <code>&lt;exclude&gt;</code> elements
-or the following attributes.</p>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma-separated list of patterns of files that must be
-      included. All files are included when omitted.</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top">the name of a file; each line of this file is
-      taken to be an include pattern. You can specify more than one
-      include file by using a nested includesfile elements.</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma-separated list of patterns of files that must be
-      excluded; no files (except default excludes) are excluded when omitted.</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file; each line of this file is
-      taken to be an exclude pattern. You can specify more than one
-      exclude file by using a nested excludesfile elements.</td>
-  </tr>
-</table>
-<h3>Parameters specified as nested elements</h3>
-<h4><code>include</code> and <code>exclude</code></h4>
-<p>Each such element defines a single pattern for files to include or
-exclude.</p>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">name</td>
-    <td valign="top">the <a href=="../dirtasks.html#patterns">pattern</a>
-      to in/exclude.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">if</td>
-    <td valign="top">Only use this pattern if the named property is set.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">unless</td>
-    <td valign="top">Only use this pattern if the named property is
-       <b>not</b> set.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<h4><code>includesfile</code> and <code>excludesfile</code></h4>
-<p>If you want to list the files to include or exclude external to
-your build file, you should use the includesfile/excludesfile
-attributes or elements.  Using the attribute, you can only specify a
-single file of each type, while the nested elements can be specified
-more than once - the nested elements also support if/unless attributes
-you can use to test the existance of a property.</p>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">name</td>
-    <td valign="top">the name of the file holding the patterns to
-      in/exclude.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">if</td>
-    <td valign="top">Only read this file if the named property is set.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">unless</td>
-    <td valign="top">Only read this file if the named property is
-      <b>not</b> set.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote><pre>
-&lt;patternset id=&quot;non.test.sources&quot; &gt;
-  &lt;include name=&quot;**/*.java&quot;/&gt;
-  &lt;exclude name=&quot;**/*Test*&quot;/&gt;
-&lt;/patternset&gt;
-</pre></blockquote>
-<p>Builds a set of patterns that matches all <code>.java</code> files
-that do not contain the text <code>Test</code> in their name. This set
-can be <a href="../using.html#references">referred</a> to via
-<code>&lt;patternset refid=&quot;non.test.sources&quot;/&gt;</code>,
-by tasks that support this feature, or by FileSets.</p>
-<p>Note that while the <code>includes</code> and
-<code>excludes</code> attributes accept
-multiple elements separated by commas or spaces, the nested
-&lt;include&gt; and &lt;exclude&gt; elements expect their name
-attribute to hold a single pattern.</p>
-<p>The nested elements allow you to use if and unless arguments to
-specify that the element should only be used if a property is set, or
-that it should be used only if a property is not set.</p>
-<p>For example</p>
-<blockquote><pre>
-&lt;patternset id=&quot;sources&quot; &gt;
-  &lt;include name=&quot;std/**/*.java&quot;/&gt;
-  &lt;include name=&quot;prof/**/*.java&quot; if=&quot;professional&quot;/&gt;
-  &lt;exclude name=&quot;**/*Test*&quot;/&gt;
-&lt;/patternset&gt;
-</pre></blockquote>
-<p>will only include the files in the sub-directory <em>prof</em> if the property
-<em>professional</em> is set to some value.</p>
-<p>The two sets</p>
-<blockquote><pre>
-&lt;patternset includesfile=&quot;some-file&quot; /&gt;
-</pre></blockquote>
-<p>and</p>
-<blockquote><pre>
-&lt;patternset&gt;
-  &lt;includesfile name=&quot;some-file&quot; /&gt; 
-&lt;patternset/&gt;
-</pre></blockquote>
-<p>are identical.  The include patterns will be read from the file
-<code>some-file</code>, one pattern per line.</p>
-<blockquote><pre>
-&lt;patternset&gt;
-  &lt;includesfile name=&quot;some-file&quot; /&gt; 
-  &lt;includesfile name=&quot;${some-other-file}&quot; 
-                if=&quot;some-other-file&quot;
-  /&gt; 
-&lt;patternset/&gt;
-</pre></blockquote>
-<p>will also read include patterns from the file the property
-<code>some-other-file</code> points to, if a property of that name has
-been defined.</p>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/Integration/Antidote.html b/docs/manual/Integration/Antidote.html
deleted file mode 100644
index 5a73d82..0000000
--- a/docs/manual/Integration/Antidote.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "strict.dtd">
-<HTML> 
-  <HEAD> 
-     <TITLE>About Antidote</TITLE> 
-  </HEAD> 
-
-  <BODY> 
-
-    <H1>About Antidote</H1>
-
-    <P>Version 0.1 (2001/02/13)</P>
-
-    <P>Authors: 
-    <A HREF="mailto:simeon@fitch.net">Simeon H.K. Fitch</A>
-    </P>
-
-    <H2>Overview</H2> 
-
-    <P>Antidote is the <A
-    HREF="http://jakarta.apache.org/ant/index.html">Ant</A> subproject
-    for developing a graphical user interface to facilitate the
-    efficient use of Ant. In general, its purpose is to allow the
-    quick generation, modification, and use of Ant build files,
-    helping the user define a build process and track down build
-    problems. It is not meant to be an IDE, but an enabler for the
-    powerful features available in Ant, particularlyl for novice
-    users, or users who want a rapid way of controlling their build
-    process.</P>
-
-
-    <H2>Status</H2>
-
-    <P>Antidote is still in the early stages of development, but does
-    have a set of usable features, including:
-    <UL>
-      <LI>Reading Ant build files.</LI>
-      <LI>Selecting targets and executing them.</LI>
-      <LI>Context highlighted build status console.</LI>
-      <LI>Modification of (some) build file components.</LI>
-      <LI>Saving modified build file.</LI>
-    </UL>
-    </P>
-
-    <P>Current development tasks include:
-    <UL>
-      <LI>A more complete set of target and task editing
-      capabilities.</LI>
-      <LI>A wizard for creating basic build files, including importing
-      existing code bases.</LI>
-      <LI>Better build progress monitoring.</LI>
-    </UL>
-    </P>
-
-    <P>The Antidote source distribution comes with requirements and
-    design documentation that better cover the details of application
-    architecture, how to develop against it, and what the long term
-    goals are. Furthermore, there is a <code>TODO</code> file listing
-    the detailed, near-term tasks that need accomplishing.</P>
-
-    <H2>Getting Involved</H2>
-
-    <P>The source code for Antidote is included with the <A
-    HREF="http://jakarta.apache.org/site/cvsindex.html">CVS</A>
-    version of <A
-    HREF="http://jakarta.apache.org/cvsweb/index.cgi/jakarta-ant">Ant</A>,
-    starting in the directory <A
-    HREF="http://jakarta.apache.org/cvsweb/index.cgi/jakarta-ant/src/antidote">
-    jakarta-ant/src/antidote</A>. All the existing documentation can
-    be found there where new contributors should read:
-    <UL>
-      <LI><A
-      HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/design-overview.html">Design
-      Overview</A></LI> 
-      <LI><A HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/gui-requirements.html">Feature List</A></LI>
-      <LI><A
-      HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/gui-ideas.txt">Idea Refinement</A></LI>
-      <LI><A
-      HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/new-module-howto.html">New Module HOWTO</A></LI>
-      <LI><A
-      HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/uml/index.html">Static
-      Class Diagrams</A></LI>
-    </UL>
-
-
-    <P>Online discussions about Antidote occur on the <A
-    HREF="http://jakarta.apache.org/site/mail.html">jakarta-ant
-    mailing list</A>. The application infrastructure is fairly
-    complete, but there are almost unlimited oppotunities for feature
-    contributions.
-
-    <P>Asipring contributors new to the Jakarta Project should
-    (carefully) read the following for details on the contribution
-    process:
-    <UL>
-      <LI><A
-      HREF="http://jakarta.apache.org/site/getinvolved.html">Get
-      Involved</A></LI>
-      <LI><A
-      HREF="http://jakarta.apache.org/site/guidelines.html">Project
-      Guidelines</A></LI>
-      <LI><A HREF="http://jakarta.apache.org/site/source.html">Source
-      Repositories (how to contribute patches)</A></LI>
-    </UL>
-    
-
-    <HR>
-    <P ALIGN="center">Copyright &copy; 2000 Apache Software Foundation. All
-    rights Reserved.</P>
-
-  </BODY>
-</HTML>
diff --git a/docs/manual/Integration/VAJAntTool.html b/docs/manual/Integration/VAJAntTool.html
deleted file mode 100644
index ea6ecab..0000000
--- a/docs/manual/Integration/VAJAntTool.html
+++ /dev/null
@@ -1,629 +0,0 @@
-<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <meta http-equiv="Content-Language" content="en-us">
-  <title>Visual Age for Java Tasks and Plugin User Manual</title>
-</head>
-<body>
-
-<h1>Visual Age for Java Tasks and Plugin User Manual</h1>
- <a name="authors"></a>by<ul>
-  <li>Wolf Siberski
-      (<a href="mailto:wolf.siberski@tui.de"> wolf.siberski@tui.de</a> )</li>
-  <li>Christoph Wilhelms
-      (<a href="mailto:christoph.wilhelms@tui.de"> christoph.wilhelms@tui.de</a>)</li>
-</ul>
-Version 1.1 - 2001/02/14<br>
-<hr>
-<h2>Table of Contents</h2>
-<ul>
-  <li><a href="#introduction">Introduction</a></li>
-  <li><a href="#tasks">The Tasks</a><a href="#introduction"></a></li>
-  <ul>
-    <li><a href="#vajload">VAJLoad</a></li>
-    <li><a href="#vajexport">VAJExport</a></li>
-    <li><a href="#vajimport">VAJImport</a></li>
-  </ul>
-  <li><a href="#sample_buildfile">A sample build file</a><br></li>
-  <li><a href="#plugin">The Plugin</a></li>
-  <ul>
-    <li><a href="#installation">Installation</a></li>
-    <li><a href="#usage">Usage</a></li>
-  </ul>
-  <li><a href="#faq">Frequently Asked Questions</a></li>
-  <li><a href="#va_versions">Visual Age Versions</a></li>
-  <li><a href="#history">History</a><a href="#history"></a></li>
-</ul>
-
-<hr>
-<h2><a name="introduction"></a>Introduction</h2>
-Visual Age for Java is a great Java IDE, but it lacks decent
-build support; for creating deliveries. On the other hand,
-Ant supports the build process very good, but is
-(at least at the moment) command line based. So we decided
-to write some tasks to access the VAJ repository and
-a small visual Ant frontend to make running Ant from VAJ possible.
-We use the Tool API to integrate Ant in VisualAge for Java.
-In combination  with the VAJ tasks (vajload, vajexport, vajimport)
-you can load defined defined  versions of projects into your workspace,
-export the source code, compile it with an external compiler
-and build a jar without leaving the IDE. Of course compile
-messages are viewed in a logging window. Concluding: This
-tool provides decent deployment support VAJ has not (out of the box).<br>
-
-<h2><a name="tasks"></a>The Tasks</h2>
-At the moment there are three tasks which help integrating the VAJ repository
-contents into an external build process:
-
-<table cellpadding="2" cellspacing="2" border="0" width="500">
-   <tbody>
-     <tr valign="Top">
-       <td valign="Top"><a href="#vajload">VAJLoad</a><br>
-       </td>
-       <td valign="Top"> loads specified versions into the workspace<br>
-       </td>
-     </tr>
-     <tr valign="Top">
-       <td valign="Top"><a href="#vajexport">VAJExport</a><br>
-       </td>
-       <td valign="Top"> exports specified packages into the file system<br>
-       </td>
-     </tr>
-     <tr valign="Top">
-       <td valign="Top"><a href="#vajimport">VAJImport</a><br>
-       </td>
-       <td valign="Top"> imports specified files into the workspace<br>
-       </td>
-     </tr>
-  </tbody>
-</table>
-These tasks are described in detail below.
-
-<hr>
-<h2><a name="vajload"></a>VAJLoad</h2>
-<h3>Description:</h3>
-<p>Loads a specified VAJ project version into the workspace.</p>
-
-<h3>Parameters</h3>
-<p>none</p>
-
-<h3>Parameters specified as nested elements</h3>
-<h4>vajproject</h4>
-<table border="1" cellpadding="2" cellspacing="0">
-   <tbody>
-     <tr>
-       <td valign="Top"><b>Attribute</b></td>
-       <td valign="Top"><b>Description</b></td>
-       <td align="Center" valign="Top"><b>Required</b></td>
-     </tr>
-     <tr>
-       <td valign="Top">name</td>
-       <td valign="Top">name of the VAJ project to load into the workspace</td>
-       <td valign="Top" align="Center">yes</td>
-     </tr>
-     <tr>
-       <td valign="Top">version</td>
-       <td valign="Top">name of the requested version</td>
-       <td valign="Top" align="Center">yes</td>
-     </tr>
-
-  </tbody>
-</table>
-
-<h3>Example</h3>
-<pre>
-&lt;vajload&gt;
-    &lt;vajproject name="My Testcases" version="1.7beta" /&gt;
-    &lt;vajproject name="JUnit" version="3.2" /&gt;
-&lt;/vajload&gt;
-</pre>
-
-<hr>
-<h2><a name="vajexport"></a>VAJExport</h2>
-
-<h3>Description:</h3>
-<p>Exports Java source files, class files and/or resources from the workspace
-to the file system. Exports can be specified by giving the VAJ project
-name and package name(s). This works very similar to <a href="index.html#fileset">
-FileSets</a>. </p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-   <tbody>
-     <tr>
-       <td valign="Top"><b>Attribute</b></td>
-       <td valign="Top"><b>Description</b></td>
-       <td align="Center" valign="Top"><b>Required</b></td>
-     </tr>
-     <tr>
-       <td valign="Top">destdir</td>
-       <td valign="Top">location to store the exported files</td>
-       <td valign="Top" align="Center">yes</td>
-     </tr>
-     <tr>
-       <td valign="Top">exportSources</td>
-       <td valign="Top">export source files (default: "yes")</td>
-       <td valign="Top" align="Center">no</td>
-     </tr>
-     <tr valign="Top">
-       <td valign="Top">exportResources</td>
-       <td valign="Top">export resource files (default: "yes")</td>
-       <td valign="Top" align="Center">no</td>
-     </tr>
-     <tr valign="Top">
-       <td valign="Top">exportClasses</td>
-       <td valign="Top">export class files (default: "no")</td>
-       <td valign="Top" align="Center">no</td>
-     </tr>
-     <tr valign="Top">
-       <td valign="Top">exportDebugInfo</td>
-       <td valign="Top">include debug info in exported
-       class files (default: "no")</td>
-       <td valign="Top" align="Center">no</td>
-     </tr>
-     <tr valign="Top">
-       <td valign="Top">defaultexcludes       </td>
-       <td valign="Top">use default excludes when exporting (default: "yes")
-       <td valign="Top" align="Center">no</td>
-     </tr>
-  </tbody>
-</table>
-
-<h3>Parameters specified as nested elements</h3>
-
-<h4>include</h4>
-specifies the packages to include into the export
-
-<table border="1" cellpadding="2" cellspacing="0">
-   <tbody>
-     <tr>
-       <td valign="Top"><b>Attribute</b></td>
-       <td valign="Top"><b>Description</b></td>
-       <td align="Center" valign="Top"><b>Required</b></td>
-     </tr>
-     <tr>
-       <td valign="Top">name</td>
-       <td valign="Top">name of the VAJ project and package to export.<br>
-              The first element of the name must be the project name, <br>
-              then the package name elements separated by '/'.</td>
-       <td valign="Top">yes</td>
-     </tr>
-  </tbody>
-</table>
-
-<h4>exclude</h4>
-specifies the packages to exclude from the export<br>
-
-<table border="1" cellpadding="2" cellspacing="0">
-   <tbody>
-     <tr>
-       <td valign="Top"><b>Attribute</b></td>
-       <td valign="Top"><b>Description</b></td>
-       <td align="Center" valign="Top"><b>Required</b></td>
-     </tr>
-     <tr>
-       <td valign="Top">name</td>
-       <td valign="Top">name of the VAJ project/package not to export</td>
-       <td valign="Top" align="Center">yes</td>
-     </tr>
-  </tbody>
-</table>
-
-<h3>Example</h3>
-<pre>
-&lt;vajexport destdir="${src.dir}" exportResources="no"&gt;
-    &lt;include name="MyProject/**"/&gt;
-    &lt;exclude name="MyProject/test/**"/&gt;
-&lt;/vajexport&gt;
-</pre>
-This example exports all packages in the VAJ project 'MyProject', except
-packages starting with 'test'.
-<h3>Default Excludes</h3>
-The default excludes are:<br>
-<pre>
-	IBM*/**
-	Java class libraries/**
-	Sun class libraries*/**
-	JSP Page Compile Generated Code/**
-	VisualAge*/** 
-</pre>
-<hr>
-<h2><a name="vajimport"></a>VAJImport</h2>
-
-<h3>Description:</h3>
-<p>Imports Java source files, class files and/or resources from the file
-system into VAJ. These imports can be specified with a fileset. </p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-   <tbody>
-     <tr>
-       <td valign="Top"><b>Attribute</b></td>
-       <td valign="Top"><b>Description</b></td>
-       <td align="Center" valign="Top"><b>Required</b></td>
-     </tr>
-     <tr>
-       <td valign="Top">vajProject</td>
-       <td valign="Top">imported files are added to this VAJ project</td>
-       <td valign="Top" align="Center">yes</td>
-     </tr>
-     <tr>
-       <td valign="Top">importSources</td>
-       <td valign="Top">export source files (default: "yes")</td>
-       <td valign="Top" align="Center">no</td>
-     </tr>
-     <tr valign="Top">
-       <td valign="Top">importResources</td>
-       <td valign="Top">export resource files (default: "yes")</td>
-       <td valign="Top" align="Center">no</td>
-     </tr>
-     <tr valign="Top">
-       <td valign="Top">importClasses</td>
-       <td valign="Top">export class files (default: "no")</td>
-       <td valign="Top" align="Center">no</td>
-     </tr>
-  </tbody>
-</table>
-
-<h3>Parameters specified as nested elements</h3>
-
-<h4>fileset</h4>
-A <a href="index.html#fileset">FileSet</a> specifies the files to import.
-
-<h3>Example</h3>
-<pre>
-&lt;vajimport project="Test" importClasses="true"&gt;
-    &lt;fileset dir="${import.dir}"&gt;
-        &lt;include name="com/sample/**/*.class"/&gt;
-        &lt;exclude name="com/sample/test/**"/&gt
-    &lt;/fileset&gt;
-&lt;/vajimport&gt;
-</pre>
-This example imports all class files in the directory ${import.dir}/com/sample
-excluding those in the subdirectory test<br>
-
-<hr>
-<h2><a name="sample_buildfile"></a>A sample build file</h2>
-This is a sample build file which builds a zip file useful for distribution
-of the VAJ plugin. The build file exports a specific version of Ant, compiles
-it, extracts necessary helper classes and zips everything together. This
-is useful as complete example as well as to deploy Ant in a team where all
-developers use VAJ. The resulting zip file must be unzipped in
-<tt>&lt;VAJInstallDir&gt;\ide\tools\org-apache-tools-ant</tt>.
-For more information see the <a href="#installation">installation</a> section.<br>
-<br>
-<pre>
-&lt;?xml version="1.0"?&gt;
-&lt;!-- ======================================================================= --&gt;
-&lt;!-- Builds a binary distribution of the VAJ Ant Plugin                      --&gt;
-&lt;!-- ======================================================================= --&gt;
-&lt;project name="anttool" default="buildall" basedir="c:\temp\anttool"&gt;
-
-  &lt;property name="src.dir" value="${basedir}/src"/&gt;
-  &lt;property name="zip.dir" value="${basedir}/dist"/&gt;
-  &lt;property name="build.classes" value="${basedir}/classes"/&gt;
-
-  &lt;!-- location of the unzipped Ant source distribution  --&gt;
-  &lt;property name="antdistribution.dir" value="u:\ant-1.3beta1"/&gt;
-
-  &lt;!-- VAJ install dir --&gt;
-  &lt;property name="vaj.dir" value="C:\IBMVJava2"/&gt;
-
-  &lt;path id="classpath"&gt;
-      &lt;pathelement location="${src.dir}"/&gt;
-      &lt;pathelement location="${vaj.dir}\IDE\project_resources\IBM IDE Utility class libraries" /&gt;
-      &lt;pathelement location="${build.classes}"/&gt;
-  &lt;/path&gt;
-
-
-  &lt;!-- =================================================================== --&gt;
-  &lt;!-- Load Projects into Workspace                                        --&gt;
-  &lt;!-- =================================================================== --&gt;
-  &lt;target name="load" description="load projects"&gt;
-    &lt;vajload&gt;
-      &lt;project name="Ant" version="1.3"/&gt;
-      &lt;project name="Apache Oro RegExp" version="2.0.1"/&gt;
-    &lt;/vajload&gt;
-  &lt;/target&gt;
-
-
-  &lt;!-- =================================================================== --&gt;
-  &lt;!-- Creates the build dirs                                              --&gt;
-  &lt;!-- =================================================================== --&gt;
-  &lt;target name="preparedirs"&gt;
-    &lt;mkdir dir="${basedir}"/&gt;
-    &lt;mkdir dir="${src.dir}"/&gt;
-    &lt;mkdir dir="${zip.dir}"/&gt;
-    &lt;mkdir dir="${build.classes}"/&gt;
-  &lt;/target&gt;
-
-
-  &lt;!-- =================================================================== --&gt;
-  &lt;!-- Export from VA                                                      --&gt;
-  &lt;!-- =================================================================== --&gt;
-  &lt;target name="export" depends="preparedirs" description="export projects"&gt;
-    &lt;mkdir dir="${src.dir}"/&gt;
-    &lt;!-- Export all Ant sources except optional tasks and the Oro sources --&gt;
-    &lt;vajexport destdir="${src.dir}"&gt;
-      &lt;include name="Ant/**"/&gt;
-      &lt;exclude name="Ant/**/optional/**"/&gt;
-      &lt;exclude name="Ant/org/apache/tools/ant/gui/**"/&gt;
-      &lt;include name="Apache Oro*/**"/&gt;
-    &lt;/vajexport&gt;
-    &lt;!-- Export selected optional tasks --&gt;
-    &lt;vajexport destdir="${src.dir}"&gt;
-      &lt;include name="Ant/org/apache/tools/ant/taskdefs/optional/ide/**"/&gt;
-    &lt;/vajexport&gt;
-  &lt;/target&gt;
-
-  &lt;!-- =================================================================== --&gt;
-  &lt;!-- Unzip necessary libraries                                           --&gt;
-  &lt;!-- =================================================================== --&gt;
-  &lt;target name="expand"&gt;
-    &lt;mkdir dir="${build.classes}"/&gt;
-    &lt;unzip src="${antdistribution.dir}\lib\crimson.jar"
-           dest="${build.classes}"
-    /&gt;
-    &lt;unzip src="${antdistribution.dir}\lib\jaxp.jar"
-           dest="${build.classes}"
-    /&gt;
-    &lt;delete dir="${build.classes}\META-INF" /&gt;
-  &lt;/target&gt;
-
-  &lt;!-- =================================================================== --&gt;
-  &lt;!-- Compile the source code                                            --&gt;
-  &lt;!-- =================================================================== --&gt;
-  &lt;target name="compile" depends="expand" description="compile java sources"&gt;
-    &lt;mkdir dir="${build.classes}"/&gt;
-    &lt;javac srcdir="${src.dir}"
-           destdir="${build.classes}"
-           debug="on"
-           deprecation="off"
-           optimize="on" &gt;
-      &lt;classpath refid="classpath" /&gt;
-      &lt;include name="org/apache/**"/&gt;
-      &lt;exclude name="**/JakartaRegexpMatcher.java"/&gt;
-    &lt;/javac&gt;
-  &lt;/target&gt;
-
-  &lt;!-- =================================================================== --&gt;
-  &lt;!-- Copy resources and zip everything together                           --&gt;
-  &lt;!-- =================================================================== --&gt;
-  &lt;target name="zip" depends="compile" description="creates zip distribution"&gt;
-    &lt;copy todir="${build.classes}"&gt;
-      &lt;fileset dir="${src.dir}"&gt;
-          &lt;include name="org/apache/**"/&gt;
-          &lt;exclude name="**/*.java"/&gt;
-      &lt;/fileset&gt;
-    &lt;/copy&gt;
-    &lt;mkdir dir="${build.classes}/doc"/&gt;
-    &lt;copy todir="${build.classes}/doc" overwrite="yes"&gt;
-      &lt;fileset dir="${antdistribution.dir}/docs"&gt;
-          &lt;include name="VAJAnttool.html, toolmenu.gif, anttool1.gif"/&gt;
-      &lt;/fileset&gt;
-    &lt;/copy&gt;
-    &lt;copy file="${antdistribution.dir}/src/main/org/apache/tools/ant/taskdefs/optional/ide/default.ini" todir="${build.classes}" overwrite="yes"/&gt;
-    &lt;mkdir dir="${zip.dir}"/&gt;
-    &lt;zip basedir="${build.classes}" zipfile="${zip.dir}/anttool.zip" /&gt;
-  &lt;/target&gt;
-
-  &lt;!-- =================================================================== --&gt;
-  &lt;!-- Cleans source and class dirs                                        --&gt;
-  &lt;!-- =================================================================== --&gt;
-  &lt;target name="clean" depends="preparedirs" description="removes all files from src and build tree"&gt;
-    &lt;delete&gt;
-      &lt;fileset dir="${src.dir}"/&gt;
-    &lt;/delete&gt;
-    &lt;delete&gt;
-      &lt;fileset dir="${build.classes}"/&gt;
-    &lt;/delete&gt;
-    &lt;delete&gt;
-      &lt;fileset dir="${zip.dir}"/&gt;
-    &lt;/delete&gt;
-  &lt;/target&gt;
-
-  &lt;!-- =================================================================== --&gt;
-  &lt;!-- Cleans the build dir, loads required project versions, exports,     --&gt;
-  &lt;!-- compiles and zips the Plugin                                        --&gt;
-  &lt;!-- =================================================================== --&gt;
-  &lt;target name="buildall" depends="clean, load, export, zip" description="build all"&gt;
-  &lt;/target&gt;
-&lt;/project&gt;
-</pre>
-
-<hr>
-<h2><a name="plugin"></a>The Plugin</h2>
-The tasks are usable within VAJ by running the
-org.apache.tools.ant.Main class, but this is
-quite inconvenient. Therefore a small GUI is
-provided which allows selecting a build file
-and executing its targets. This Plugin is accessible
-from the VAJ Tools menu (see <a href="#usage">Usage</a>).
-
-<hr>
-<h2><a name="installation"></a>Installation</h2>
-At the moment the installation has it's rough edges. If something
-described below doesn't work for You, it's probably not Your fault
-but incomplete/wrong instructions. In this case, please contact one
-of the <a href="#authors">authors</a>.
-We assume <font face="Courier">C:\IBMVJava</font> as VAJ install
-directory. If You have installed it elsewhere, adapt the pathes below.
-Execute following steps to get the PlugIn up and running:
-<ul>
-  <li>install the Visual Age IDE Tools (via File-&gt;Quick Start-&gt;
-      Add feature-&gt;'IBM IDE Utility class libraries'
-  </li>
-  <li>import an appropriate XML parser to VAJ (we use Xerces 1.2.0 and are
-      happy with it). Unfortunately the XML parser delivered with VAJ (in
-      the project 'IBM XML Parser for Java') doesn't work with Ant. You have to
-      remove that project (temporarily) from the workspace before importing another
-      XML implementation.
-  </li>
-
-  <li>import the Ant sources into VAJ.</li>
-  <li>Create the directory <font face="Courier">
-      C:\IBMVJava\ide\tools\org-apache-tools-ant</font>.
-  </li>
-  <li>export the Ant and XML parser class files into this directory. Be sure
-      to select class files and resources. Sources don't have to be exported.
-      Some optional tasks have errors and can't be exported when You
-      don't have the necessary packages in Your workspace (e.g. junit
-      task, ejbc task). If You need this tasks either import these packages
-      into VAJ, too, or copy the .class files directly from the binary
-      distribution.
-  </li>
-  <li>copy <font face="Courier">default.ini</font> (in <font face="Courier">
-      jakarta-ant\src\...\taskdefs\optional\ide</font>)     to <font face="Courier">
-      C:\IBMVJava\ide\tools\org-apache-tools-ant\default.ini</font>.
-  </li>
-  <li>if you want to access this help from the Workbench, create the
-      directory <font face="Courier"> C:\IBMVJava\ide\tools\org-apache-tools-ant\doc</font>
-      and copy the files     <font face="Courier">VAJAntTool.html</font>,
-      <font face="Courier">toolmenu.gif</font> and     <font face="Courier">
-      anttool1.gif</font> to it.
-  </li>
-  <li>VAJ has to be restarted to recognize the new tool.</li>
-  <li>Now if You open the context menu of a project, You should see the entry
-     'Ant Build' in the Tools submenu (see <a href="#usage">Usage</a>).
-  </li>
-  <li>Make sure the tool works as expected. Now You can remove Ant and the
-      imported XML parser from Your workspace (and optionally add the
-      IBM parser again).
-  </li>
-</ul>
-
-<hr>
-<h2><a name="usage"></a>Usage</h2>
-Beeing sure the tool is installed correctly and your Ant build
-file is configured, it is really easy to use.<br>
-Go to your Workbench, select the project you want to deploy and
-open its context menu. In the submenu <i>Tools</i> you should find
-the new entry <i>Ant Build</i>. Klick it to start the tool!
-
-<center><img src="toolmenu.gif" border="0" height="246" width="393"></center>
-           After a short time this frame should pop up:
-<center><img src="anttool1.gif" border="0" height="222" width="389"></center>
-           This frame contains the following elements:
-<ul>
-  <li>A menubar with some options described later</li>
-  <li>The name of your selected VAJ project</li>
-  <li>An entry field for the Ant XML buildfile with a browse [...] button.
-      The full qualified filename, including the directory is needed here.
-  </li>
-  <li>A list with tasks specified in the buildfile. Until your first save
-      of the build info (described later), this list will be empty. When
-      loading a build file by the <i>Reload Project</i> button, this list
-      is filled with all tasks which have a description attribute. The
-      task you select in this list will be executed when pressing the
-      <i> Execute Task</i> button.
-  </li>
-  <li>A pulldown box for specifying the log level.</li>
-  <li>Three buttons. Two of them I have already described and the third one
-      is just the <i>Close </i>button to exit our small tool!
-  </li>
-</ul>
-After you have set up your buildprocess you might find it useful
-to save the data you've just entered, so we implemented an option to
-save it to the  repository into your selected project. Make sure that you
-have an open edition of your project before selecting
-<i>Save BuildInfo To Repository</i> from  the <i>File</i> menu.
-Now your information is saved to this edition of your  project and will
-be loaded automatically the next time you start <i>Ant Build</i>.<br>
-If you have closed the log window accidentally, it can be reopened
-with the <i>Log</i> item in the <i>File</i> menu, and if you want to
-know who developed this, just select <i>About</i> in the <i>Help</i> menu.
-<hr>
-<h2><a name="faq"></a>Frequently Asked Questions</h2>
-
-<p><b>Q: I want to load, export and build more then one Visual Age project
-to one jar! How to?</b><br>
-A: The VA tasks are able to load and export several Projects all
-at once. You can choose whatever project you like for storing the tool
-information, it doesn't really matter
-</p>
-<p><b>Q: When I load my build file, the list of targets is empty. Why?</b><br>
-A: You need to add the optional "description" parameter to the targets You
-want to come up in the list. Then reload the build file in the "ant build"
-tool. We chose to display only targets with description to allow the build
-file developer to distinguish between targets for end users and helper targets.
-</p>
-<p><b>Q: Is there a sample build file available? </b><br>
-A: Now You can find an <a href="#sample_buildfile">example</a> in this manual
-</p>
-
-<p><b>Q: Why does it export my entire workspace when I've already implicitly
-selected a project when starting the Tool?</b><br>
-A: This selection does not carry into the buildfile you are using. Set the
-Project name at the beginning of the "includes" parameter.
-</p>
-<p><b>Q: When I import Ant into my Workspace, I get Problems reported. Can I
-ignore them?</b><br>
-A: It depends on the problems reported, and what you want to do with Ant.
-Problems you can't ignore:
-<ul>
-  <li>Classes from javax.xml.parser missing - install a compatible parser
-      (see <a href="#installation">installation</a>)
-  </li>
-  <li>Classes from com.ibm.ivj.util missing - install the Visual Age IDE
-      Utility feature  (see <a href="#installation">installation</a>).
-  </li>
-</ul>
-</p>
-
-<p><b>Q: Why is the task name vajload when the class is called VAJLoadProjects?</b><br>
-A: At the moment this task can load only project versions. This is reflected
-by the class name. It may be extended to load package and class versions,
-too, and we didn't want to let these extensions affect the build files. Therefore
-we chose the more general name vajload as task name.
-</p>
-<p><b>Q: I want to use the same buildfile both within Visual Age and from the
-command line using my regular Ant environment. What do I need to be aware
-of?</b><br>
-A: The three Visual Age Tasks won't work when executing Ant from the command
-line.
-</p>
-<p><b>Q: How do I control the import/export of sourcefiles, compiled files and
-project resources explicity?</b><br>
-A: Via the Boolean values exportClasses (default false) exportSources (default
-true) and exportResources (default true). In some situations, Resources are
-not exported correctly without this being explicity set.
-</p>
-<hr>
-<h2><a name="known_problems"></a>Known Problems</h2>
-<ul>
-  <li>Exporting a package containing just resources doesn't work. This is
-      a VAJ Tool API bug. Workaround: create a dummy class and set 'exportSources'
-      to false.
-  </li>
-</ul>
-<hr>
-
-<h2><a name="va_versions"></a>VisualAge for Java Versions</h2>
-This tool integration has been tested with versions 3.02 and 3.5
-of VisualAge for Java. It should run with the 2.x Versions, too, but
-we didn't try. The graphical user interface is build with AWT so it is
-JDK independent by now.
-<hr>
-
-<h2><a name="history"></a>History</h2>
-<table cellpadding="2" cellspacing="2" border="1" width="400">
-   <tbody>
-     <tr valign="Top">
-       <td valign="Top">1.0</td>
-       <td valign="Top">2000/09/11</td>
-       <td valign="Top">Initial Version</td>
-     </tr>
-     <tr valign="Top">
-       <td valign="Top">1.1</td>
-       <td valign="Top">2001/02/14</td>
-       <td valign="Top">Added Task documentation and more FAQs (thanks to
-                        Richard Bourke for the FAQ additions)
-       </td>
-     </tr>
-  </tbody>
-</table>
-<hr>
-<center>Copyright &copy; 2001 Apache Software Foundation. All rights Reserved.</center>
-</body>
-</html>
-
diff --git a/docs/manual/Integration/anttool1.gif b/docs/manual/Integration/anttool1.gif
deleted file mode 100644
index 6859656..0000000
--- a/docs/manual/Integration/anttool1.gif
+++ /dev/null
Binary files differ
diff --git a/docs/manual/Integration/jext-plugin.html b/docs/manual/Integration/jext-plugin.html
deleted file mode 100644
index a9bd838..0000000
--- a/docs/manual/Integration/jext-plugin.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <meta http-equiv="Content-Language" content="en-us">
-  <title>AntWork Plugin for the Jext - Java Text Editor</title>
-</head>
-<body>
-
-<h1>AntWork Plugin for the Jext - Java Text Editor</h1>
- <a name="authors"></a>by<ul>
-  <li>Klaus Hartlage
-      (<a href="mailto:KHartlage@t-online.de">KHartlage@t-online.de</a>)</li>
-</ul>
-<p>Version $Revision$ - $Date$</p>
-<hr>
-
-<p>You can download the plugin at: <a
-href="ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip">ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip</a></p>
-
-<h2>Installation instructions from the Readme.txt:</h2>
-
-<p>You have to enable the Jext Console to see the Ant output (menu:
-Edit->Options... - General Panel), because the Ant messages are
-redirected to the Jext console.</p>
-
-<p>You can configure the Ant call in the Jext menu: Edit->Options... -
-Plugin Options - Antwork Plugin Panel; here you can set the ant home
-directory and the path to your build file.</p>
-
-<p>You can start AntWork in the menu: Plugins->Ant->Work Now!  In the
-appearing dialog box you can enter the target which you want to
-compile.</p>
-
-<p>If a javac error occurs in the ant run an error-list opens within
-Jext. With a double-click on the error-message you jump to the error
-in the specified java text file.</p>
-
-</body></html>
\ No newline at end of file
diff --git a/docs/manual/Integration/toolmenu.gif b/docs/manual/Integration/toolmenu.gif
deleted file mode 100644
index 164db44..0000000
--- a/docs/manual/Integration/toolmenu.gif
+++ /dev/null
Binary files differ
diff --git a/docs/manual/LICENSE b/docs/manual/LICENSE
deleted file mode 100644
index 032be14..0000000
--- a/docs/manual/LICENSE
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * ============================================================================
- *                   The Apache Software License, Version 1.1
- * ============================================================================
- * 
- *    Copyright (C) 1999 The Apache Software Foundation. All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without modifica-
- * tion, are permitted provided that the following conditions are met:
- * 
- * 1. Redistributions of  source code must  retain the above copyright  notice,
- *    this list of conditions and the following disclaimer.
- * 
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- * 
- * 3. The end-user documentation included with the redistribution, if any, must
- *    include  the following  acknowledgment:  "This product includes  software
- *    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
- *    Alternately, this  acknowledgment may  appear in the software itself,  if
- *    and wherever such third-party acknowledgments normally appear.
- * 
- * 4. The names "Ant" and  "Apache Software Foundation"  must not be used to
- *    endorse  or promote  products derived  from this  software without  prior
- *    written permission. For written permission, please contact
- *    apache@apache.org.
- * 
- * 5. Products  derived from this software may not  be called "Apache", nor may
- *    "Apache" appear  in their name,  without prior written permission  of the
- *    Apache Software Foundation.
- * 
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
- * APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
- * DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
- * ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
- * (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * 
- * This software  consists of voluntary contributions made  by many individuals
- * on behalf of the  Apache Software Foundation.  For more  information  on the 
- * Apache Software Foundation, please see <http://www.apache.org/>.
- *
- */
diff --git a/docs/manual/OptionalTasks/BorlandEJBTasks.html b/docs/manual/OptionalTasks/BorlandEJBTasks.html
deleted file mode 100644
index 79aaf7e..0000000
--- a/docs/manual/OptionalTasks/BorlandEJBTasks.html
+++ /dev/null
@@ -1,100 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="log">BorlandDeploy</a>Tool</h2>
-<h3>Description</h3>
-<p>The BorlandDeployTool is a vendor specifc nested element for the Ejbjar optionaltask.
-<p>BorlandDeploymentTool is dedicated to the Borland Application Server 4.5. It 
-  generates and compiles the stubs and skeletons for all ejb described into the 
-  Deployement Descriptor, builds the jar file including the support files and 
-  verify whether the produced jar is valid or not.
-<h3>Borland element</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr> 
-    <td valign="top" width="63"><b>Attribute</b></td>
-    <td valign="top" width="915"><b>Description</b></td>
-    <td align="center" valign="top" width="62"><b>Required</b></td>
-  </tr>
-  <tr> 
-    <td valign="top" width="63">destdir</td>
-    <td valign="top" width="915">The base directory into which the generated borland 
-      ready jar files are deposited</td>
-    <td align="center" valign="middle" width="62">yes</td>
-  </tr>
-  <tr> 
-    <td valign="top" width="63">debug</td>
-    <td valign="top" width="915">If true, turn on the debug mode for each borland 
-      tools (java2iiop, iastool ...) default = false</td>
-    <td align="center" valign="middle" width="62">no</td>
-  </tr>
-  <tr> 
-    <td valign="top" width="63">verify</td>
-    <td valign="top" width="915">If true, turn on the verification at the end 
-      of the jar production (default = false)</td>
-    <td align="center" valign="middle" width="62">no</td>
-  </tr>
-  <tr> 
-    <td valign="top" width="63">verifyargs</td>
-    <td valign="top" width="915">extra parameter for verify command</td>
-    <td align="center" valign="middle" width="62">no</td>
-  </tr>
-  <tr> 
-    <td valign="top" width="63">suffix</td>
-    <td valign="top" width="915">String value appended to the basename of the 
-      deployment descriptor to create the filename of the Borland EJB jar file.</td>
-    <td align="center" valign="middle" width="62">No, defaults to '-ejb.jar'.</td>
-  </tr>
-  <tr> 
-    <td valign="top" width="63">basdtd</td>
-    <td valign="top" width="915"><b>Deprecated</b>. Defines the location of the 
-      weblogic-ejb-jar DTD which covers the Borland specific deployment descriptors. 
-      This should not be necessary if you have borland in your classpath. If you 
-      do not, you should use a nested <dtd> element, described above</td>
-    <td align="center" valign="middle" width="62">no</td>
-  </tr>
-  <tr> 
-    <td valign="top" width="63">ejbdtd</td>
-    <td valign="top" width="915"><b>Deprecated</b>. Defines the location of the 
-      ejb-jar DTD in the weblogic class hierarchy. This should not be necessary 
-      if you have weblogic in your classpath. If you do not, you should use a 
-      nested <dtd> element, described above. </td>
-    <td align="center" valign="middle" width="62">no</td>
-  </tr>
-  <tr> 
-    <td valign="top" width="63">generateclient </td>
-    <td valign="top" width="915">If true, turn on the generation of the corresponding 
-      ejbjar (default = false)</td>
-    <td align="center" valign="middle" width="62">no</td>
-  </tr>
-</table>
-
-<h3>Examples</h3>
-<p>The following build.xml snippit is an example of how to use Borland element 
-  into the ejbjar task
-<pre>    &lt;ejbjar srcdir=&quot;${build.classes}&quot;  basejarname=&quot;vsmp&quot;  descriptordir=&quot;${rsc.dir}/hrmanager&quot;&gt;
-        &lt;borland destdir=&quot;lib&quot; verify=&quot;on&quot; generateclient=&quot;on&quot;&gt;
-          &lt;classpath refid=&quot;classpath&quot; /&gt;
-        &lt;/borland&gt;      
-        &lt;include name=&quot;**\ejb-jar.xml&quot;/&gt;
-        &lt;support dir=&quot;${build.classes}&quot;&gt;
-          &lt;include name=&quot;demo\*.class&quot;/&gt;
-          &lt;include name=&quot;demo\helper\*.class&quot;/&gt;
-         &lt;/support&gt;
-     &lt;/ejbjar&gt;</pre>
-<pre>The borland element will generate into the lib dir an ejb jar file using the deployment descriptor placed into the ${rsc.dir}/hrmanager directory.
-The verify phase is turned on and the generate client phase as well. 
-</pre>
-
-<h3>&nbsp;</h3>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/OptionalTasks/BorlandGenerateClient.html b/docs/manual/OptionalTasks/BorlandGenerateClient.html
deleted file mode 100644
index cd7a993..0000000
--- a/docs/manual/OptionalTasks/BorlandGenerateClient.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="log">BorlandGenerateClient</a></h2>
-<h3>Description</h3>
-<p>The BorlandGenerateClient is a task dedicated to Borland Application Server 
-  v 4.5. It offers to generate the client jar file corresponding to an ejb jar 
-  file.
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr> 
-    <td valign="top" width="63"><b>Attribute</b></td>
-    <td valign="top" width="915"><b>Description</b></td>
-    <td align="center" valign="top" width="62"><b>Required</b></td>
-  </tr>
-  <tr> 
-    <td valign="top" width="63">ejbjar</td>
-    <td valign="top" width="915">ejb jar file</td>
-    <td align="center" valign="middle" width="62">yes</td>
-  </tr>
-  <tr> 
-    <td valign="top" width="63">debug</td>
-    <td valign="top" width="915">If true, turn on the debug mode for each borland 
-      tools (java2iiop, iastool ...) default = false</td>
-    <td align="center" valign="middle" width="62">no</td>
-  </tr>
-  <tr> 
-    <td valign="top" width="63">clientjar</td>
-    <td valign="top" width="915">client jar file name. If missing the client jar 
-      file name is build using the ejbjar file name: ejbjar = hellobean-ejb.jar 
-      =&gt; hellobean-ejbclient.jar</td>
-    <td align="center" valign="middle" width="62">no</td>
-  </tr>
-  <tr>
-    <td valign="top" width="63">mode</td>
-    <td valign="top" width="915">choose the command launching mode. Two values: 
-      java or fork. default = java. Possibility to specify a classpath.</td>
-    <td align="center" valign="middle" width="62">no</td>
-  </tr>
-</table>
-
-<h3>Examples</h3>
-<p>The following build.xml snippit is an example of how to use Borland element 
-   into the ejbjar task using the java mode.
-<pre>
-&lt;blgenclient ejbjar=&quot;lib/secutest-ejb.jar&quot; clientjar=&quot;lib/client.jar&quot; debug=&quot;true&quot; mode=&quot;java&quot;&gt;
-    &lt;classpath&gt;
-        &lt;pathelement locacation=&quot;mymodule.jar&quot;/&gt;
-    &lt;/classpath&gt;
-&lt;/blgenclient&gt;
-</pre>
-<pre>&nbsp;</pre>
-
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/OptionalTasks/antlr.html b/docs/manual/OptionalTasks/antlr.html
deleted file mode 100644
index 4762424..0000000
--- a/docs/manual/OptionalTasks/antlr.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>ANTLR Task</title>
-</head>
-
-<body>
-
-<h2><a name="antlr">ANTLR</a></h2>
-<h3>Description</h3>
-<p>
-  Invokes the <a HREF="http://www.antlr.org/" target="_top">ANTLR</a> Translator generator
-  on a grammar file.
-</p>
-<p>
-  To use the ANTLR task, set the <i>target</i> attribute to the name of the
-  grammar file to process.  Optionally, you can also set the
-  <i>outputdirectory</i> to write the generated file to a specific directory.
-  Otherwise ANTLR writes the generated files to the directory containing
-  the grammar file.
-</p>
-<p>
-  This task only invokes ANTLR if the grammar file is newer than the generated
-  files.
-</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">target</td>
-    <td valign="top">The grammar file to process.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">outputdirectory</td>
-    <td valign="top">
-      The directory to write the generated files to.  If not set, the files
-      are written to the directory containing the grammar file.
-    </td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">fork</td>
-    <td valign="top">Run ANTLR in a separate VM.</td>
-    <td align="center" valign="top">No, default is &quot;off&quot;</td>
-  </tr>
-  <tr>
-    <td valign="top">dir</td>
-    <td valign="top">The directory to invoke the VM in. (ignored if
-      fork is disabled)</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<h3>Example</h3>
-<blockquote><pre>
-&lt;antlr
-    target=&quot;etc/java.g&quot;
-    outputdirectory=&quot;build/src&quot;
-/&gt;
-</pre></blockquote>
-<p>
-  This invokes ANTLR on grammar file etc/java.g, writing the generated
-  files to build/src.
-</p>
-<hr>
-
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/OptionalTasks/cab.html b/docs/manual/OptionalTasks/cab.html
deleted file mode 100644
index ddd974b..0000000
--- a/docs/manual/OptionalTasks/cab.html
+++ /dev/null
@@ -1,130 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="cab">Cab</a></h2>
-<h3>Description</h3>
-<p>The cab task creates Microsoft cab archive files.  It is invoked
-similar to the <a href="../CoreTasks/jar.html">jar</a> or <a href="../CoreTasks/zip.html">zip</a> tasks.
-This task will work on Windows using the external cabarc tool (provided by Microsoft)
-which must be located in your executable path.</p>
-<p>To use this task on other platforms you need to download and compile libcabinet from 
-<a href="http://trill.cis.fordham.edu/~barbacha/cabinet_library/">
-http://trill.cis.fordham.edu/~barbacha/cabinet_library/</a>.</p>
-<p>See the section on <a href="../dirtasks.html#directorybasedtasks">directory based
-tasks</a>, on how the inclusion/exclusion of files works, and how to
-write patterns.</p>
-<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
-supports all attributes of <code>&lt;fileset&gt;</code>
-(<code>dir</code> becomes <code>basedir</code>) as well as the nested
-<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
-<code>&lt;patternset&gt;</code> elements.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">cabfile</td>
-    <td valign="top">the name of the cab file to create.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">basedir</td>
-    <td valign="top">the directory to start archiving files from.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">verbose</td>
-    <td valign="top">set to &quot;yes&quot; if you want to see the output from
-      the cabarc tool.  defaults to &quot;no&quot;.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">compress</td>
-    <td valign="top">set to &quot;no&quot; to store files without compressing.
-      defaults to &quot;yes&quot;.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">options</td>
-    <td valign="top">use to set additional command-line options for
-      the cabarc tool.  should not normally be necessary.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma separated list of patterns of files that
-      must be included. All files are included when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an include pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma separated list of patterns of files that
-      must be excluded. No files (except default excludes) are excluded
-      when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an exclude pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes should be used
-      or not (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote><pre>
-&lt;cab cabfile=&quot;${dist}/manual.cab&quot;
-     basedir=&quot;htdocs/manual&quot; 
-  /&gt;
-</pre></blockquote>
-<p>cabs all files in the htdocs/manual directory into a file called
-manual.cab in the ${dist} directory.</p>
-<blockquote><pre>
-&lt;cab cabfile=&quot;${dist}/manual.cab&quot;
-     basedir=&quot;htdocs/manual&quot;
-     excludes=&quot;mydocs/**, **/todo.html&quot;
-  /&gt;
-</pre></blockquote>
-<p>cabs all files in the htdocs/manual directory into a file called
-manual.cab in the ${dist} directory. Files in the directory mydocs,
-or files with the name todo.html are excluded.</p>
-<blockquote><pre>
-&lt;cab cabfile=&quot;${dist}/manual.cab&quot;
-     basedir=&quot;htdocs/manual&quot;
-     includes=&quot;api/**/*.html&quot;
-     excludes=&quot;**/todo.html&quot;
-     verbose=&quot;yes&quot;
-  /&gt;
-</pre></blockquote>
-<p>Cab all files in the htdocs/manual directory into a file called
-manual.cab in the ${dist} directory. Only html files under the
-directory api are archived, and files with the name todo.html are
-excluded. Output from the cabarc tool is displayed in the build
-output.</p>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/OptionalTasks/ccm.html b/docs/manual/OptionalTasks/ccm.html
deleted file mode 100644
index 1425c19..0000000
--- a/docs/manual/OptionalTasks/ccm.html
+++ /dev/null
@@ -1,235 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant</title>
-</head>
-
-<body>
-
-<h1>Continuus Support</h1>
-<ul>
-  <li><a href="#cccheckin">CCMCheckin</a></li>
-  <li><a href="#cccheckout">CCMCheckout</a></li>
-  <li><a href="#ccmcheckintask">CCMCheckinTask</a></li>
-  <li><a href="#ccmreconfigure">CCMReconfigure</a></li>
-  <li><a href="#ccmcreatetask">CCMCreateTask</a></li>
-</ul>
-
-<p>These ant tasks are wrapper around Continnus Source Manager. It have been tested 
-  under version 5.1 on Windows 2000.</p>
-<hr>
-<h2><a name="cccheckin">CCMCheckin</a></h2>
-<h3>Description</h3>
-Task to perform a Checkin command to Continnus 
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0" width="598">
-  <tr> 
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
-  </tr>
-  <tr> 
-    <td>file</td>
-    <td>Path to the file that the command will operate on</td>
-    <td>Yes</td>
-  </tr>
-  <tr> 
-    <td>comment</td>
-    <td>Specify a comment.</td>
-    <td>No</td>
-  </tr>
-  <tr> 
-    <td>task</td>
-    <td>Specify the task number used to checkin the file (may use 'default')</td>
-    <td>No</td>
-  </tr>
-  <tr> 
-    <td>ccmcommand</td>
-    <td>path to the ccm excutable file. default serach into the PATH</td>
-    <td>No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-  <pre>&lt;ccmcheckin file=&quot;c:/wa/com/foo/MyFile.java&quot;
-        comment=&quot;mycomment&quot; /&gt;
-</pre>
-</blockquote>
-<p>Does a Continnuus <i>checkin</i> on the file <i>c:/wa/com/foo/MyFile.java</i>. 
-  Comment attribute <i>mycomment</i> is added as a task comment. The task 
-  used is the one set as the fault.</p>
-<hr>
-<h2><a name="cccheckout">CCMCheckout</a></h2>
-<h3>Description</h3>
-Task to perform a Checkout command to Continuus 
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0" width="614">
-  <tr> 
-    <th width="84">Attribute</th>
-    <th width="396">Values</th>
-    <th width="24">Required</th>
-  </tr>
-  <tr> 
-    <td width="84">file</td>
-    <td width="396">Path to the file that the command will operate on</td>
-    <td width="24">Yes</td>
-  </tr>
-  <tr> 
-    <td width="84">comment</td>
-    <td width="396">Specify a comment.</td>
-    <td width="24">No</td>
-  </tr>
-  <tr> 
-    <td width="84">task</td>
-    <td width="396">Specify the task number used to checkin the file (may use 
-      'default')</td>
-    <td width="24">No</td>
-  </tr>
-  <tr> 
-    <td width="84">ccmcommand</td>
-    <td width="396">path to the ccm excutable file. default serach into the PATH</td>
-    <td width="24">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote> 
-  <pre>&lt;ccmcheckin file=&quot;c:/wa/com/foo/MyFile.java&quot;
-        comment=&quot;mycomment&quot;/&gt;
-</pre>
-</blockquote>
-<p>Does a Continnuus <i>checkout</i> on the file <i>c:/wa/com/foo/MyFile.java</i>. 
-  Comment attribute <i>mycomment</i> is added as a task comment
-   The used task is the one set as the fault.</p>
-<hr>
-<h2><a name="ccmcheckintask">CCMCheckinTask</a></h2>
-<h3>Description</h3>
-Task to perform a check in default task command to Continnuus 
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr> 
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
-  </tr>
-  <tr> 
-    <td>comment</td>
-    <td>Specify a comment.</td>
-    <td>No</td>
-  </tr>
-  <tr> 
-    <td>task</td>
-    <td>Specify the task number used to checkin the file (may use 'default')</td>
-    <td>No</td>
-  </tr>
-  <tr> 
-    <td>ccmcommand</td>
-    <td>path to the ccm excutable file. default serach into the PATH</td>
-    <td>No</td>
-  </tr>
-</table>
-<h3>Examples </h3>
-<blockquote>
-  <pre>&lt;ccmcheckintask comment=&quot;blahblah/&gt;
-</pre>
-</blockquote>
-<p>Does a Checkin default task on all the checkou-ed filed in the current task.</p>
-<hr>
-<h2><a name="ccmreconfigure">CCMReconfigure</a></h2>
-<h3>Description</h3>
-Task to perform an reconfigure command to Continuus. 
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr> 
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
-  </tr>
-  <tr> 
-    <td>recurse</td>
-    <td>recurse on subproject (default false)</td>
-    <td>No</td>
-  </tr>
-  <tr> 
-    <td>verbose</td>
-    <td>do a verbose reconfigure operation (default false)</td>
-    <td>No</td>
-  </tr>
-  <tr> 
-    <td>ccmproject</td>
-    <td>Specifies the ccm project on which the operation is applied.</td>
-    <td>Yes</td>
-  </tr>
-  <tr> 
-    <td>ccmcommand</td>
-    <td>path to the ccm excutable file. default serach into the PATH</td>
-    <td>No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-  <pre>&lt;ccmreconfigure ccmproject=&quot;ANTCCM_TEST#BMO_1&quot; verbose=&quot;true&quot; /&gt;
-
-</pre>
-</blockquote>
-<p>Does a Continuus <i>reconfiguree</i> on the project <i>ANTCCM_TEST#BMO_1</i>. 
-</p>
-<hr>
-<h2><a name="ccmcreatetask">CCMCreateTask</a></h2>
-<h3>Description</h3>
-Task to perform an create task command to Continuus. 
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr> 
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
-  </tr>
-  <tr> 
-    <td>comment</td>
-    <td>Specify a comment.</td>
-    <td>No</td>
-  </tr>
-  <tr> 
-    <td>platform</td>
-    <td>Specify the target platform</td>
-    <td>No</td>
-  </tr>
-  <tr> 
-    <td>ccmcommand</td>
-    <td>path to the ccm excutable file. default serach into the PATH</td>
-    <td>No</td>
-  </tr>
-  <tr> 
-    <td>resolver</td>
-    <td>Specify the resolver</td>
-    <td>No</td>
-  </tr>
-  <tr> 
-    <td>release</td>
-    <td>Specify the CCM release</td>
-    <td>No</td>
-  </tr>
-  <tr> 
-    <td>subsystem</td>
-    <td>Specify the subsystem</td>
-    <td>No</td>
-  </tr>
-  <tr> 
-    <td>task</td>
-    <td>Specify the task number used to checkin the file (may use 'default')</td>
-    <td>No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote> 
-  <pre>&lt;ccmcreatetask resolver=&quot;{user.name}&quot; release=&quot;ANTCCM_TEST&quot; comment=&quot;blahblah&quot; /&gt;
-</pre>
-</blockquote>
-<p>Does a Continuus <i>create task</i> for the release <i>ANTCCM_TEST</i> to the 
-  current logged person as the resolver for this task.</p>
-<p>&nbsp;</p>
-
-</body>
-
-</html>
diff --git a/docs/manual/OptionalTasks/clearcase.html b/docs/manual/OptionalTasks/clearcase.html
deleted file mode 100644
index 82fb7e3..0000000
--- a/docs/manual/OptionalTasks/clearcase.html
+++ /dev/null
@@ -1,258 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant</title>
-</head>
-
-<body>
-
-<h1>ClearCase Support</h1>
-<ul>
-  <li><a href="#cccheckin">CCCheckin</a></li>
-  <li><a href="#cccheckout">CCCheckout</a></li>
-  <li><a href="#ccuncheckout">CCUnCheckout</a></li>
-  <li><a href="#ccupdate">CCUpdate</a></li>
-</ul>
-
-<hr>
-<h2><a name="cccheckin">CCCheckin</a></h2>
-<h3>Description</h3>
-Task to perform a Checkin command to ClearCase.
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
-  </tr>
-  <tr>
-    <td>viewpath</td>
-    <td>Path to the ClearCase view file or directory that the command 
-        will operate on</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>comment</td>
-    <td>Specify a comment. Only one of comment or commentfile may be used.</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>commentfile</td>
-    <td>Specify a file containing a comment. Only one of comment or commentfile 
-        may be used.</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>nowarn</td>
-    <td>Suppress warning messages</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>preservetime</td>
-    <td>Preserve the modification time</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>keepcopy</td>
-    <td>Keeps a copy of the file with a .keep extension</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>identical</td>
-    <td>Allows the file to be checked in even if it is identical 
-        to the original</td>
-    <td>No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-<pre>
-&lt;cccheckin viewpath=&quot;c:/views/viewdir/afile&quot;
-        commentfile=&quot;acomment.txt&quot;/&gt;
-        nowarn=&quot;true&quot;
-        identical=&quot;true&quot;
-</pre>
-</blockquote>
-<p>Does a ClearCase <i>checkin</i> on the file <i>c:/views/viewdir/afile</i>. 
-Comment text from the file <i>acomment.txt</i> is added to ClearCase as a comment.
-All warning messages are suppressed. The file is checked in even if it is
-<i>identical</i> to the original.</p>
-<hr>
-<h2><a name="cccheckout">CCCheckout</a></h2>
-<h3>Description</h3>
-Task to perform a Checkout command to ClearCase.
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
-  </tr>
-  <tr>
-    <td>viewpath</td>
-    <td>Path to the ClearCase view file or directory that the command 
-        will operate on</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>reserved</td>
-    <td>Specifies whether to check out the file as reserved or not</td>
-    <td>Yes</td>
-  </tr>
-  <tr>
-    <td>out</td>
-    <td>Creates a writable file under a different filename</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>nodata</td>
-    <td>Checks out the file but does not create an editable file 
-        containing its data</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>branch</td>
-    <td>Specify a branch to check out the file to</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>version</td>
-    <td>Allows checkout of a version other than main latest</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>nowarn</td>
-    <td>Suppress warning messages</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>comment</td>
-    <td>Specify a comment. Only one of comment or commentfile may be used.</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>commentfile</td>
-    <td>Specify a file containing a comment. Only one of comment or 
-        commentfile may be used.</td>
-    <td>No</td>
- </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-<pre>
-&lt;cccheckout viewpath=&quot;c:/views/viewdir/afile&quot;
-        reserved=&quot;true&quot; 
-        branch=&quot;abranch&quot;
-        nowarn=&quot;true&quot;
-        comment=&quot;Some comment text&quot;/&gt;
-</pre>
-</blockquote>
-<p>Does a ClearCase <i>checkout</i> on the file <i>c:/views/viewdir/afile</i>. 
-It is checked out as <i>reserved</i> on branch called <i>abranch</i>. All 
-warning messages are suppressed. A <i>Some comment text</i> is added to 
-ClearCase as a comment.</p>
-<hr>
-<h2><a name="ccuncheckout">CCUnCheckout</a></h2>
-<h3>Description</h3>
-Task to perform a UnCheckout command to ClearCase.
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
-  </tr>
-  <tr>
-    <td>viewpath</td>
-    <td>Path to the ClearCase view file or directory that the command 
-        will operate on</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>keepcopy</td>
-    <td>Specifies whether to keep a copy of the file with a .keep 
-        extension or not</td>
-    <td>No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-<pre>
-&lt;ccuncheckout viewpath=&quot;c:/views/viewdir/afile&quot;
-        keepcopy=&quot;true&quot;/&gt;
-</pre>
-</blockquote>
-<p>Does a ClearCase <i>uncheckout</i> on the file <i>c:/views/viewdir/afile</i>. 
-A copy of the file called <i>c:/views/viewdir/afile.keep</i> is kept.</p>
-<hr>
-<h2><a name="ccupdate">CCUpdate</a></h2>
-<h3>Description</h3>
-Task to perform an Update command to ClearCase.
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
-  </tr>
-  <tr>
-    <td>viewpath</td>
-    <td>Path to the ClearCase view file or directory that the command 
-        will operate on</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>graphical</td>
-    <td>Displays a graphical dialog during the update</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>log</td>
-    <td>Specifies a log file for ClearCase to write to</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>overwrite</td>
-    <td>Specifies whether to overwrite hijacked files or not</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>rename</td>
-    <td>Specifies that hijacked files should be renamed with a .keep extension</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>currenttime</td>
-    <td>Specifies that modification time should be written as the 
-        current time. Either currenttime or preservetime can be 
-        specified.</td>
-    <td>No</td>
-  </tr>
-  <tr>
-    <td>preservetime</td>
-    <td>Specifies that modification time should preserved from the 
-        VOB time. Either currenttime or preservetime can be 
-        specified.</td>
-    <td>No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-<pre>
-&lt;ccupdate viewpath=&quot;c:/views/viewdir&quot;
-        graphical=&quot;false&quot; 
-        log=&quot;log.log&quot;
-        overwrite=&quot;true&quot;
-        currenttime=&quot;true&quot;
-        rename=&quot;false&quot;/&gt;
-</pre>
-</blockquote>
-<p>Does a ClearCase <i>update</i> on the directory <i>c:/views/viewdir</i>. 
-A graphical dialog will be displayed. The output will be logged to 
-<i>log.log</i> and it will overwrite any hijacked files. The modified 
-time will be set to the current time.</p>
-
-</body>
-
-</html>
diff --git a/docs/manual/OptionalTasks/depend.html b/docs/manual/OptionalTasks/depend.html
deleted file mode 100644
index d8d4293..0000000
--- a/docs/manual/OptionalTasks/depend.html
+++ /dev/null
@@ -1,163 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2>Depend</h2>
-
-A task to manage Java class file dependencies.
-
-<h3>Description</h3>
-
-<p>
-The depend task works by determining which classes are out of date with
-respect to their source and then removing the class files of any other
-classes which depend on the out-of-date classes.
-</p>
-
-<p> To determine the class dependencies, the depend task analyses the class 
-files of all class files passed to it. Depend does not parse your source code in 
-any way but relies upon the class references encoded into the class files by the 
-compiler. This is generally faster than parsing the Java source.</p>
-
-<p>
-To learn more about how this information is obtained from the class files, 
-please refer to <a href="http://java.sun.com/docs/books/vmspec/">the Java 
-Virtual Machine Specification</a>
-</p>
-
-<p> Since a class' dependencies only change when the class itself changes, the 
-depend task is able to cache dependency information. Only those class files 
-which have changed will have their dependency information re-analysed. Note that 
-if you change a class' dependencies by changing the source, it will be 
-recompiled anyway. You can examine the dependency files created to understand 
-the  dependencies of your classes. Please do not rely, however, on the format of 
-the information, as it may change in a later release. </p>
-
-<p> Once depend discovers all of the class dependencies, it &quot;inverts&quot; 
-this relation to determine, for each class, which other classes are dependent 
-upon it. This &quot;affects&quot; list is used to discover which classes are 
-invalidated by the out of date class. The class files of the invalidated 
-classes are removed, triggering the compilation of the affected classes. </p>
-
-<p> The depend task supports an attribute, &quot;closure&quot; which controls 
-whether depend will only consider direct class-class relationships or whether it 
-will also consider transitive, indirect relationships. For example, say there 
-are three classes, A, which depends on B, which in-turn depend on C. Now say 
-that class C is out of date. Without closure, only class B would be removed by 
-depend. With closure set, class A would also be removed. Normally direct 
-relationships are sufficient - it is unusual for a class to depend on another 
-without having a direct relationship. With closure set, you will notice that 
-depend typically removes far more class files. </p>
-
-<h3>Performance</h3> 
-
-<p> The performance of the depend task is dependent on a 
-number of factors such as class relationship complexity and how many class files 
-are out of date. The following tests have been run when build Ant itself, on the 
-author's machine using JDK1.3 </p>
-
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td>Building Ant from clean using Javac</td>
-    <td>11 seconds</td>
-  </tr>
-  <tr>
-    <td>Building Ant from clean using Jikes</td>
-    <td>5 seconds</td>
-  </tr>
-  <tr>
-    <td>Running &lt;depend&gt; when up-to-date and no cache</td>
-    <td>4 seconds (Depend takes 2 seconds)</td>
-  </tr>
-  <tr>
-    <td>Running &lt;depend&gt; when up-to-date and with a cache</td>
-    <td>2 seconds (Depend takes 1 seconds)</td>
-  </tr>
-</table>
-
-<p> This involves compiling 177 files. The above figures are indicative only. 
-The decision about whether it is cheaper to just recompile all classes or to 
-use the depend task will depend on the size of your project and how interrelated 
-your classes are. </p>
-
-
-<h3>Limitations</h3>
-
-<p> There are some dependencies which depend will not detect. </p>
-
-<ul>
-<li>If the Java compiler optimizes away a class relationship, 
-    there can be a source dependency without a class dependency. </li>
-    
-<li>Non public classes cause two problems. Firstly depend cannot relate
-    the class file to a source file. In the future this may be addressed
-    using the source file attribute in the classfile. Secondly, neither 
-    depend nor the compiler tasks can detect when a non public class is
-    missing. Inner classes are handled by the depend task.</li>
-</ul>
-
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">srcDir</td>
-    <td valign="top">This is the directory where the source exists. depend
-will examine this to determine which classes. If you use multiple
-source directories you can pass this a path of source directories.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">destDir</td>
-    <td valign="top">This is the root directory of the class files which
-will be analysed. If this is not present, the srcdir is used.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">cache</td>
-    <td valign="top">This is a directory in which depend can store and
-retrieve dependency information. If this is not present, depend will not
-use a cache </td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">closure</td>
-    <td valign="top">This attribute controls whether depend only removes
-classes which directly depend on out of date classes. If this is set to true,
-depend will traverse the class dependency graph deleting all affected
-classes. Defaults to false</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-
-<h3>Examples</h3>
-<blockquote>
-  <pre>    &lt;depend srcdir=&quot;${java.dir}&quot;
-    destdir=&quot;${build.classes}&quot;
-    cache=&quot;depcache&quot;
-    closure=&quot;yes&quot;/&gt;</pre>
-</blockquote>
-
-<p> In this example classes in the ${build.classes} directory will be removed if 
-they depend on out-of-date classes. Classes are considered out of date with 
-respect to the source in the ${java.dir} directory using the same mechanism as 
-the javac task. In this instance the depend task caches its dependency 
-information in the depcache directory. </p>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation.
-All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/OptionalTasks/dotnet.html b/docs/manual/OptionalTasks/dotnet.html
deleted file mode 100644
index 2d710e6..0000000
--- a/docs/manual/OptionalTasks/dotnet.html
+++ /dev/null
@@ -1,510 +0,0 @@
-<html>
-<head>
-<title> .NET classes for Ant
-</title>
-</head>
-
-<body bgcolor="#ffffff">
-<h1>.NET classes for Ant</h1>
-
-<h2>Vision</h2>
-<p>
-Make ant the definitive build tool for .NET projects, just
-as it is becoming for java projects
-</p>
-
-<h2>Detail</h2>
-
-<p>
-The emergent policy in big java projects is 'IDE for code and debug';
-Ant for builds, test and deployment. While IDEs are great for an 
-individual development task, Ant not only rebuilds everything insanely
-fast, it has great support for modern deployment tasks -ftp upload, 
-EJB servers, SQL commands, all can be done from a relatively simple
-XML declaration of what you want done. Also in a large project 
-(especially open source) there is no means of dictating which IDE to use.
-Ant gives IDE independence, cross platform portability and ease of 
-extensibility. </p>
- 
-<p>
-
-Projects using .net should be able to use the same tool. This will 
-avoid everyone being dependent on Visual Studio.net (if they have it) 
-supplemented with makefiles and batch files. Anyone doing mixed java/dotnet
-development will be particulary grateful, as they can have a unified build 
-process. </p>
-
-<p>
-
-If at sometime in the future bits of .net do appear on different platforms 
-then ant based build files will migrate -once the ant tasks have been 
-migrated and any hard codings of DOS-descendant file system conventions 
-removed from the build.xml files.</p>
-
-<h2>Key .net Tasks</h2>
-
-<ol>
-<li>csc - csharp compiler - *.csc -&gt; output</li>
-<li>ilasm - IL assembler - *.il -&gt;.exe or .dll</li>
-<li>ResX - ResXToResources.exe .resx -&gt; .resources</li>
-<li>al - assembly linker (.dll) -&gt;</li>
-<li>Signcode - .exe + keys -&gt; .exe</li>
-<li>Resgen - .properties -&gt; .resources</li>
-<li>Type Library Exporter (TlbExp.exe) .dll -&gt; .tlb</li>
-<li>TlbImp.exe Type Library Importer </li>
-<li>RegAsm.exe Assembly Registration Tool .dll -&gt; .reg | registration</li>
-</ol>
-
-<h2>Ant Wrapper for net tasks</h2>
-
-Rarely used .net command line tools can be invoked manually. The key tasks
-to address are the common steps in a build process and those which benefit
-from the file pattern matching function. 
-
-<p>
-
-The esoteric tasks can then supported on demand by those who need them. 
-The initial .net tasks should provide a foundation for that demand creation 
-to be simple. </p>
-
-<h2>Plan</h2>
-
-<ol>
-
-<li>code up C sharp task and distribute for feedback &amp; identify possible
-aid</li>
-<li>Use for a real end to end development task</li>
-<li>Add the next task I need (whatever that is)</li>
-<li>Refactor to produce a base class for .net tasks</li>
-<li>Leave it other people write all the other tasks</li>
-</ol>
-
-<h2>Risks</h2>
-<ul>
-<li>
-The .net SDK is unstable; the next builds will change the commands, arguments 
-and behaviours. Probability: 100%. Impact: 2 days.</li>
-<li>Portable tasks turn out to be harder than envisaged 
- (=reworking if/when non Win32 .net build tools appear)</li>
-
-</ul>
-
-<hr>
-<h2>Using Ant in .net projects</h2>
-
-To use the net tasks one needs
-<ul>
-
-<li> A Windows box (or any other platform which supports the .net build tools)</li>
-
-<li> JavaVM - Java1.1 or later; Java1.3 recommended.</li>
-
-<li> Ant downloaded and the environment and path variables set up so 
-that typing 'ant' invokes ant via a batch file.</li>
-
-<li> An XML parser for ant. The usual distributions include an appropriate 
-version crimson.jar and jaxp.jar.</li>
-
-<li> the .net tasks archive (dotnettasks.jar) included in the
- ant\lib directory</li>
-
-<li> The .net sdk installed with the binaries on the path. (Test: type CSC)</li>
-
-<li> A build.xml file to describe the build process</li>
-</ul>
-
-<hr>
-<h2> Change Log </h2>
-
-<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>CSC: added win32res , noConfig, utf8output, fullpaths
-<li>CSC: 
-</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 exceptions </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. 
-
-<hr>
-<h2>Task: CSC</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 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>
-
-<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 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>
-
-
-<table border="1" cellpadding="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) or &quot;false&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 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">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 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 beta1, 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">outputFile</td>
-    <td valign="top">filename of output</td>
-    <td valign="top">&quot;example.exe&quot;</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;
-        outputFile=&quot;NetApp.exe&quot;
-        /&gt;   
-</pre>
-<hr>
-<h2> Task: ilasm </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>
-<hr>
-<p align="center">Copyright &copy; 2000 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
diff --git a/docs/manual/OptionalTasks/ejb.html b/docs/manual/OptionalTasks/ejb.html
deleted file mode 100644
index 736c8e6..0000000
--- a/docs/manual/OptionalTasks/ejb.html
+++ /dev/null
@@ -1,1232 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant EJB Tasks</title>
-
-</head>
-
-<body>
-
-<h1>Ant EJB Tasks User Manual</h1>
-<p>by</p>
-<!-- Names are in alphabetical order, on last name -->
-<ul>
-  <li>Paul Austin (<a href="mailto:p_d_austin@yahoo.com">p_d_austin@yahoo.com</a>)</li>
-  <li>Tim Fennell (<a href="mailto:tfenne@rcn.com">tfenne@rcn.com</a>)</li>
-  <li>Martin Gee (<a href="mailto:martin.gee@icsynergy.com">martin.gee@icsynergy.com</a>)</li>
-  <li>Conor MacNeill (<a href="mailto:conor@cortexebusiness.com.au">conor@cortexebusiness.com.au</a>)</li>
-  <li>Greg Nelson (<a href="mailto:greg@netscape.com">greg@netscape.com</a>)</li>
-</ul>
-
-<p>Version @VERSION@<br>
-$Id$
-</p>
-<hr>
-<h2>Table of Contents</h2>
-<ul>
-  <li><a href="#introduction">Introduction</a></li>
-  <li><a href="#ejbtasks">EJB Tasks</a></li>
-</ul>
-
-<hr>
-<h2><a name="introduction">Introduction</a></h2>
-<p>Ant provides a number of optional tasks for developing 
-<a href="http://java.sun.com/products/ejb" target="_top">Enterprise Java Beans (EJBs)</a>
-. In general these tasks are specific to the particular vendor's EJB Server.</p>
-
-<p> At present the tasks support:<br>
-</p>
-
-<ul>
-  <li><a href="http://www.borland.com">Borland </a>
-  Application Server 4.5</li>
-  <li><a href="http://www.iplanet.com">iPlanet </a>
-  Application Server 6.0</li>
-  <li><a href="http://www.jboss.org/" target="_top">
-  jboss 2.1</a> and above EJB servers</li>
-  <li><a href="http://www.bea.com" target="_top">Weblogic</a>
-   4.5.1, 5.1, and 6.0 EJB servers</li>
-</ul>
-  Over time we expect further optional tasks  to support additional EJB Servers.
-
-<p>Ant provides a number of optional tasks for developing 
-<a href="http://java.sun.com/products/ejb" target="_top">Enterprise Java Beans (EJBs)</a>. 
-In general these tasks are specific to the particular vendor's EJB Server. At present the tasks support
-<a href="http://www.bea.com" target="_top">Weblogic</a> 4.5.1 and 5.1 EJB servers. Over time we expect further optional tasks 
-to support additional EJB Servers. 
-</p>
-<hr>
-<h2><a name="ejbtasks">EJB Tasks</a></h2>
-<table border="1" cellpadding="5">
- <tr><td>Task</td><td colspan="2">Application Servers</td></tr>
- <tr><td><a href="BorlandGenerateClient.html">blgenclient</a></td><td colspan="2">Borland Application Server 4.5</td></tr>
- <tr><td><a href="#ddcreator">ddcreator</a></td><td colspan="2">Weblogic 4.5.1</td></tr>
- <tr><td><a href="#ejbc">ejbc</a></td><td colspan="2">Weblogic 4.5.1</td></tr>
- <tr><td><a href="#iplanet-ejbc">iplanet-ejbc</a></td><td colspan="2">iPlanet Application Server 6.0</td></tr>
- <tr><td rowspan="5"><a href="#ejbjar">ejbjar</a></td><td colspan="2" align="center"><b>Nested Elements</b></td></tr>
- <tr><td><a href="BorlandEJBTasks.html">borland</a></td><td>Borland Application Server 4.5</td></tr>
- <tr><td><a href="#ejbjar_jboss">jBoss</a></td><td>jBoss</td></tr>
- <tr><td><a href="#ejbjar_iplanet">iPlanet</a></td><td>iPlanet Application Server 6.0</td></tr>
- <tr><td><a href="#ejbjar_weblogic">weblogic</a></td><td>Weblogic 5.1 &amp; 6.0</td></tr>
- <tr><td><a href="#wlrun">wlrun</a></td><td colspan="2">Weblogic 4.5.1, 5.1 &amp; 6.0</td></tr>
- <tr><td><a href="#wlstop">wlstop</a></td><td colspan="2">Weblogic 4.5.1, 5.1 &amp; 6.0</td></tr>
-
-</table>
-
-<hr>
-<h2><a name="ddcreator">ddcreator</a></h2>
-<h3><b>Description:</b></h3>
-<p>ddcreator will compile a set of Weblogic text-based deployment descriptors into a serialized
-EJB deployment descriptor. The selection of which of the text-based descriptors are to be compiled
-is based on the standard Ant include and exclude selection mechanisms. 
-</p>
-
-<h3>Parameters:</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">descriptors</td>
-    <td valign="top">This is the base directory from which descriptors are selected.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">dest</td>
-    <td valign="top">The directory where the serialised deployment descriptors will be written</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">classpath</td>
-    <td valign="top">This is the classpath to use to run the underlying weblogic ddcreator tool. 
-                     This must include the <code>weblogic.ejb.utils.DDCreator</code> class</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>&lt;ddcreator descriptors=&quot;${dd.dir}&quot; 
-           dest=&quot;${gen.classes}&quot; 
-           classpath=&quot;${descriptorbuild.classpath}&quot;&gt;
-  &lt;include name=&quot;*.txt&quot; /&gt;
-&lt;/ddcreator&gt;
-</pre>
-
-<hr>
-<h2><a name="ejbc">ejbc</a></h2>
-<h3><b>Description:</b></h3>
-<p>The ejbc task will run Weblogic's ejbc tool. This tool will take a serialised deployment descriptor, 
-examine the various EJB interfaces and bean classes and then generate the required support classes 
-necessary to deploy the bean in a Weblogic EJB container. This will include the RMI stubs and skeletons
-as well as the classes which implement the bean's home and remote interfaces.</p>
-<p>
-The ant task which runs this tool is able to compile several beans in a single operation. The beans to be 
-compiled are selected by including their serialised deployment descriptors. The standard ant 
-<code>include</code> and <code>exclude</code> constructs can be used to select the deployment descriptors
-to be included. </p>
-<p>
-Each descriptor is examined to determine whether the generated classes are out of date and need to be 
-regenerated. The deployment descriptor is de-serialized to discover the home, remote and 
-implementation classes. The corresponding source files are determined and checked to see their 
-modification times. These times and the modification time of the serialised descriptor itself are
-compared with the modification time of the generated classes. If the generated classes are not present
-or are out of date, the ejbc tool is run to generate new versions.</p>
-<h3>Parameters:</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">descriptors</td>
-    <td valign="top">This is the base directory from which the serialised deployment descriptors are selected.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">dest</td>
-    <td valign="top">The base directory where the generated classes, RIM stubs and RMI skeletons are written</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">manifest</td>
-    <td valign="top">The name of a manifest file to be written. This manifest will contain an entry for each EJB processed</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">src</td>
-    <td valign="top">The base directory of the source tree containing the source files of the home interface,
-                     remote interface and bean implementation classes.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">classpath</td>
-    <td valign="top">This classpath must include both the <code>weblogic.ejbc</code> class and the
-                     classfiles of the bean, home interface, remote interface, etc of the bean being
-                     processed.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<pre>&lt;ejbc descriptors=&quot;${gen.classes}&quot;
-           src=&quot;${src.dir}&quot; 
-           dest=&quot;${gen.classes}&quot;
-           manifest=&quot;${build.manifest}&quot; 
-           classpath=&quot;${descriptorbuild.classpath}&quot;&gt;
-  &lt;include name=&quot;*.ser&quot; /&gt;
-&lt;/ejbc&gt;
-</pre>
-
-<hr>
-<h2>
-<a NAME="iplanet-ejbc"></a>iplanet-ejbc</h2>
-
-<h3>
-<b>Description:</b></h3>
-Task to compile EJB stubs and skeletons for the iPlanet Application Server
-6.0.  Given a standard EJB 1.1 XML descriptor as well as an iAS-specific
-EJB descriptor, this task will generate the stubs and skeletons required
-to deploy the EJB to iAS.  Since the XML descriptors can include multiple
-EJBs, this is a convenient way of specifying many EJBs in a single Ant
-task.
-<p>For each EJB specified, the task will locate the three classes that
-comprise the EJB in the destination directory.  If these class files
-cannot be located in the destination directory, the task will fail. The
-task will also attempt to locate the EJB stubs and skeletons in this directory.
-If found, the timestamps on the stubs and skeletons will be checked to
-ensure they are up to date. Only if these files cannot be found or if they
-are out of date will the iAS ejbc utility be called to generate new stubs
-and skeletons.
-<h3>
-Parameters:</h3>
- 
-<table BORDER CELLSPACING=0 CELLPADDING=2 >
-<tr>
-<td VALIGN=TOP><b>Attribute</b></td>
-
-<td VALIGN=TOP><b>Description</b></td>
-
-<td ALIGN=CENTER VALIGN=TOP><b>Required</b></td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>ejbdescriptor</td>
-
-<td VALIGN=TOP>Standard EJB 1.1 XML descriptor (typically titled "ejb-jar.xml").</td>
-
-<td ALIGN=CENTER VALIGN=TOP>Yes</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>iasdescriptor</td>
-
-<td VALIGN=TOP>iAS-specific EJB XML descriptor (typically titled "ias-ejb-jar.xml).</td>
-
-<td ALIGN=CENTER VALIGN=TOP>Yes</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>dest</td>
-
-<td VALIGN=TOP>The is the base directory where the RMI stubs and skeletons
-are written. In addition, the class files for each bean (home interface,
-remote interface, and EJB implementation) must be found in this directory.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>Yes</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>classpath</td>
-
-<td VALIGN=TOP>The classpath used when generating EJB stubs and skeletons.
-If omitted, the classpath specified when Ant was started will be used.
-Nested "classpath" elements may also be used.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>keepgenerated</td>
-
-<td VALIGN=TOP>Indicates whether or not the Java source files which are
-generated by ejbc will be saved or automatically deleted. If "yes", the
-source files will be retained. If omitted, it defaults to "no". </td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>debug</td>
-
-<td>Indicates whether or not the ejbc utility should log additional debugging
-statements to the standard output. If "yes", the additional debugging statements
-will be generated.  If omitted, it defaults to "no". </td>
-
-<td ALIGN=CENTER VALIGN=TOP>
-<center>No</center>
-</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>iashome</td>
-
-<td>May be used to specify the "home" directory for this iAS installation.
-This is used to find the ejbc utility if it isn't included in the user's
-system path. If specified, it should refer to the "[install-location]/iplanet/ias6/ias"
-directory. If omitted, the ejbc utility must be on the user's system path. </td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-</table>
-
-<h3>
-Examples</h3>
-
-<pre>&lt;iplanet-ejbc ejbdescriptor="ejb-jar.xml"
-              iasdescriptor="ias-ejb-jar.xml"
-              dest="${build.classesdir}" 
-              classpath="${ias.ejbc.cpath}" />
-
-&lt;iplanet-ejbc ejbdescriptor="ejb-jar.xml"
-              iasdescriptor="ias-ejb-jar.xml"
-              dest="${build.classesdir}" 
-              keepgenerated="yes"
-              debug="yes"
-              iashome="${ias.home}" >
-              &lt;classpath>
-                  &lt;pathelement path="." />
-                  &lt;pathelement path="${build.classpath}" />
-              &lt;/classpath>
-&lt;/iplanet-ejbc>
-
-</pre>
-
-<hr>
-<h2><a name="wlrun">wlrun</a></h2>
-<h3><b>Description:</b></h3>
-
-<p>The <code>wlrun</code> task is used to start a weblogic server. The task runs 
-a weblogic instance in a separate Java Virtual Machine. A number of parameters 
-are used to control the operation of the weblogic instance. Note that the task, 
-and hence ant, will not complete until the weblogic instance is stopped.</p>
-
-<h3>Parameters:</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required for 4.5.1 and 5.1</b></td>
-    <td align="center" valign="top"><b>Required for 6.0</b></td>
-  </tr>
-  <tr>
-    <td valign="top">BEA Home</td>
-    <td valign="top">The location of the BEA Home qwhere the server's config is defined.
-                     If this attribute is present, wlrun assumes that the server will
-                     be running under Weblogic 6.0</td>
-    <td valign="top" align="center">N/A</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">home</td>
-    <td valign="top">The location of the weblogic home that is to be used. This is the location 
-                     where weblogic is installed.</td>
-    <td valign="top" align="center">Yes</td>
-    <td valign="top" align="center">Yes. Note this is the absolute location, not relative to 
-                                    BEA home.</td>
-  </tr>
-  <tr>
-    <td valign="top">Domain</td>
-    <td valign="top">The domain to which the server belongs.</td>
-    <td valign="top" align="center">N/A</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">classpath</td>
-    <td valign="top">The classpath to be used with the Java Virtual Machine that runs the Weblogic 
-                     Server. Prior to Weblogic 6.0, this is typically set to the Weblogic 
-                     boot classpath. Under Weblogic 6.0 this should include all the 
-                     weblogic jars</td>
-    <td valign="top" align="center">Yes</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">wlclasspath</td>
-    <td valign="top">The weblogic classpath used by the Weblogic Server.</td>
-    <td valign="top" align="center">No</td>
-    <td valign="top" align="center">N/A</td>
-  </tr>
-  <tr>
-    <td valign="top">properties</td>
-    <td valign="top">The name of the server's properties file within the weblogic home directory
-                     used to control the weblogic instance.</td>
-    <td valign="top" align="center">Yes</td>
-    <td valign="top" align="center">N/A</td>
-  </tr>
-  <tr>
-    <td valign="top">name</td>
-    <td valign="top">The name of the weblogic server within the weblogic home which is to be run. 
-                     This defaults to &quot;myserver&quot;</td>
-    <td valign="top" align="center">No</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">policy</td>
-    <td valign="top">The name of the security policy file within the weblogic home directory that 
-                     is to be used. If not specified, the default policy file <code>weblogic.policy</code>
-                     is used.</td>
-    <td valign="top" align="center">No</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">username</td>
-    <td valign="top">The management username used to manage the server</td>
-    <td valign="top" align="center">N/A</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">password</td>
-    <td valign="top">The server's management password</td>
-    <td valign="top" align="center">N/A</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">pkPassword</td>
-    <td valign="top">The private key password so the server can decrypt the SSL 
-                     private key file</td>
-    <td valign="top" align="center">N/A</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">jvmargs</td>
-    <td valign="top">Additional argument string passed to the Java Virtual Machine used to run the
-                     Weblogic instance.</td>
-    <td valign="top" align="center">No</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">args</td>
-    <td valign="top">Additional argument string passed to the Weblogic instance.</td>
-    <td valign="top" align="center">No</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-
-<h3>Nested Elements</h3>
-
-<p>The wlrun task supports nested &lt;classpath&gt; and &lt;wlclasspath&gt; 
-elements to set the repsective classpaths.</p>
-
-<h3>Examples</h3>
-
-<p>This example shows the use of wlrun to run a server under Weblogic 5.1</p>
-
-<pre>
-    &lt;wlrun taskname=&quot;myserver&quot;
-           classpath=&quot;${weblogic.boot.classpath}&quot;
-           wlclasspath=&quot;${weblogic.classes}:${code.jars}&quot;
-           name=&quot;myserver&quot; 
-           home=&quot;${weblogic.home}&quot;
-           properties=&quot;myserver/myserver.properties&quot;/&gt;
-</pre>
-
-<p>This example shows wlrun being used to run the petstore server under
-Weblogic 6.0</p>
-
-<pre>
-    &lt;wlrun taskname=&quot;petstore&quot;
-           classpath=&quot;${weblogic.classes}&quot;
-           name=&quot;petstoreServer&quot; 
-           domain=&quot;petstore&quot; 
-           home=&quot;${weblogic.home}&quot;
-           password=&quot;petstorePassword&quot;
-           beahome=&quot;${bea.home}&quot;/&gt;
-</pre>
-
-<hr>
-<h2><a name="wlstop">wlstop</a></h2>
-<h3><b>Description:</b></h3>
-
-<p>The <code>wlstop</code> task is used to stop a weblogic instance which is 
-currently running. To shut down an instance you must supply both a username and 
-a password. These will be stored in the clear in the build script used to stop 
-the instance. For security reasons, this task is therefore only appropriate in a 
-development environment. </p>
-
-<p>This task works for most version of Weblogic, including 6.0. You need to 
-specify the BEA Home to have this task work correctly under 6.0</p>
-
-<h3>Parameters:</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">BEAHome</td>
-    <td valign="top">This attribute selects Weblogic 6.0 shutdown.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">classpath</td>
-    <td valign="top">The classpath to be used with the Java Virtual Machine that runs the Weblogic 
-                     Shutdown comment.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">user</td>
-    <td valign="top">The username of the account which will be used to shutdown the server</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">password</td>
-    <td valign="top">The password for the account specified in the user parameter.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">url</td>
-    <td valign="top">The URL which describes the port to which the server is listening for T3 connections. 
-                     For example, t3://localhost:7001</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">delay</td>
-    <td valign="top">The delay in seconds after which the server will stop. This defaults to an
-                     immediate shutdown.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-
-<h3>Nested Element</h3>
-
-<p>The classpath of the welstop task can be set by a &lt;classpath&gt; nested element.</p>
-
-<h3>Examples</h3>
-
-<p>This example show the shutdown for a Weblogic 6.0 server</p>
-
-<pre>
-    &lt;wlstop classpath=&quot;${weblogic.classes}&quot;
-            user=&quot;system&quot;
-            url=&quot;t3://localhost:7001&quot;
-            password=&quot;foobar&quot;
-            beahome=&quot;${bea.home}&quot;/&gt;
-</pre>
-
-<hr>
-
-<h2><a name="ejbjar">ejbjar</a></h2>
-<h3><b>Description:</b></h3>
-
-<p>This task is designed to support building of EJB1.1 jar files. Support is 
-currently provided for 'vanilla' EJB1.1 jar files - i.e. those containing only 
-the user generated class files and the standard deployment descriptor. Nested 
-elements provide support for vendor specific deployment tools. These currently
-include: </p>
-<ul>
-  <li>Borland Application Server 4.5</li>
-  <li>iPlanet Application Server 6.0</li>
-  <li>Jboss 2.1 and above</li>
-  <li>Weblogic 5.1/6.0 session/entity beans using the weblogic.ejbc tool
-  <li>TOPLink for WebLogic 2.5.1-enabled entity beans</li>
-</ul>
-
-<p>This task supports two approaches to creating ejb jar files. The first 
-approach assumes a particular naming convention for deployment descriptor files. 
-For an Account bean, for example, the deployment descriptor would be named 
-<code>Account-ejb-jar.xml</code>. This naming convention allows the task to 
-distinguish deployment descriptors without relying on their positioning within a 
-source tree. It is also used to derive the name of the .jar file which is 
-generated. For the example this would be <code>Account.jar</code>. Vendor 
-specific files are assumed to be named in a similar fashion. The deployment 
-descriptor file which defines additional weblogic specific information for the 
-above bean would be <code>Account-weblogic-ejb-jar.xml</code>. The second 
-approach does not require a naming convention. This approach uses a specified a 
-jar name for the resultant ejb jar. If the jar name is present, then no naming 
-convention is required. If the jar name is not specified, then the default 
-naming convention is expected for the deployment descriptor files.</p>
-
-<p>The task works as a directory scanning task, and performs an action for each 
-deployment descriptor found. As such the includes and excludes should be set 
-to ensure that all desired EJB1.1 descriptors are found, but no application 
-server descriptors are found. For each descriptor found, ejbjar will parse the 
-deployment descriptor to determine the necessary class files which implement the 
-bean. These files are assembled along with the deployment descriptors into a 
-well formed EJB jar file. Any support files which need to be included in the 
-generated jar can be added with the &lt;support&gt; nested element. For each 
-class included in the jar, ejbjar will scan for any super classes or super
-interfaces. These will be added to the generated jar.</p>
-
-<p>If no nested vendor-specific deployment elements are present, the task will 
-simply generate a generic EJB jar. Such jars are typically used as the input to 
-vendor-specific deployment tools. For each nested deployment element, a vendor 
-specific deployment tool is run to generate a jar file ready for deployment in 
-that vendor's EJB container. </p>
-
-<p>The jar files are only built if they are out of date.  Each deployment tool 
-element will examine its target jar file and determine if it is out of date with 
-respect to the class files and deployment descriptors that make up the bean. If 
-any of these files are newer than the jar file the jar will be rebuilt otherwise 
-a message is logged that the jar file is up to date.</p>
-
-<h3>Parameters:</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">descriptordir</td>
-    <td valign="top">The base directory under which to scan for EJB 
-                     deployment descriptors. If this attribute is not 
-                     specified, then the deployment descriptors must be 
-                     located in the directory specified by the 'srcdir' 
-                     attribute.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">srcdir</td>
-    <td valign="top">The base directory containing the .class files that 
-                     make up the bean. Note that this can be the same as 
-                     the descriptordir if all files are in the same directory
-                     tree.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">destdir</td>
-    <td valign="top">The base directory into which generated jar files are 
-                     deposited. Jar files are deposited in directories 
-                     corresponding to their location within the descriptordir
-                     namespace. Note that this attribute is only used if the 
-                     task is generating generic jars (i.e. no vendor-specific
-                     deployment elements have been specified).</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">basejarname</td>
-    <td valign="top">The base name that is used for the generated jar files. 
-                     If this attribute is specified, the generic jar file name 
-                     will use this value as the prefix (followed by the value 
-                     specified in the 'genericjarsuffix' attribute) and the 
-                     resultant ejb jar file (followed by any suffix specified
-                     in the nested element).</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">basenameterminator</td>
-    <td valign="top">String value used to substring out a string from the name 
-                     of each deployment descriptor found, which is then used to
-                     locate related deployment descriptors (e.g. the WebLogic 
-                     descriptors). For example, a basename of '.' and a 
-                     deployment descriptor called 'FooBean.ejb-jar.xml' would
-                     result in a basename of 'FooBean' which would then be used
-                     to find FooBean.weblogic-ejb-jar.xml and 
-                     FooBean.weblogic-cmp-rdbms-jar.xml, as well as to create 
-                     the filenames of the jar files as FooBean-generic.jar and 
-                     FooBean-wl.jar. This attribute is not used if the 
-                     'basejarname' attribute is specified.</td>
-    <td valign="top" align="center">No, defaults to '-'.</td>
-  </tr>
-  <tr>
-    <td valign="top">genericjarsuffix</td>
-    <td valign="top">String value appended to the basename of the deployment 
-                     descriptor to create the filename of the generic EJB jar 
-                     file.</td>
-    <td valign="top" align="center">No, defaults to '-generic.jar'.</td>
-  </tr>
-  <tr>
-    <td valign="top">classpath</td>
-    <td valign="top">This classpath is used when resolving classes which
-                     are to be added to the jar. Typically nested deployment
-                     tool elements will also support a classpath which 
-                     will be combined with this classpath when resolving 
-                     classes</td>
-    <td valign="top" align="center">No.</td>
-  </tr>
-  <tr>
-    <td valign="top">flatdestdir</td>
-    <td valign="top">Set this attribute to true if you want all generated jars
-                     to be placed in the root of the destdir, rather than
-                     according to the location of the deployment descriptor
-                     within the descriptor dir hierarchy.</td>
-    <td valign="top" align="center">No.</td>
-  </tr>
-</table>
-
-<h3>Nested Elements</h3>
-
-<p>In addition to the vendor specific nested elements, the ejbjar task provides 
-three nested elements. </p>
-
-<h4>Classpath</h4>
-
-<p>The &lt;classpath&gt; nested element allows the classpath 
-to be set. It is useful when setting the classpath from a reference path. In all 
-other respects the behaviour is the same as the classpath attribute.</p>
-
-<h4>dtd</h4>
-
-<p>The &lt;dtd&gt; element is used to specify the local location of DTDs to be 
-used when parsing the EJB deployment descriptor. Using a local DTD is much 
-faster than loading the DTD across the net. If you are running ejbjar behind a 
-firewall you may not even be able to access the remote DTD. The supported 
-vendor-specific nested elements know the location of the required DTDs within 
-the vendor class hierarchy and, in general, this means &lt;dtd&gt; elements are 
-not required. It does mean, however, that the vendor's class hierarchy must be 
-available in the classpath when Ant is started. If your want to run Ant without 
-requiring the vendor classes in the classpath, you would need to use a 
-&lt;dtd&gt; element.</p>
-
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">publicId</td>
-    <td valign="top">The public Id of the DTD for which the location is being provided</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">location</td>
-    <td valign="top">The location of the local copy of the DTD. This can either be a
-                     file or a resource loadable from the classpath.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-</table>
-
-<h4>support</h4>
-
-<p>The &lt;support&gt; nested element is used to supply additional classes 
-(files) to be included in the generated jars. The &lt;support&gt; element is a 
-FileSet, so it can either reference a fileset declared elsewhere or it can be 
-defined in-place with the appropriate &lt;include&gt; and &lt;exclude&gt; nested 
-elements. The files in the support fileset are added into the generated EJB jar 
-in the same relative location as their location within the support fileset. Note 
-that when ejbjar generates more than one jar file, the support files are added 
-to each one.</p>
-
-<h3>Vendor-specific deployment elements</h3>
-
-Each vendor-specific nested element controls the generation of a deployable jar 
-specific to that vendor's EJB container. The parameters for each supported 
-deployment element are detailed here.
-
-<a name="ejbjar_jboss">
-<h3>Jboss element</h3>
-</a>
-
-<p>The jboss element searches for the jboss specific deployment descriptors and adds them
-to the final ejb jar file. Jboss has two deployment descriptors jboss.xml and jaws.xml
-(for container manager persistance only). The Jboss server uses hot deployment and does
-not require compilation of additional stubs and skeletons.</p>
-
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">destdir</td>
-    <td valign="top">The base directory into which the generated weblogic ready
-                     jar files are deposited. Jar files are deposited in
-                     directories corresponding to their location within the
-                     descriptordir namespace. </td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">genericjarsuffix</td>
-    <td valign="top">A generic jar is generated as an intermediate step in
-                     build the weblogic deployment jar. The suffix used to
-                     generate the generic jar file is not particularly
-                     important unless it is desired to keep the generic
-                     jar file. It should not, however, be the same
-                     as the suffix setting.</td>
-    <td valign="top" align="center">No, defaults to '-generic.jar'.</td>
-  </tr>
-  <tr>
-    <td valign="top">suffix</td>
-    <td valign="top">String value appended to the basename of the deployment
-                     descriptor to create the filename of the WebLogic EJB
-                     jar file.</td>
-    <td valign="top" align="center">No, defaults to '.jar'.</td>
-  </tr>
-  <tr>
-    <td valign="top">keepgeneric</td>
-    <td valign="top">This controls whether the generic file used as input to
-                     ejbc is retained.</td>
-    <td valign="top" align="center">No, defaults to false</td>
-  </tr>
-</table>
-
-<a name="ejbjar_weblogic">
-<h3>Weblogic element</h3>
-</a>
-
-<p>The weblogic element is used to control the weblogic.ejbc compiler for 
-generating weblogic EJB jars. Prior to Ant 1.3, the method of locating CMP 
-descriptors was to use the ejbjar naming convention. So if your ejb-jar was 
-called, Customer-ejb-jar.xml, your weblogic descriptor was called Customer-
-weblogic-ejb-jar.xml and your CMP descriptor had to be Customer-weblogic-cmp-
-rdbms-jar.xml. In addition, the &lt;type-storage&gt; element in the weblogic 
-descriptor had to be set to the standard name META-INF/weblogic-cmp-rdbms-
-jar.xml, as that is where the CMP descriptor was mapped to in the generated 
-jar.</p>
-
-<p>There are a few problems with this scheme. It does not allow for more than 
-one CMP descriptor to be defined in a jar and it is not compatible with the 
-deployment descriptors generated by some tools.</p>
-
-<p>In Ant 1.3, ejbjar parses the weblogic deployment descriptor to discover the 
-CMP descriptors, which are then included automatically. This behaviour is 
-controlled by the newCMP attribute. Note that if you move to the new method of 
-determining CMP descriptors, you will need to update your weblogic deployment 
-descriptor's &lt;type-storage&gt; element. In the above example, you would 
-define this as META-INF/Customer-weblogic-cmp-rdbms-jar.xml.</p>
-
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">destdir</td>
-    <td valign="top">The base directory into which the generated weblogic ready
-                     jar files are deposited. Jar files are deposited in 
-                     directories corresponding to their location within the 
-                     descriptordir namespace. </td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">genericjarsuffix</td>
-    <td valign="top">A generic jar is generated as an intermediate step in 
-                     build the weblogic deployment jar. The suffix used to 
-                     generate the generic jar file is not particularly 
-                     important unless it is desired to keep the generic 
-                     jar file. It should not, however, be the same
-                     as the suffix setting.</td>
-    <td valign="top" align="center">No, defaults to '-generic.jar'.</td>
-  </tr>
-  <tr>
-    <td valign="top">suffix</td>
-    <td valign="top">String value appended to the basename of the deployment 
-                     descriptor to create the filename of the WebLogic EJB 
-                     jar file.</td>
-    <td valign="top" align="center">No, defaults to '.jar'.</td>
-  </tr>
-  <tr>
-    <td valign="top">classpath</td>
-    <td valign="top">The classpath to be used when running the weblogic ejbc 
-                     tool. Note that this tool typically requires the classes
-                     that make up the bean to be available on the classpath. 
-                     Currently, however, this will cause the ejbc tool to be 
-                     run in a separate VM</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">wlclasspath</td>
-    <td valign="top">Weblogic 6.0 will give a warning if the home and remote interfaces
-                     of a bean are on the system classpath used to run weblogic.ejbc. 
-                     In that case, the standard weblogic classes should be set with
-                     this attribute (or equivalent nested element) and the 
-                     home and remote interfaces located with the standard classpath
-                     attribute</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">keepgeneric</td>
-    <td valign="top">This controls whether the generic file used as input to 
-                     ejbc is retained.</td>
-    <td valign="top" align="center">No, defaults to false</td>
-  </tr>
-  <tr>
-    <td valign="top">compiler</td>
-    <td valign="top">This allows for the selection of a different compiler
-                     to be used for the compilation of the generated Java
-                     files. This could be set, for example, to Jikes to 
-                     compile with the Jikes compiler. If this is not set
-                     and the <code>build.compiler</code> property is set
-                     to jikes, the Jikes compiler will be used. If this
-                     is not desired, the value &quot;<code>default</code>&quot; 
-                     may be given to use the default compiler</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">rebuild</td>
-    <td valign="top">This flag controls whether weblogic.ejbc is always 
-                     invoked to build the jar file. In certain circumstances,
-                     such as when only a bean class has been changed, the jar
-                     can be generated by merely replacing the changed classes
-                     and not rerunning ejbc. Setting this to false will reduce
-                     the time to run ejbjar. 
-                     </td>
-    <td valign="top" align="center">No, defaults to true.</td>
-  </tr>
-  <tr>
-    <td valign="top">keepgenerated</td>
-    <td valign="top">Controls whether weblogic will keep the generated Java
-                     files used to build the class files added to the 
-                     jar. This can be useful when debugging
-                     </td>
-    <td valign="top" align="center">No, defaults to false.</td>
-  </tr>
-  <tr>
-    <td valign="top">args</td>
-    <td valign="top">Any additional arguments to be passed to the weblogic.ejbc
-                     tool.
-                     </td>
-    <td valign="top" align="center">No.</td>
-  </tr>
-  <tr>
-    <td valign="top">weblogicdtd</td>
-    <td valign="top"><b>Deprecated</b>. Defines the location of the ejb-jar DTD in 
-                     the weblogic class hierarchy. This should not be necessary if you
-                     have weblogic in your classpath. If you do not, you should use a 
-                     nested &lt;dtd&gt; element, described above. If you do choose
-                     to use an attribute, you should use the ejbdtd attribute in
-                     preference to this one, anyway.
-                     </td>
-    <td valign="top" align="center">No.</td>
-  </tr>
-  <tr>
-    <td valign="top">wldtd</td>
-    <td valign="top"><b>Deprecated</b>. Defines the location of the weblogic-ejb-jar 
-                     DTD which covers the Weblogic specific deployment descriptors.
-                     This should not be necessary if you have weblogic in your 
-                     classpath. If you do not, you should use a nested &lt;dtd&gt; 
-                     element, described above.
-                     </td>
-    <td valign="top" align="center">No.</td>
-  </tr>
-  <tr>
-    <td valign="top">ejbdtd</td>
-    <td valign="top"><b>Deprecated</b>. Defines the location of the ejb-jar DTD in 
-                     the weblogic class hierarchy. This should not be necessary if you
-                     have weblogic in your classpath. If you do not, you should use a 
-                     nested &lt;dtd&gt; element, described above.
-                     </td>
-    <td valign="top" align="center">No.</td>
-  </tr>
-  <tr>
-    <td valign="top">newCMP</td>
-    <td valign="top">If this is set to true, the new method for locating
-                     CMP descriptors will be used.</td>
-    <td valign="top" align="center">No. Defaults to false</td>
-  </tr>
-  <tr>
-    <td valign="top">oldCMP</td>
-    <td valign="top"><b>Deprecated</b> This is an antonym for newCMP which should be used instead.</td>
-    <td valign="top" align="center">No.</td>
-  </tr>
-  <tr>
-    <td valign="top">noEJBC</td>
-    <td valign="top">If this attribute is set to true, Weblogic's ejbc will not be run on the EJB jar.
-                     Use this if you prefer to run ejbc at deployment time.</td>
-    <td valign="top" align="center">No.</td>
-  </tr>
-</table>
-
-<p>The weblogic nested element itself supports two nested elements &lt;classpath&gt; and 
-&lt;wlclasspath&gt; which are used to set the respective classpaths. These nested elements
-are useful when setting up class paths using reference Ids.</p>
-
-<h3>TOPLink for Weblogic element</h3>
-
-<p>The TopLink element is used to handle beans which use Toplink for the CMP operations. It
-is derived from the standard weblogic element so it supports the same set of attributes please these
-additional attributes</p>
-
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">toplinkdescriptor</td>
-    <td valign="top">This specifies the name of the TOPLink deployment descriptor file contained in the 
-                     'descriptordir' directory.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">toplinkdtd</td>
-    <td valign="top">This specifies the location of the TOPLink DTD file. This can be a file path or
-                     a file URL. This attribute is not required, but using a local DTD is recommended.</td>
-    <td valign="top" align="center">No, defaults to dtd file at www.objectpeople.com.</td>
-  </tr>
-</table>
-
-
-<h3>Examples</h3>
-
-<p>This example shows ejbjar being used to generate deployment jars using a 
-Weblogic EJB container. This example requires the naming standard to be used for 
-the deployment descriptors. Using this format will create a ejb jar file for 
-each variation of '*-ejb-jar.xml' that is found in the deployment descriptor 
-directory.</p>
-
-<pre>
-    &lt;ejbjar srcdir=&quot;${build.classes}&quot;
-            descriptordir=&quot;${descriptor.dir}&quot;&gt;
-      &lt;weblogic destdir=&quot;${deploymentjars.dir}&quot;
-                classpath=&quot;${descriptorbuild.classpath}&quot;/&gt;
-      &lt;include name=&quot;**/*-ejb-jar.xml&quot;/&gt;
-      &lt;exclude name=&quot;**/*weblogic*.xml&quot;/&gt;
-    &lt;/ejbjar&gt;
-</pre>
-
-<p>If weblogic is not in the Ant classpath, the following example 
-shows how to specify the location of the weblogic DTDs. This 
-example also show the use of a nested classpath element.</p>
-   
-<pre>
-    &lt;ejbjar descriptordir=&quot;${src.dir}&quot; srcdir=&quot;${build.classes}&quot;&gt;
-       &lt;weblogic destdir=&quot;${deployment.webshop.dir}&quot; 
-                 keepgeneric=&quot;true&quot;
-                 args=&quot;-g -keepgenerated ${ejbc.compiler}&quot;
-                 suffix=&quot;.jar&quot;
-                 oldCMP=&quot;false&quot;&gt;
-         &lt;classpath&gt;
-           &lt;pathelement path=&quot;${descriptorbuild.classpath}&quot;/&gt;
-         &lt;/classpath&gt;
-       &lt;/weblogic&gt;
-       &lt;include name=&quot;**/*-ejb-jar.xml&quot;/&gt; 
-       &lt;exclude name=&quot;**/*-weblogic-ejb-jar.xml&quot;/&gt;
-       &lt;dtd publicId=&quot;-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN&quot;
-            location=&quot;${weblogic.home}/classes/weblogic/ejb/deployment/xml/ejb-jar.dtd&quot;/&gt;
-       &lt;dtd publicId=&quot;-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB//EN&quot;
-            location=&quot;${weblogic.home}/classes/weblogic/ejb/deployment/xml/weblogic-ejb-jar.dtd&quot;/&gt;
-    &lt;/ejbjar&gt;
-</pre>   
-
-
-<p>This example shows ejbjar being used to generate a single deployment jar 
-using a Weblogic EJB container. This example does not require the deployment 
-descriptors to use the naming standard. This will create only one ejb jar file -
-'TheEJBJar.jar'.</p>
-
-
-<pre>
-    &lt;ejbjar srcdir=&quot;${build.classes}&quot;
-            descriptordir=&quot;${descriptor.dir}&quot;
-            basejarname=&quot;TheEJBJar&quot;&gt;
-      &lt;weblogic destdir=&quot;${deploymentjars.dir}&quot;
-                classpath=&quot;${descriptorbuild.classpath}&quot;/&gt;
-      &lt;include name=&quot;**/ejb-jar.xml&quot;/&gt;
-      &lt;exclude name=&quot;**/weblogic*.xml&quot;/&gt;
-    &lt;/ejbjar&gt;
-</pre>
-
-<p>This example shows ejbjar being used to generate deployment jars for a TOPLink-enabled entity bean using a 
-Weblogic EJB container. This example does not require the deployment descriptors to use the naming standard.
-This will create only one TOPLink-enabled ejb jar file - 'Address.jar'.</p>
-
-<pre>
-    &lt;ejbjar srcdir=&quot;${build.dir}&quot;
-            destdir=&quot;${solant.ejb.dir}&quot;
-            descriptordir=&quot;${descriptor.dir}&quot;
-            basejarname=&quot;Address&quot;&gt;
-            &lt;weblogictoplink destdir=&quot;${solant.ejb.dir}&quot;
-                    classpath=&quot;${java.class.path}&quot;
-                    keepgeneric=&quot;false&quot;
-                    toplinkdescriptor=&quot;Address.xml&quot;
-                    toplinkdtd=&quot;file:///dtdfiles/toplink-cmp_2_5_1.dtd&quot;
-                    suffix=&quot;.jar&quot;/&gt;
-            &lt;include name=&quot;**/ejb-jar.xml&quot;/&gt;
-            &lt;exclude name=&quot;**/weblogic-ejb-jar.xml&quot;/&gt;
-    &lt;/ejbjar&gt;
-</pre>
-
-<p>This final example shows how you would set-up ejbjar under Weblogic 6.0. It also shows the use of the 
-&lt;support&gt; element to add support files
-
-<pre>
-    &lt;ejbjar descriptordir=&quot;${dd.dir}&quot; srcdir=&quot;${build.classes.server}&quot;&gt;
-       &lt;include name=&quot;**/*-ejb-jar.xml&quot;/&gt; 
-       &lt;exclude name=&quot;**/*-weblogic-ejb-jar.xml&quot;/&gt;
-       &lt;support dir=&quot;${build.classes.server}&quot;&gt;
-            &lt;include name=&quot;**/*.class&quot;/&gt; 
-       &lt;/support&gt;
-       &lt;weblogic destdir=&quot;${deployment.dir}&quot; 
-                 keepgeneric=&quot;true&quot;
-                 suffix=&quot;.jar&quot;
-                 rebuild=&quot;false&quot;&gt;
-         &lt;classpath&gt;
-            &lt;pathelement path=&quot;${build.classes.server}&quot;/&gt;
-         &lt;/classpath&gt;
-         &lt;wlclasspath&gt;
-            &lt;pathelement path=&quot;${weblogic.classes}&quot;/&gt;
-         &lt;/wlclasspath&gt;
-       &lt;/weblogic&gt;
-    &lt;/ejbjar&gt;
-</pre>
-
-<a name="ejbjar_iplanet">
-<h3>iPlanet Application Server (iAS) element</h3>
-</a>
-
-The &lt;iplanet> nested element is used to build iAS-specific stubs and
-skeletons and construct a JAR file which may be deployed to the iPlanet
-Application Server 6.0.  The build process will always determine if
-the EJB stubs/skeletons and the EJB-JAR file are up to date, and it will
-do the minimum amount of work required.
-<p>Like the WebLogic element, a naming convention for the EJB descriptors
-is most commonly used to specify the name for the completed JAR file. 
-For example, if the EJB descriptor ejb/Account-ejb-jar.xml is found in
-the descriptor directory, the iplanet element will search for an iAS-specific
-EJB descriptor file named ejb/Account-ias-ejb-jar.xml (if it isn't found,
-the task will fail) and a JAR file named ejb/Account.jar will be written
-in the destination directory.  Note that when the EJB descriptors
-are added to the JAR file, they are automatically renamed META-INF/ejb-jar.xml
-and META-INF/ias-ejb-jar.xml.
-<p>Of course, this naming behavior can be modified by specifying attributes
-in the ejbjar task (for example, basejarname, basenameterminator, and flatdestdir)
-as well as the iplanet element (for example, suffix).  Refer to the
-appropriate documentation for more details.
-<h3>
-Parameters:</h3>
-
-<table BORDER CELLSPACING=0 CELLPADDING=2 >
-<tr>
-<td VALIGN=TOP><b>Attribute</b></td>
-
-<td VALIGN=TOP><b>Description</b></td>
-
-<td ALIGN=CENTER VALIGN=TOP><b>Required</b></td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>destdir</td>
-
-<td VALIGN=TOP>The base directory into which the generated JAR files will
-be written. Each JAR file is written in directories which correspond to
-their location within the "descriptordir" namespace.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>Yes</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>classpath</td>
-
-<td VALIGN=TOP>The classpath used when generating EJB stubs and skeletons. 
-If omitted, the classpath specified in the "ejbjar" parent task will be
-used.  If specified, the classpath elements will be prepended to the
-classpath specified in the parent "ejbjar" task. Note that nested "classpath"
-elements may also be used.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>keepgenerated</td>
-
-<td VALIGN=TOP>Indicates whether or not the Java source files which are
-generated by ejbc will be saved or automatically deleted. If "yes", the
-source files will be retained.  If omitted, it defaults to "no". </td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>debug</td>
-
-<td>Indicates whether or not the ejbc utility should log additional debugging
-statements to the standard output. If "yes", the additional debugging statements
-will be generated.  If omitted, it defaults to "no". </td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>iashome</td>
-
-<td>May be used to specify the "home" directory for this iAS installation.
-This is used to find the ejbc utility if it isn't included in the user's
-system path.  If specified, it should refer to the [install-location]/iplanet/ias6/ias
-directory.  If omitted, the ejbc utility must be on the user's system
-path. </td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>suffix</td>
-
-<td>String value appended to the JAR filename when creating each JAR. 
-If omitted, it defaults to ".jar". </td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-</table>
-
-<p>As noted above, the iplanet element supports additional &lt;classpath>
-nested elements.
-<h3>
-Examples</h3>
-This example demonstrates the typical use of the &lt;iplanet> nested element. 
-It will name each EJB-JAR using the "basename" prepended to each standard
-EJB descriptor.  For example, if the descriptor named "Account-ejb-jar.xml"
-is processed, the EJB-JAR will be named "Account.jar"
-<pre>    &lt;ejbjar srcdir="${build.classesdir}"
-            descriptordir="${src}" >
-            &lt;iplanet destdir="${assemble.ejbjar}"
-                     classpath="${ias.ejbc.cpath}" />
-            &lt;include name="**/*-ejb-jar.xml"/>
-            &lt;exclude name="**/*ias-*.xml"/>
-    &lt;/ejbjar></pre>
-This example demonstrates the use of a nested classpath element as well
-as some of the other optional attributes.
-<pre>    &lt;ejbjar srcdir="${build.classesdir}"
-            descriptordir="${src}" >
-            &lt;iplanet destdir="${assemble.ejbjar}"
-                     iashome="${ias.home}"
-                     debug="yes" 
-                     keepgenerated="yes" >
-                     &lt;classpath>
-                         &lt;pathelement path="." />
-                         &lt;pathelement path="${build.classpath}" />
-                     &lt;/classpath>
-            &lt;/iplanet>
-            &lt;include name="**/*-ejb-jar.xml"/>
-            &lt;exclude name="**/*ias-*.xml"/>
-    &lt;/ejbjar></pre>
-This example demonstrates the use of basejarname attribute.  In this
-case, the completed EJB-JAR will be named "HelloWorld.jar"  If multiple
-EJB descriptors might be found, care must be taken to ensure that the completed
-JAR files don't overwrite each other.
-<pre>    &lt;ejbjar srcdir="${build.classesdir}"
-            descriptordir="${src}"
-            basejarname="HelloWorld" >
-            &lt;iplanet destdir="${assemble.ejbjar}"
-                     classpath="${ias.ejbc.cpath}"/>
-            &lt;include name="**/*-ejb-jar.xml"/>
-            &lt;exclude name="**/*ias-*.xml"/>
-    &lt;/ejbjar></pre>
-This example demonstrates the use of the dtd nested element. If the local 
-copies of the DTDs are included in the classpath, they will be automatically 
-referenced without the nested elements.  In iAS 6.0 SP2, these local DTDs are 
-found in the [iAS-install-directory]/APPS directory.  In iAS 6.0 SP3, these 
-local DTDs are found in the [iAS-install-directory]/dtd directory. 
-<pre>    &lt;ejbjar srcdir="${build.classesdir}"
-            descriptordir="${src}"> 
-            &lt;iplanet destdir="${assemble.ejbjar}">
-                     classpath="${ias.ejbc.cpath}" />
-            &lt;include name="**/*-ejb-jar.xml"/>
-            &lt;exclude name="**/*ias-*.xml"/>
-            &lt;dtd publicId="-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN"
-                 location="${ias.home}/APPS/ejb-jar_1_1.dtd"/>
-            &lt;dtd publicId="-//Sun Microsystems, Inc.//DTD iAS Enterprise JavaBeans 1.0//EN"
-                 location="${ias.home}/APPS/IASEjb_jar_1_0.dtd"/>
-    &lt;/ejbjar></pre>
-
-</body>
-
-</html>
-
-
diff --git a/docs/manual/OptionalTasks/ftp.html b/docs/manual/OptionalTasks/ftp.html
deleted file mode 100644
index 3108ab8..0000000
--- a/docs/manual/OptionalTasks/ftp.html
+++ /dev/null
@@ -1,252 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="ftp">FTP</a></h2>
-<h3>Description</h3>
-<p><b>Note:</b> The ftp-task uses the NetComponents-Package which you will need to download from
-<a href="http://www.savarese.org" target="_top">http://www.savarese.org</a> and add to your classpath.</p>
-<p>The ftp task implements a basic FTP client that can send, receive,
-list, delete files, and create directories.  See below for descriptions and examples of how
-to perform each task.</p>
-<p>The ftp task makes no attempt to determine what file system syntax is
-required by the remote server, and defaults to Unix standards.
-<i>remotedir</i> must be specified in the exact syntax required by the ftp
-server. If the usual Unix conventions are not supported by the server,
-<i>separator</i> can be used to set the file separator that should be used
-instead.</p>
-<p>See the section on <a href="../dirtasks.html#directorybasedtasks">directory based
-tasks</a>, on how the inclusion/exclusion of files works, and how to
-write patterns.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">server</td>
-    <td valign="top">the address of the remote ftp server.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">port</td>
-    <td valign="top">the port number of the remote ftp server.
-                     Defaults to port 21.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">userid</td>
-    <td valign="top">the login id to use on the ftp server.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">password</td>
-    <td valign="top">the login password to use on the ftp server.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">remotedir</td>
-    <td valign="top">the directory to which to upload files on the 
-                     ftp server.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">action</td>
-    <td valign="top">the ftp action to perform, defaulting to &quot;send&quot;.  
-                     Currently supports &quot;put&quot;, &quot;get&quot;,
-                     &quot;del&quot;, &quot;list&quot; and &quot;mkdir&quot;.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">binary</td>
-    <td valign="top">selects binary-mode (&quot;yes&quot;) or text-mode 
-                     (&quot;no&quot;) transfers.  
-                     Defaults to &quot;yes&quot;</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">passive</td>
-    <td valign="top">selects passive-mode (&quot;yes&quot;) transfers.  
-                     Defaults to &quot;no&quot;</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">verbose</td>
-    <td valign="top">displays information on each file transferred if set 
-                     to &quot;yes&quot;. Defaults to &quot;no&quot;.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">depends</td>
-    <td valign="top">transfers only new or changed files if set to 
-                     &quot;yes&quot;. Defaults to &quot;no&quot;.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">newer</td>
-    <td valign="top">a synonym for <i>depends</i>.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">separator</td>
-    <td valign="top">sets the file separator used on the ftp server.
-                     Defaults to &quot;/&quot;.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">listing</td>
-    <td valign="top">the file to write results of the &quot;list&quot; action.
-                     Required for the &quot;list&quot; action, ignored otherwise.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">ignoreNoncriticalErrors</td>
-    <td valign="top">flag which permits the task to ignore some non-fatal error
-      codes sent by some servers during directory creation: wu-ftp in particular.
-      Default: false</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">skipFailedTransfers</td>
-    <td valign="top">flag which enables unsuccessful file put, delete
-    and get operations to be skipped with a warning and the
-    remainder of the files still transferred. Default: false</td>
-    <td valign="top" align="center">No</td>
-  </tr>  
-</table>
-<h3>Sending Files</h3>
-<p>The easiest way to describe how to send files is with a couple of examples:</p>
-<pre>
-  &lt;ftp server=&quot;ftp.apache.org&quot;
-       userid=&quot;anonymous&quot;
-       password=&quot;me@myorg.com&quot;&gt;
-    &lt;fileset dir=&quot;htdocs/manual&quot;/&gt;
-  &lt;/ftp&gt;
-</pre>
-<p>Logs in to <code>ftp.apache.org</code> as <code>anonymous</code> and 
-uploads all files in the <code>htdocs/manual</code> directory 
-to the default directory for that user.</p>
-<pre>  &lt;ftp server=&quot;ftp.apache.org&quot;
-       remotedir=&quot;incoming&quot;
-       userid=&quot;anonymous&quot;
-       password=&quot;me@myorg.com&quot;
-       depends=&quot;yes&quot;
-  &gt;
-    &lt;fileset dir=&quot;htdocs/manual&quot;/&gt;
-  &lt;/ftp&gt;</pre>
-<p>Logs in to <code>ftp.apache.org</code> as <code>anonymous</code> and 
-uploads all new or changed files in the <code>htdocs/manual</code> directory 
-to the <code>incoming</code> directory relative to the default directory
-for <code>anonymous</code>.</p>
-<pre>  &lt;ftp server=&quot;ftp.apache.org&quot;
-       port=&quot;2121&quot;
-       remotedir=&quot;/pub/incoming&quot;
-       userid=&quot;coder&quot;
-       password=&quot;java1&quot;
-       depends=&quot;yes&quot;
-       binary=&quot;no&quot;
-  &gt;
-    &lt;fileset dir=&quot;htdocs/manual&quot;&gt;
-      &lt;include name=&quot;**/*.html&quot;/&gt;
-    &lt;/fileset&gt;
-  &lt;/ftp&gt;</pre>
-<p>Logs in to <code>ftp.apache.org</code> at port <code>2121</code> as 
-<code>coder</code> with password <code>java1</code> and uploads all new or 
-changed HTML files in the <code>htdocs/manual</code> directory to the 
-<code>/pub/incoming</code> directory. The files are transferred in text mode. Passive mode has been switched on to send files from behind a firewall.</p>
-<pre>  &lt;ftp server=&quot;ftp.nt.org&quot;
-       remotedir=&quot;c:\uploads&quot;
-       userid=&quot;coder&quot;
-       password=&quot;java1&quot;
-       separator=&quot;\&quot;
-       verbose=&quot;yes&quot;</pre>
-<PRE>
-  &gt;
-    &lt;fileset dir=&quot;htdocs/manual&quot;&gt;
-      &lt;include name=&quot;**/*.html&quot;/&gt;
-    &lt;/fileset&gt;
-  &lt;/ftp&gt;</PRE><p>Logs in to the Windows-based <code>ftp.nt.org</code> as 
-<code>coder</code> with password <code>java1</code> and uploads all 
-HTML files in the <code>htdocs/manual</code> directory to the 
-<code>c:\uploads</code> directory.  Progress messages are displayed as each
-file is uploaded.</p>
-<h3>Getting Files</h3>
-<p>Getting files from an FTP server works pretty much the same way as 
-sending them does.  The only difference is that the nested filesets
-use the remotedir attribute as the base directory for the files on the
-FTP server, and the dir attribute as the local directory to put the files
-into.  The file structure from the FTP site is preserved on the local machine.</p>
-<pre>
-  &lt;ftp action=&quot;get&quot;
-       server=&quot;ftp.apache.org&quot;
-       userid=&quot;anonymous&quot;
-       password=&quot;me@myorg.com&quot;&gt;
-    &lt;fileset dir=&quot;htdocs/manual&quot; &gt;
-      &lt;include name=&quot;**/*.html&quot;/&gt;
-    &lt;/fileset&gt;
-  &lt;/ftp&gt;
-</pre>
-<p>Logs in to <code>ftp.apache.org</code> as <code>anonymous</code> and 
-recursively downloads all .html files from default directory for that user 
-into the <code>htdocs/manual</code> directory on the local machine.</p>
-<h3>Deleting Files</h3>
-As you've probably guessed by now, you use nested fileset elements to 
-select the files to delete from the remote FTP server.  Again, the 
-filesets are relative to the remote directory, not a local directory.  In
-fact, the dir attribute of the fileset is ignored completely.
-<pre>
-  &lt;ftp action=&quot;del&quot;
-       server=&quot;ftp.apache.org&quot;
-       userid=&quot;anonymous&quot;
-       password=&quot;me@myorg.com&quot; &gt;
-    &lt;fileset&gt;
-      &lt;include name=&quot;**/*.tmp&quot;/&gt;
-    &lt;/fileset&gt;
-  &lt;/ftp&gt;
-</pre>
-<p>Logs in to <code>ftp.apache.org</code> as <code>anonymous</code> and
-tries to delete all *.tmp files from the default directory for that user.
-If you don't have permission to delete a file, a BuildException is thrown.</p>
-<h3>Listing Files</h3>
-<pre>
-  &lt;ftp action=&quot;list&quot;
-       server=&quot;ftp.apache.org&quot;
-       userid=&quot;anonymous&quot;
-       password=&quot;me@myorg.com&quot; 
-       listing=&quot;data/ftp.listing&quot; &gt;
-    &lt;fileset&gt;
-      &lt;include name=&quot;**&quot;/&gt;
-    &lt;/fileset&gt;
-  &lt;/ftp&gt;
-</pre>
-<p>This provides a file listing in <code>data/ftp.listing</code> of all the files on
-the FTP server relative to the default directory of the <code>anonymous</code>
-user. The listing is in whatever format the FTP server normally lists files.</p>
-
-<h3>Creating Directories</h3>
-<p>Note that with the mkdir action, the directory to create is specified using the
-remotedir attribute.</p>
-<pre>
-  &lt;ftp action=&quot;mkdir&quot;
-       server=&quot;ftp.apache.org&quot;
-       userid=&quot;anonymous&quot;
-       password=&quot;me@myorg.com&quot; 
-       remotedir=&quot;some/remote/dir&quot; /&gt;
-</pre>
-<p>This creates the directory <code>some/remote/dir</code> beneath the default root
-directory.  As with all other actions, the directory separator character must be correct
-according to the desires of the FTP server.</p>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/OptionalTasks/icontract.html b/docs/manual/OptionalTasks/icontract.html
deleted file mode 100644
index 3d54c93..0000000
--- a/docs/manual/OptionalTasks/icontract.html
+++ /dev/null
@@ -1,169 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="icontract">icontract</a></h2>
-<h3>Description</h3>
-
-<P>
-Instruments Java classes with <a href="http://www.reliable-systems.com/tools/">iContract</a>
- DBC preprocessor.<br>
- The task can generate a properties file for <a href="http://home.sol.no/~hellesoy/icplus.html">iControl</a>,
- a graphical user interface that lets you turn on/off assertions. iControl generates a control file that you can refer to
- from this task using the controlfile attribute.
- <p/>
-&nbsp;
-
-<h3>Parameters</h3>
- <table border="1" cellpadding="2" cellspacing="0">
-   <tr>
-     <td valign="top"><b>Attribute</b></td>
-     <td valign="top"><b>Description</b></td>
-     <td align="center" valign="top"><b>Required</b></td>
-   </tr>
-   <tr>
-     <td valign="top">srcdir</td>
-     <td valign="top">Location of the java files.</td>
-     <td valign="top" align="center">Yes</td>
-   </tr>
-   <tr>
-     <td valign="top">instrumentdir</td>
-     <td valign="top">Indicates where the instrumented source files should go.</td>
-     <td valign="top" align="center">Yes</td>
-   </tr>
-   <tr>
-     <td valign="top">repositorydir</td>
-     <td valign="top">Indicates where the repository source files should go.</td>
-     <td valign="top" align="center">Yes</td>
-   </tr>
-   <tr>
-     <td valign="top">builddir</td>
-     <td valign="top">Indicates where the compiled instrumented classes should go.
-       Defaults to the value of instrumentdir.
-       </p>
-       <em>NOTE:</em> Don't use the same directory for compiled instrumented classes
-       and uninstrumented classes. It will break the dependency checking. (Classes will
-       not be reinstrumented if you change them).</td>
-     <td valign="top" align="center">No</td>
-   </tr>
-   <tr>
-     <td valign="top">repositorybuilddir</td>
-     <td valign="top">Indicates where the compiled repository classes should go.
-       Defaults to the value of repositorydir.</td>
-     <td valign="top" align="center">No</td>
-   </tr>
-   <tr>
-     <td valign="top">pre</td>
-     <td valign="top">Indicates whether or not to instrument for preconditions.
-       Defaults to <code>true</code> unless controlfile is specified, in which case it
-       defaults to <code>false</code>.</td>
-     <td valign="top" align="center">No</td>
-   </tr>
-   <tr>
-     <td valign="top">post</td>
-     <td valign="top">Indicates whether or not to instrument for postconditions.
-       Defaults to <code>true</code> unless controlfile is specified, in which case it
-       defaults to <code>false</code>.</td>
-     <td valign="top" align="center">No</td>
-   </tr>
-   <tr>
-     <td valign="top">invariant</td>
-     <td valign="top">Indicates whether or not to instrument for invariants.
-       Defaults to <code>true</code> unless controlfile is specified, in which case it
-       defaults to <code>false</code>.</td>
-     <td valign="top" align="center">No</td>
-   </tr>
-   <tr>
-     <td valign="top">failthrowable</td>
-     <td valign="top">The full name of the Throwable (Exception) that should be
-       thrown when an assertion is violated. Defaults to <code>java.lang.Error</code></td>
-     <td valign="top" align="center">No</td>
-   </tr>
-   <tr>
-     <td valign="top">verbosity</td>
-     <td valign="top">Indicates the verbosity level of iContract. Any combination
-       of <code>error*,warning*,note*,info*,progress*,debug*</code> (comma separated) can be
-       used. Defaults to <code>error*</code></td>
-     <td valign="top" align="center">No</td>
-   </tr>
-   <tr>
-     <td valign="top">quiet</td>
-     <td valign="top">Indicates if iContract should be quiet. Turn it off if many your classes extend uninstrumented classes
-     and you don't want warnings about this. Defaults to <code>false</code></td>
-     <td valign="top" align="center">No</td>
-   </tr>
-   <tr>
-     <td valign="top">updateicontrol</td>
-     <td valign="top">If set to true, it indicates that the properties file for
-       iControl in the current directory should be updated (or created if it doesn't exist).
-       Defaults to <code>false</code>.</td>
-     <td valign="top" align="center">No</td>
-   </tr>
-   <tr>
-     <td valign="top">controlfile</td>
-     <td valign="top">The name of the control file to pass to iContract. Consider using iControl to generate the file.
-       Default is not to pass a file. </td>
-     <td valign="top" align="center">Only if <code>updateicontrol=true</code></td>
-   </tr>
-   <tr>
-     <td valign="top">classdir</td>
-     <td valign="top">Indicates where compiled (unistrumented) classes are located.
-       This is required in order to properly update the icontrol.properties file, not
-       for instrumentation.</td>
-     <td valign="top" align="center">Only if <code>updateicontrol=true</code></td>
-   </tr>
-   <tr>
-     <td valign="top">targets</td>
-     <td valign="top">Name of the file that will be generated by this task, which lists all the
-        classes that iContract will instrument. If specified, the file will not be deleted after execution.
-        If not specified, a file will still be created, but it will be deleted after execution.</td>
-     <td valign="top" align="center">No</td>
-   </tr>
- </table>
-
-<p>
- <b>Note:</b> iContract will use the java compiler indicated by the project's
- <code>build.compiler</code> property. See documentation of the Javac task for
- more information. Nested includes and excludes are also supported.</p>
-
- <p><b>Example:</b></p>
-
- <p/>
- <b>Note:</b> iContract will use the java compiler indicated by the project's
- <code>build.compiler</code> property. See documentation of the Javac task for
- more information.
- <p/>
- Nested includes and excludes can be done very much the same way as any subclass
- of MatchingTask.
-
- <p><b>Example:</b></p>
-
- <pre>
- &lt;icontract
-    srcdir=&quot;${build.src}&quot;
-    instrumentdir=&quot;${build.instrument}&quot;
-    repositorydir=&quot;${build.repository}&quot;
-    builddir=&quot;${build.instrclasses}&quot;
-    updateicontrol=&quot;true&quot;
-    classdir=&quot;${build.classes}&quot;
-    controlfile=&quot;control&quot;
-    targets=&quot;targets&quot;
-    verbosity=&quot;error*,warning*&quot;
-    quiet=&quot;true&quot;
- &gt;
-    &lt;classpath refid=&quot;compile-classpath&quot;/&gt;
- &lt;/icontract&gt;
-</pre>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/OptionalTasks/javacc.html b/docs/manual/OptionalTasks/javacc.html
deleted file mode 100644
index 4a04afd..0000000
--- a/docs/manual/OptionalTasks/javacc.html
+++ /dev/null
@@ -1,182 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>JavaCC Task</title>
-</head>
-
-<body>
-
-<h2><a name="javacc">JavaCC</a></h2>
-<h3>Description</h3> 
-<p>
-  Invokes the <a HREF="http://www.metamata.com/javacc/" target="_top">JavaCC</a> compiler 
-  compiler on a grammar file.
-</p>
-<p>
-  To use the javacc task, set the <i>target</i> attribute to the name of the 
-  grammar file to process.  You also need to specify the directory containing 
-  the JavaCC installation using the <i>javacchome</i> attribute, so that ant 
-  can find the JavaCC classes.  Optionally, you can also set the 
-  <i>outputdirectory</i> to write the generated file to a specific directory.
-  Otherwise javacc writes the generated files to the directory containing
-  the grammar file.
-</p>
-<p>
-  This task only invokes JavaCC if the grammar file is newer than the generated 
-  Java files.  javacc assumes that the Java class name of the generated parser
-  is the same as the name of the grammar file, ignoring the .jj.
-  If this is not the case, the javacc task will still work, but it will always 
-  generate the output files.
-</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">target</td>
-    <td valign="top">The grammar file to process.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">javacchome</td>
-    <td valign="top">The directory containing the JavaCC distribution.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">outputdirectory</td>
-    <td valign="top">
-      The directory to write the generated files to.  If not set, the files
-      are written to the directory containing the grammar file.
-    </td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">buildparser</td>
-    <td valign="top">Sets the BUILD_PARSER grammar option.  This is a boolean option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">buildtokenmanager</td>
-    <td valign="top">Sets the BUILD_TOKEN_MANAGER grammar option.  This is a boolean option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">cachetokens</td>
-    <td valign="top">Sets the CACHE_TOKENS grammar option.  This is a boolean option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">choiceambiguitycheck</td>
-    <td valign="top">Sets the CHOICE_AMBIGUITY_CHECK grammar option.  This is an integer option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">commontokenaction</td>
-    <td valign="top">Sets the COMMON_TOKEN_ACTION grammar option.  This is a boolean option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">debuglookahead</td>
-    <td valign="top">Sets the DEBUG_LOOKAHEAD grammar option.  This is a boolean option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">debugparser</td>
-    <td valign="top">Sets the DEBUG_PARSER grammar option.  This is a boolean option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">debugtokenmanager</td>
-    <td valign="top">Sets the DEBUG_TOKEN_MANAGER grammar option.  This is a boolean option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">errorreporting</td>
-    <td valign="top">Sets the ERROR_REPORTING grammar option.  This is a boolean option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">forcelacheck</td>
-    <td valign="top">Sets the FORCE_LA_CHECK grammar option.  This is a boolean option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">ignorecase</td>
-    <td valign="top">Sets the IGNORE_CASE grammar option.  This is a boolean option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">javaunicodeescape</td>
-    <td valign="top">Sets the JAVA_UNICODE_ESCAPE grammar option.  This is a boolean option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">lookahead</td>
-    <td valign="top">Sets the LOOKAHEAD grammar option.  This is an integer option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">optimizetokenmanager</td>
-    <td valign="top">Sets the OPTIMIZE_TOKEN_MANAGER grammar option.  This is a boolean option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">otherambiguitycheck</td>
-    <td valign="top">Sets the OTHER_AMBIGUITY_CHECK grammar option.  This is an integer option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">sanitycheck</td>
-    <td valign="top">Sets the SANITY_CHECK grammar option.  This is a boolean option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">static</td>
-    <td valign="top">Sets the STATIC grammar option.  This is a boolean option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">unicodeinput</td>
-    <td valign="top">Sets the UNICODE_INPUT grammar option.  This is a boolean option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">usercharstream</td>
-    <td valign="top">Sets the USER_CHAR_STREAM grammar option.  This is a boolean option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">usertokenmanager</td>
-    <td valign="top">Sets the USER_TOKEN_MANAGER grammar option.  This is a boolean option.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Example</h3>
-<blockquote><pre>
-&lt;javacc 
-    target=&quot;src/Parser.jj&quot; 
-    outputdirectory=&quot;build/src&quot;
-    javacchome=&quot;c:/program files/JavaCC&quot; 
-    static=&quot;true&quot;
-/&gt;
-</pre></blockquote>
-<p>
-  This invokes JavaCC on grammar file src/Parser.jj, writing the generated
-  files to build/src.  The grammar option STATIC is set to true when
-  invoking JavaCC.
-</p>
-<hr>
-
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation.
-All rights
-Reserved.</p>
-
-</body>
-</html>
-
-
diff --git a/docs/manual/OptionalTasks/javah.html b/docs/manual/OptionalTasks/javah.html
deleted file mode 100644
index 5787fe1..0000000
--- a/docs/manual/OptionalTasks/javah.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant</title>
-</head>
-
-<body>
-
-<h2><a name="zip">Javah</a></h2>
-<h3>Description</h3>
-<p>Generates JNI headers from a Java class.</p>
-<p> When this task executes, it will generate the C header and source files that
-are needed to implement native methods. JNI operates differently depending on
-whether <a href="http://java.sun.com/j2se/1.3/docs/tooldocs/win32/javah.html">JDK1.2</a>
-(or later) or <a href="http://java.sun.com/products/jdk/1.1/docs/tooldocs/win32/javah.html">pre-JDK1.2</a>
-systems are used.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td valign="top" align="center"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">class</td>
-    <td valign="top">the fully-qualified name of the class (or classes,
-      separated by commas)</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">outputFile</td>
-    <td valign="top">concatenates the resulting header or source files for all the classes listed into this file</td>
-    <td align="center" valign="middle" rowspan="2">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">destdir</td>
-    <td valign="top">sets the directory where javah saves the header files or the
-      stub files.</td>
-  </tr>
-  <tr>
-    <td valign="top">force</td>
-    <td valign="top">specifies that output files should always be written (JDK1.2 only)</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">old</td>
-    <td valign="top">specifies that old JDK1.0-style header files should be generated
-      (otherwise output file contain JNI-style native method      function prototypes) (JDK1.2 only)</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">stubs</td>
-    <td valign="top">generate C declarations from the Java object file (used with old)</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">verbose</td>
-    <td valign="top">causes Javah to print a message concerning the status     of the generated files</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">classpath</td>
-    <td valign="top">the classpath to use.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">bootclasspath</td>
-    <td valign="top">location of bootstrap class files.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">extdirs</td>
-    <td valign="top"> location of installed extensions.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<p>Either outputFile or destdir must be supplied, but not both.&nbsp;</p>
-<h3>Examples</h3>
-<pre>  &lt;javah destdir=&quot;c&quot; class=&quot;org.foo.bar.Wibble&quot; /&gt;</pre>
-<p>makes a JNI header of the named class, using the JDK1.2 JNI model. Assuming
-the directory 'c' already exists, the file <tt>org_foo_bar_Wibble.h</tt>
-is created there. If this file already exists, it is left unchanged.</p>
-<pre>  &lt;javah outputFile=&quot;wibble.h&quot;&gt;
-    &lt;class name=&quot;org.foo.bar.Wibble,org.foo.bar.Bobble&quot;/&gt;
-  &lt;/javah&gt;</pre>
-<p>is similar to the previous example, except the output is written to a file
-called <tt>wibble.h</tt>
-in the current directory.</p>
-<pre>  &lt;javah destdir=&quot;c&quot; force=&quot;yes&quot;&gt;
-    &lt;class name=&quot;org.foo.bar.Wibble&quot;/&gt;
-    &lt;class name=&quot;org.foo.bar.Bobble&quot;/&gt;
-    &lt;class name=&quot;org.foo.bar.Tribble&quot;/&gt;
-  &lt;/javah&gt;</pre>
-<p>writes three header files, one for each of the classes named. Because the
-force option is set, these header files are always written when the Javah task
-is invoked, even if they already exist.</p>
-<pre>  &lt;javah destdir=&quot;c&quot; verbose=&quot;yes&quot; old=&quot;yes&quot; force=&quot;yes&quot;&gt;
-    &lt;class name=&quot;org.foo.bar.Wibble&quot;/&gt;
-    &lt;class name=&quot;org.foo.bar.Bobble&quot;/&gt;
-    &lt;class name=&quot;org.foo.bar.Tribble&quot;/&gt;
-  &lt;/javah&gt;
-  &lt;javah destdir=&quot;c&quot; verbose=&quot;yes&quot; stubs=&quot;yes&quot; old=&quot;yes&quot; force=&quot;yes&quot;&gt;
-    &lt;class name=&quot;org.foo.bar.Wibble&quot;/&gt;
-    &lt;class name=&quot;org.foo.bar.Bobble&quot;/&gt;
-    &lt;class name=&quot;org.foo.bar.Tribble&quot;/&gt;
-  &lt;/javah&gt;</pre>
-<p>writes the headers for the three classes using the 'old' JNI format, then
-writes the corresponding .c stubs. The verbose option will cause Javah to
-describe its progress.</p>
-
-<hr>
-
-</body>
-
-</html>
-
diff --git a/docs/manual/OptionalTasks/jdepend.html b/docs/manual/OptionalTasks/jdepend.html
deleted file mode 100644
index 55a3a35..0000000
--- a/docs/manual/OptionalTasks/jdepend.html
+++ /dev/null
@@ -1,150 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta http-equiv="Content-Language" content="en-us">
-   <title>JDepend Task</title>
-</head>
-<body>
-
-<h2>
-<a NAME="JDepend"></a>JDepend</h2>
-
-<h3>
-Description</h3>
-
-<P>Invokes the <a href="http://www.clarkware.com/software/JDepend.html">JDepend</a> parser.
-</P>
-
-<P>
-This parser "traverses a set of Java source file directories and generates design quality metrics for each Java package".
-It allows to "automatically measure the quality of a design in terms of its extensibility, reusability, and maintainability to effectively manage and control package dependencies."
-</P>
-
-<p>Source file directories are defined by nested <code>&lt;sourcespath&gt;</code>, see <a href="#nested">nested
-elements</a>.<BR>
-Optionally, you can also set the <code>outputfile</code> name where the output is stored. By default the task writes its report to the standard output.
-</P>
-
-<p> The task requires at least the JDepend 1.2 version. </p>	
-
-<P>Note: whereas the JDepend tool can be customized to exclude some packages, the current jdepend And Task does not have parameters to allow these exclusions. Read JDepend specific documentation for that purpose.</P>
-
-<p>
-
-<h3>
-Parameters</h3>
-
-<table BORDER CELLSPACING=0 CELLPADDING=2 >
-<tr>
-<td VALIGN=TOP><b>Attribute</b></td>
-
-<td VALIGN=TOP><b>Description</b></td>
-
-<td ALIGN=CENTER VALIGN=TOP><b>Required</b></td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>outputfile</td>
-
-<td VALIGN=TOP>The output file name. If not set, the output is printed on the standard output.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>fork</td>
-
-<td VALIGN=TOP>Run the tests in a separate VM.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No, default is "off"</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>haltonerror</td>
-
-<td VALIGN=TOP>Stop the build process if an error occurs during the jdepend analysis.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No, default is "off"</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>timeout</td>
-
-<td VALIGN=TOP>Cancel the operation if it doesn't finish in the given time (measured in milliseconds). (Ignored if fork is disabled.)</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>jvm</td>
-
-<td VALIGN=TOP>The command used to invoke the Java Virtual Machine, default is 'java'. The command is resolved by java.lang.Runtime.exec(). (Ignored if fork is disabled.)</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No, default "java"</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>dir</td>
-
-<td VALIGN=TOP>The directory to invoke the VM in. (Ignored if fork is disabled)</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>classpathref</td>
-
-<td VALIGN=TOP>the classpath to use, given as reference to a PATH defined elsewhere.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-</table>
-
-
-<h3><a name="nested">Nested Elements</a></h3>
-
-
-<p><code>jdepend</code> supports two nested elements <code>&lt;classpath&gt;</code> and <code>&lt;sourcespath&gt;</code>, that represent <a href="../using.html#path">PATH like
-structures</a>. 
-
-<BR><code>&lt;sourcespath&gt;</code> is used to define the paths of the source code to analyze.</BR>
-</p> 
-
-<h3>
-Examples</h3>
-
-<blockquote>
-<pre>
-&lt;jdepend classpathref="base.path">
-&nbsp;&nbsp;&nbsp; &lt;sourcespath>
-&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement location="src" />
-&nbsp;&nbsp;&nbsp; &lt;/sourcespath>
-&lt;/jdepend>
-</pre>
-</blockquote>
-
-This invokes JDepend on the <code>src</code> directory, writing the output on the standard output.
-The classpath is defined using a classpath reference.
-<blockquote>
-<pre>
-&lt;jdepend outputfile="docs/jdepend.txt" fork="yes">
-&nbsp;&nbsp;&nbsp; &lt;sourcespath>
-&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement location="src" />
-&nbsp;&nbsp;&nbsp; &lt;/sourcespath>
-&nbsp;&nbsp;&nbsp; &lt;classpath>
-&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement location="classes" />
-&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;pathelement location="lib/jdepend.jar" />
-&nbsp;&nbsp;&nbsp; &lt;/classpath>
-&lt;/jdepend>
-</pre>
-</blockquote>  
-
-This invokes JDepend in a separate VM on the <code>src</code> and <code>testsrc</code> directories, writing the output in the <code>&lt;docs/jdepend.txt&gt;</code> file.
-The classpath is defined using nested elements. 
-<br>
-<hr>
-</body>
-</html>
-
diff --git a/docs/manual/OptionalTasks/jjtree.html b/docs/manual/OptionalTasks/jjtree.html
deleted file mode 100644
index 4e76e9c..0000000
--- a/docs/manual/OptionalTasks/jjtree.html
+++ /dev/null
@@ -1,178 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta http-equiv="Content-Language" content="en-us">
-   <title>JJTree Task</title>
-</head>
-<body>
-
-<h2>
-<a NAME="jjtree"></a>JJTree</h2>
-
-<h3>
-Description</h3>
-Invokes the <a href="http://www.metamata.com/javacc/">JJTree</a> preprocessor
-for the JavaCC compiler compiler. It inserts parse tree building actions
-at various places in the JavaCC source that it generates. The output of
-JJTree is run through JavaCC to create the parser.
-<p>To use the jjtree task, set the <i>target</i> attribute to the name
-of the jjtree grammar file to process. You also need to specify the directory
-containing the JavaCC installation using the <i>javacchome</i> attribute,
-so that ant can find the JavaCC classes. Optionally, you can also set the
-<i>outputdirectory</i>
-to write the generated file to a specific directory. Otherwise jjtree writes
-the generated JavaCC grammar file to the directory containing the JJTree
-grammar file.
-<p>This task only invokes JJTree if the grammar file is newer than the
-generated JavaCC file.
-<h3>
-Parameters</h3>
-
-<table BORDER CELLSPACING=0 CELLPADDING=2 >
-<tr>
-<td VALIGN=TOP><b>Attribute</b></td>
-
-<td VALIGN=TOP><b>Description</b></td>
-
-<td ALIGN=CENTER VALIGN=TOP><b>Required</b></td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>target</td>
-
-<td VALIGN=TOP>The jjtree grammar file to process.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>Yes</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>javacchome</td>
-
-<td VALIGN=TOP>The directory containing the JavaCC distribution.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>Yes</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>outputdirectory</td>
-
-<td VALIGN=TOP>The directory to write the generated file to. If not set,
-the files are written to the directory containing the grammar file.&nbsp;</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>buildnodefiles</td>
-
-<td VALIGN=TOP>Sets the BUILD_NODE_FILES grammar option. This is a boolean
-option.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>multi</td>
-
-<td VALIGN=TOP>Sets the MULTI grammar option. This is a boolean option.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>nodedefaultvoid</td>
-
-<td VALIGN=TOP>Sets the NODE_DEFAULT_VOID grammar option. This is a boolean
-option.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>nodefactory</td>
-
-<td VALIGN=TOP>Sets the NODE_FACTORY grammar option. This is boolean option.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>nodescopehook</td>
-
-<td VALIGN=TOP>Sets the NODE_SCOPE_HOOK grammar option. This is a boolean
-option.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>nodeusesparser</td>
-
-<td VALIGN=TOP>Sets the NODE_USES_PARSER grammar option. This is a boolean
-option.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>static</td>
-
-<td VALIGN=TOP>Sets the STATIC grammar option. This is a boolean option.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>visitor</td>
-
-<td VALIGN=TOP>Sets the VISITOR grammar option. This is a boolean option.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>nodepackage</td>
-
-<td VALIGN=TOP>Sets the NODE_PACKAGE grammar option. This is a string option.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>visitorexception</td>
-
-<td VALIGN=TOP>Sets the VISITOR_EXCEPTION grammar option. This is a string
-option.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP>nodeprefix</td>
-
-<td VALIGN=TOP>Sets the NODE_PREFIX grammar option. This is a string option.</td>
-
-<td ALIGN=CENTER VALIGN=TOP>No</td>
-</tr>
-</table>
-
-<h3>
-Example</h3>
-
-<blockquote>
-<pre>&lt;jjtree&nbsp;
-&nbsp;&nbsp;&nbsp; target="src/Parser.jjt"&nbsp;
-&nbsp;&nbsp;&nbsp; outputdirectory="build/src"
-&nbsp;&nbsp;&nbsp; javacchome="c:/program files/JavaCC"&nbsp;
-&nbsp;&nbsp;&nbsp; nodeusesparser="true"
-/></pre>
-</blockquote>
-This invokes JJTree on grammar file src/Parser.jjt, writing the generated
-grammar file, Parser.jj, file to build/src. The grammar option NODE_USES_PARSER
-is set to true when invoking JJTree.
-<br>
-<hr>
-</body>
-</html>
-
diff --git a/docs/manual/OptionalTasks/jlink.html b/docs/manual/OptionalTasks/jlink.html
deleted file mode 100644
index ce26a07..0000000
--- a/docs/manual/OptionalTasks/jlink.html
+++ /dev/null
@@ -1,138 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-
-<h2><a name="jlink">Jlink</a></h2>
-<h3><b>Description:</b></h3>
-<p>Links entries from sub-builds and libraries.</p>
-
-<p>The jlink task can be used to build jar and zip files, similar to 
-the <i>jar</i> task.
-However, jlink provides options for controlling the way entries from 
-input files
-are added to the output file. Specifically, capabilities for merging 
-entries from
-multiple zip or jar files is available.</p>
-
-<p>If a mergefile is specified directly (eg. at the top level of a 
-<i>mergefiles</i>
-pathelement) <i>and</i> the mergefile ends in &quot;.zip&quot; or 
-&quot;.jar&quot;,
-entries in the mergefile will be merged into the outfile. A file with 
-any other extension
-will be added to the output file, even if it is specified in the 
-mergefiles element.
-Directories specified in either the mergefiles or addfiles element 
-are added to the
-output file as you would expect: all files in subdirectories are 
-recursively added to
-the output file with appropriate prefixes in the output file 
-(without merging).
-</p>
-
-<p>
-In the case where duplicate entries and/or files are found among the 
-files to be merged or
-added, jlink merges or adds the first entry and ignores all subsequent entries.
-</p>
-
-<p>
-jlink ignores META-INF directories in mergefiles. Users should supply their
-own manifest information for the output file.
-</p>
-
-<p>It is possible to refine the set of files that are being jlinked. 
-This can be
-done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, 
-<i>excludesfile</i>,
-and <i>defaultexcludes</i> attributes on the <i>addfiles</i> and 
-<i>mergefiles</i>
-nested elements. With the <i>includes</i> or <i>includesfile</i>
-attribute you specify the files you want to have included by using patterns.
-The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
-the files you want to have excluded. This is also done with patterns. And
-finally with the <i>defaultexcludes</i> attribute, you can specify whether you
-want to use default exclusions or not. See the section on <a
-href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
-inclusion/exclusion of files works, and how to write patterns. The patterns are
-relative to the <i>base</i> directory.</p>
-
-
-
-<h3>Parameters:</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-   <tr>
-     <td valign="top"><b>Attribute</b></td>
-     <td valign="top"><b>Description</b></td>
-     <td align="center" valign="top"><b>Required</b></td>
-   </tr>
-   <tr>
-     <td valign="top">outfile</td>
-     <td valign="top">the path of the output file.</td>
-     <td valign="top" align="center">Yes</td>
-   </tr>
-   <tr>
-     <td valign="top">compress</td>
-     <td valign="top">whether or not the output should be compressed. 
-<i>true</i>,
-                      <i>yes</i>, or <i>on</i> result in compressed output.
-                      If omitted, output will be uncompressed (inflated).</td>
-     <td valign="top" align="center">No</td>
-   </tr>
-   <tr>
-     <td valign="top">mergefiles</td>
-     <td valign="top">files to be merged into the output, if possible.</td>
-     <td valign="middle" align="center" rowspan="2">At least one of 
-mergefiles or addfiles</td>
-   </tr>
-   <tr>
-     <td valign="top">addfiles</td>
-     <td valign="top">files to be added to the output.</td>
-   </tr>
-</table>
-
-<h3>Examples</h3>
-
-The following will merge the entries in mergefoo.jar and mergebar.jar 
-into out.jar.
-mac.jar and pc.jar will be added as single entries to out.jar.
-<pre>
-&lt;jlink compress=&quot;false&quot; outfile=&quot;out.jar&quot;&gt;
-   &lt;mergefiles&gt;
-     &lt;pathelement path=&quot;${build.dir}/mergefoo.jar&quot;/&gt;
-     &lt;pathelement path=&quot;${build.dir}/mergebar.jar&quot;/&gt;
-   &lt;/mergefiles&gt;
-   &lt;addfiles&gt;
-     &lt;pathelement path=&quot;${build.dir}/mac.jar&quot;/&gt;
-     &lt;pathelement path=&quot;${build.dir}/pc.zip&quot;/&gt;
-   &lt;/addfiles&gt;
-&lt;/jlink&gt;
-</pre>
-
-Suppose the file foo.jar contains two entries: bar.class and 
-barnone/myClass.zip.
-Suppose the path for file foo.jar is build/tempbuild/foo.jar. The 
-following example
-will provide the entry tempbuild/foo.jar in the out.jar.
-<pre>
-&lt;jlink compress=&quot;false&quot; outfile=&quot;out.jar&quot;&gt;
-   &lt;mergefiles&gt;
-     &lt;pathelement path=&quot;build/tempbuild&quot;/&gt;
-   &lt;/mergefiles&gt;
-&lt;/jlink&gt;
-</pre>
-
-However, the next example would result in two top-level entries in out.jar,
-namely bar.class and barnone/myClass.zip
-<pre>
-&lt;jlink compress=&quot;false&quot; outfile=&quot;out.jar&quot;&gt;
-   &lt;mergefiles&gt;
-     &lt;pathelement path=&quot;build/tempbuild/foo.jar&quot;/&gt;
-   &lt;/mergefiles&gt;
-&lt;/jlink&gt;
-</pre>
-
-</body>
-
-</html>
diff --git a/docs/manual/OptionalTasks/jpcoverage.html b/docs/manual/OptionalTasks/jpcoverage.html
deleted file mode 100644
index 5b8709e..0000000
--- a/docs/manual/OptionalTasks/jpcoverage.html
+++ /dev/null
@@ -1,539 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-
-<h1><a name="jprobe">JProbe</a></h1>
-<p>by</p>
-<ul>
-    <li>Stephane Bailliez (<a href="mailto:sbailliez@imediation.com">sbailliez@imediation.com</a>)</li>
-</ul>
-<h2>Introduction</h2>
-
-<p>This task runs the tools from the JProbe suite.<br>
-For more information, visit <a href="http://www.sitraka.com">http://www.sitraka.com</a>.
-An evaluation version is available for download if you already don't own it.
-</p>
-
-<p>This task has been written using JProbe Suite Server Side 3.0.</p>
-
-<p>It is highly recommended to read the JProbe documentation to understand
-the values of the command line arguments described below. This
-document is less complete than the manual, it only gives the basic information
-and is not intended as a replacement to the manual.
-</p>
-
-<h2>Tasks</h2>
-<ul>
-<table border="0" cellspacing="0" cellpadding="3">
-    <tr>
-        <td><a href="#jpcoverage">JPCoverage</a></td>
-        <td>Measure coverage of Java code.</td>
-    </tr>
-    <tr>
-        <td><a href="#jpcovmerge">JPCovMerge</a></td>
-        <td>Merge different snapshots into one.</td>
-    </tr>
-    <tr>
-        <td><a href="#jpcovreport">JPCovReport</a></td>
-        <td>Create a report from a snapshot</td>
-    </tr>
-</table>
-</ul>
-
-<hr>
-
-<h2><a name="jpcoverage">JPCoverage</a></h2>
-Perform code covering functions by comparing source code line execution to the programÂ’s source code as a whole.
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-<tr>
-  <td width="12%" valign="top"><b>Attribute</b></td>
-  <td width="78%" valign="top"><b>Description</b></td>
-  <td width="10%" valign="top"><b>Required</b></td>
-</tr>
-  <tr>
-    <td valign="top">home</td> 
-    <td valign="top">The directory where is intalled JProbe.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">vm</td> 
-    <td valign="top">
-	Indicates which virtual machine to run.
-	Must be one of "jdk117", "jdk118" or "java2".If "java2" is specified, the user is
-	also required to specify a path via <tt>javahome</tt>, otherwise it will check if
-	the current executing VM is 1.2+ and use its java.home property to determine its
-	location.
-	in the registry for the default 1.2.x (Java 2) VM.</td>
-    <td align="center" valign="top">No, default to embedded VM if 1.2+</td>
-  </tr>
-  <tr>
-    <td valign="top">javahome</td> 
-    <td valign="top">For Java 2 only, specifies the path of the jdk1.2.x virtual
-	machine to be used. This is only valid when specifying the <tt>vm="java2"</tt>.</td>
-    <td align="center" valign="top">No, use only for java2</td>
-  </tr>
-  <tr>
-    <td valign="top">javaexe</td> 
-    <td valign="top">Similar to <tt>javahome</tt>, except this is the path to
-	the java executable.</td>
-    <td align="center" valign="top">No, use only for java2</td>
-  </tr>
-  
-  <tr>
-    <td valign="top">applet</td> 
-    <td valign="top">Run an applet. The default is false, unless the file under
-	analysis ends with htm or html.</td>
-    <td align="center" valign="top">No, default is "false".</td>
-  </tr>
-  <tr>
-    <td valign="top">seedname</td>
-    <td valign="top">Seed name for the temporary snapshot files (files will be named
-	seed.jpc, seed1.jpc, seed2.jpc, ...)</td>
-    <td align="center" valign="top">No, default to &quot;snapshot&quot;</td>
-  </tr>
-  
-  <tr>
-    <td valign="top">exitprompt</td> 
-    <td valign="top">Toggles display of the console prompt: "Press Enter to close
-	this window." &quot;always&quot;: Always displays the prompt. &quot;never&quot;: Never displays the
-	prompt. &quot;error&quot;: Only displays prompt after an error.</td>
-    <td align="center" valign="top">No, default is "never"</td>
-  </tr>
-  
-  <tr>
-    <td valign="top">finalsnapshot</td> 
-    <td valign="top">Type of snapshot to send at program termination. Must be one
-	of &quot;none&quot;,&quot;coverage&quot;,&quot;all&quot;</td> 
-    <td align="center" valign="top">No, default to &quot;coverage&quot;</td>
-  </tr>
-  <tr>
-    <td valign="top">recordfromstart</td>
-    <td valign="top">Must be one of "coverage", "all", "none". If you want
-	Coverage to start analyzing as soon as the program begins to run, use "all".
-	If not, select "none".</td>
-    <td align="center" valign="top">No, default to "coverage"</td>
-  </tr>
-  <tr>
-    <td valign="top">warnlevel</td>
-    <td valign="top">Set warning level (0-3, where 0 is the least amount of warnings).</td>
-    <td align="center" valign="top">No, default to 0</td>
-  </tr>
-  <tr>
-    <td valign="top">snapshotdir</td>
-    <td valign="top">The path to the directory where snapshot files are stored.
-	Choose a directory that is reachable by both the remote and local computers,
-	and enter the same path on the command line and in the viewer.</td>
-    <td align="center" valign="top">No, default to current directory</td>
-  </tr>
-  <tr>
-    <td valign="top">workingdir</td>
-    <td valign="top">The physical path to the working directory for the VM.</td>
-    <td align="center" valign="top">No, default is current directory.</td>
-  </tr> 
-  <tr>
-    <td valign="top">tracknatives</td>
-    <td valign="top">Test native methods. Note that testing native methods with
-	Java 2 disables the JIT</td>
-    <td align="center" valign="top">No, default to &quot;false&quot;.</td>
-  </tr> 
-  <tr>
-    <td valign="top">classname</td>
-    <td valign="top">the name of the class to analyze.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-</table>
-
-<h3><a name="nested">Nested Elements</a></h3>
-
-<h4>classpath</h4>
-<p><code>jpcoverage</code> supports a nested <code>&lt;classpath&gt;</code>
-element, that represents a <a href="index.html#path">PATH like
-structure</a>.</p>
-
-<h4>jvmarg</h4>
-
-<p>Additional parameters may be passed to the VM via nested <code>&lt;jvmarg&gt;</code>
-attributes, for example:</p>
-
-<pre></pre>
-<blockquote>
-<pre>&lt;jpcoverage home=&quot;c:\jprobe&quot; classname=&quot;MyClass&quot;&gt;
-  &lt;jvmarg value=&quot;-classic&quot;/&gt;
-  &lt;classpath path=&quot;.&quot;/&gt;
-&lt;/jpcoverage&gt;
-</pre>
-</blockquote>
-would run the coverage on &quot;MyClass&quot; in classic mode VM.
-
-<p><code>&lt;jvmarg&gt;</code> allows all attributes described in <a
-href="index.html#arg">Command line arguments</a>.</p>
-
-<h4>arg</h4>
-
-<p>
-Parameters may be passed to the executed class via nested <tt>&lt;arg&gt;</tt>
-attributes, as described in <a href="index.html#arg">Command line arguments</a>.
-</p>
-
-<h4>socket</h4>
-<p>Define a host and port to connect to if you want to do remote viewing. 
-</p>
-<table border="1" cellpadding="2" cellspacing="0">
-<tr>
-  <td width="12%" valign="top"><b>Attribute</b></td>
-  <td width="78%" valign="top"><b>Description</b></td>
-  <td width="10%" valign="top"><b>Required</b></td>
-</tr>
-  <tr>
-    <td valign="top">host</td> 
-    <td valign="top">the host name/ip of the machine on which the Viewer is running</td>
-    <td align="center">No, default to localhost</td>
-  </tr>
-  <tr>
-    <td valign="top">port</td> 
-    <td valign="top">The port number on which you will connect to the Viewer</td>
-    <td align="center">No, default to 4444</td>
-  </tr>  
-</table>
-
-
-
-<h4>filters</h4>
-
-<p>Defines class/method filters based on pattern matching.
-The syntax is filters is similar to a <a href="index.html#fileset">fileset</a>.
-</p>
-
-<table border="1" cellpadding="2" cellspacing="0">
-<tr>
-  <td width="12%" valign="top"><b>Attribute</b></td>
-  <td width="78%" valign="top"><b>Description</b></td>
-  <td width="10%" valign="top"><b>Required</b></td>
-</tr>
-  <tr>
-    <td valign="top">defaultexclude</td> 
-    <td valign="top">As a default, the coverage exclude all classes and methods.
-     Default filters are equivalent to
-<pre>
-  &lt;filters&gt;
-    &lt;exclude class=&quot;*&quot; method=&quot;*&quot;/&gt;
-  &lt;/filters&gt;
-</pre>	
-	</td>
-    <td align="center">No, default to "true"</td>
-  </tr>
-</table>
-<p>
-As seen above, nested elements are <b><tt>include</tt></b> and <b><tt>exclude</tt></b>
-with a <tt>name</tt> attribute.
-</p>
-<blockquote>
-<table border="1" cellpadding="2" cellspacing="0">
-<tr>
-  <td width="12%" valign="top"><b>Attribute</b></td>
-  <td width="78%" valign="top"><b>Description</b></td>
-  <td width="10%" valign="top"><b>Required</b></td>
-</tr>
-  <tr>
-    <td valign="top">class</td> 
-    <td valign="top">The class mask as a simple regular expression</td>
-    <td align="center">No, default to *</td>
-  </tr>
-  <tr>
-    <td valign="top">method</td> 
-    <td valign="top">The method mask as a simple regular expression</td>
-    <td align="center">No, default to *</td>
-  </tr>
-</table>
-</blockquote>
-
-<h3>Example of filters</h3>
-<blockquote>
-  <pre>&lt;filters&gt;
-    &lt;include class=&quot;com.mycompany.*&quot; method=&quot;*&quot;/&gt;
-    &lt;exclude class=&quot;com.mycompany.MyClass&quot; method=&quot;test*&quot;/&gt;
-&lt;/filters&gt;</pre>
-</blockquote>
-
-reports the coverage on all packages, classes and methods from <tt>com.mycompany</tt>
-except all methods starting by <tt>test</tt> on the class <tt>MyClass</tt>
-in the package <tt>com.mycompany</tt>
-
-<h4>triggers</h4>
-
-<p>Define a number of events to use for interacting with the collection
-of data performed during coverage. For example you may run a whole application
-but only decide to collect data once it reaches a certain method and once it
-exits another one.</p>
-<p>
-The only type of nested element is the <tt>method</tt> element (triggers are performed
-on method) and it has the following attributes:
-</p>
-<table border="1" cellpadding="2" cellspacing="0">
-<tr>
-  <td width="12%" valign="top"><b>Attribute</b></td>
-  <td width="78%" valign="top"><b>Description</b></td>
-  <td width="10%" valign="top"><b>Required</b></td>
-</tr>
-  <tr>
-    <td valign="top">name</td> 
-    <td valign="top">The name of the method(s) as a regular expression. The name
-	is the fully qualified name on the form <tt>package.classname.method</tt></td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">event</td> 
-    <td valign="top">the event on the method that will trigger the action. Must be
-	&quot;enter&quot; or &quot;exit&quot;.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">action</td> 
-    <td valign="top">the action to execute. Must be one of &quot;clear&quot;,
-	&quot;pause&quot;, &quot;resume&quot;, &quot;snapshot&quot;, &quot;suspend&quot;,
-	or &quot;exit&quot;. They respectively clear recording, pause recording, 
-	resume recording, take a snapshot, suspend the recording and exit the program.
-</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-</table>
-
-<h3>Example of triggers</h3>
-<blockquote>
-<pre>&lt;triggers&gt;
-  &lt;method name=&quot;ClassName.*()&quot; event=&quot;enter&quot; action=&quot;snapshot&quot;/&gt;
-  &lt;method name=&quot;ClassName.MethodName()&quot; event=&quot;exit&quot; action=&quot;exit&quot;/&gt;  
-&lt;/triggers&gt;
-</pre>
-</blockquote>
-
-<p>Will take a snapshot when it enters any method of the class <tt>ClassName</tt>
-and will exit the program once it exits the method <tt>MethodName</tt> of the
-same class.</p>
-
-<hr>
-<h2><a name="jpcovmerge">JPCovMerge</a></h2>
-
-<h3>Description</h3>
-
-<p>Perform the merge of several snapshots into a single one.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-<tr>
-	<td width="12%" valign="top"><b>Attribute</b></td>
-	<td width="78%" valign="top"><b>Description</b></td>
-	<td width="10%" valign="top"><b>Required</b></td>
-</tr>
-<tr>
-	<td valign="top">home</td>
-    <td valign="top">The directory where is installed JProbe.</td>
-    <td align="center" valign="top">Yes</td>
-</tr>
-<tr>
-	<td valign="top">tofile</td>
-	<td valign="top">the output filename that will be the result
-	of the name.</td>
-	<td align="center" valign="top">Yes</td>
-</tr>
-<tr>
-	<td valign="top">verbose</td>
-	<td valign="top">Perform the merge in verbose mode giving
-	details about the snapshot processing.</td>
-	<td align="center" valign="top">No. Default to false</td>
-</tr>
-</table>
-
-<p>
-<tt>jpcovmerge</tt> collects snapshots using the nested <a href="index.html#fileset"><code>&lt;FileSet&gt;</code></a>
-element.
-</p>
-
-<h3>Example of merge</h3>
-<blockquote>
-<pre>&lt;jpcovreport home=&quot;c:\jprobe&quot; tofile=&quot;merge.jpc&quot; verbose=&quot;true&quot;&gt;
-  &lt;fileset dir=&quot;./snapshots&quot;&gt;
-    &lt;include name=&quot;snap*.jpc&quot;/&gt;
-  &lt;/fileset&gt;
-&lt;/jpcovreport&gt;
-</pre>
-</blockquote>
-<p>
-would run the merge in verbose mode on all snapshot files starting by <tt>snap</tt> in the
-directory <tt>snapshots</tt>. The resulting file will be named <tt>merge.jpc</tt>.
-</p>
-
-<hr>
-
-<h2>JPCovReport</h2>
-
-<h3>Description</h3>
-
-<p>Generate a readable/printable report of a snapshot. Note that you will need <a href="http://jakarta.apache.org/oro/index.html">Jakarta
-Oro</a> in Ant classpath, to run the <tt>reference</tt> feature.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-<tr>
-	<td width="12%" valign="top"><b>Attribute</b></td>
-	<td width="78%" valign="top"><b>Description</b></td>
-	<td width="10%" valign="top"><b>Required</b></td>
-</tr>
-<tr>
-	<td valign="top">home</td>
-    <td valign="top">The directory where is intalled JProbe.</td>
-    <td align="center" valign="top">Yes</td>
-</tr>
-<tr>
-	<td valign="top">format</td>
-	<td valign="top">The format of the generated report. Must be &quot;xml&quot;, &quot;html&quot; or &quot;text&quot;</td>
-	<td align="center" valign="top">No, default to &quot;html&quot;</td>
-</tr>
-<tr>
-	<td valign="top">type</td>
-	<td valign="top">The type of report to be generated. Must be &quot;executive&quot;,
-	&quot;summary&quot;, &quot;detailed&quot; or &quot;verydetailed&quot;</td>
-	<td align="center" valign="top">No. Default to &quot;detailed&quot;</td>
-</tr>
-<tr>
-	<td valign="top">percent</td>
-	<td valign="top">A numeric value for the threshold for printing methods. Must
-	be between 0 and 100.</td>
-	<td align="center" valign="top">No, default to 100</td>
-</tr>
-<tr>
-	<td valign="top">snapshot</td>
-	<td valign="top">The name of the snapshot file that is the source to the report.</td>
-	<td align="center" valign="top">Yes</td>
-</tr>
-<tr>
-	<td valign="top">tofile</td>
-	<td valign="top">The name of the generated output file</td>
-	<td align="center" valign="top">Yes</td>
-</tr>
-<tr>
-	<td valign="top">includesource</td>
-	<td valign="top">Include text of the source code lines. Only applies to
-      format=&quot;xml&quot; and type=&quot;verydetailed&quot;</td>
-	<td align="center" valign="top">No. Defaults to &quot;yes&quot;</td>
-</tr>
-</table>
-
-<h4>sourcepath</h4>
-
-<p>
-Path to source files can be set via nested sourcepath elements that are <a href="index.html#path">PATH like structures</a>.
-</p>
-
-<h4>reference (only applies to format=&quot;xml&quot;)</h4>
-
-<p>A reference is a set of classes whose coverage information will be checked
-against. Since Coverage is only able to give you information about loaded
-classes, it will only report classes that were at least used in some points in
-your tests,
-therefore you will not be able to know what classes are not exercised at all
-during your tests. The reference is an additional feature that will analyze the
-bytecode of all classes in a given classpath that match some filters and modify
-the XML report accordingly. In short, it will:
-</p>
-
-<ul>
-  <li>remove the classes that do not exists in the reference classpath. (For
-    example you might have in your report some helper test classes that you do
-    not want to appear in the report, but are unable to filter without adding
-    hundred of filters for all your classes).</li>
-  <li>add classes that exists in the reference set and match the filters but are
-    not reported.</li>
-  <li>remove abstract methods that are incorrectly reported in JProbe 3.0
-    (should be fixed in a later SP)</li>
-  <li>remove classes/methods that do not match the filters.</li>
-</ul>
-<blockquote>
-  <h4>classpath
-</h4>
-
-  <p>
-Path to the reference set of files can be set via nested classpath elements that are <a href="index.html#path">PATH like structures</a>.
-</p>
-
-  <h4>filters
-</h4>
-
-  <p>Nested elements are <b><tt>include</tt></b> and <b><tt>exclude</tt></b>
-with a <tt>class </tt>and&nbsp; <tt>method </tt>attribute.
-</p>
-</blockquote>
-<blockquote>
-<table border="1" cellpadding="2" cellspacing="0">
-<tr>
-  <td width="12%" valign="top"><b>Attribute</b></td>
-  <td width="78%" valign="top"><b>Description</b></td>
-  <td width="10%" valign="top"><b>Required</b></td>
-</tr>
-  <tr>
-    <td valign="top">class</td> 
-    <td valign="top">The class mask as a simple regular expression</td>
-    <td align="center">No, default to *</td>
-  </tr>
-  <tr>
-    <td valign="top">method</td> 
-    <td valign="top">The method mask as a simple regular expression</td>
-    <td align="center">No, default to *</td>
-  </tr>
-</table>
-</blockquote>
-
-<h3>Example of report</h3>
-<blockquote>
-<pre>&lt;jpcovreport home=&quot;c:\jprobe&quot; snapshot=&quot;merge.jpc&quot; format=&quot;xml&quot; tofile=&quot;result.xml&quot;&gt;
-  &lt;sourcepath path=&quot;./src&quot;/&gt;
-  &lt;reference&gt;
-    &lt;classpath path=&quot;./bin/classes&quot;/&gt;
-    &lt;filters&gt;
-      &lt;include class=&quot;com.mycompany.*&quot;/&gt;
-      &lt;exclude class=&quot;com.mycompany.MyClass&quot; method=&quot;test*&quot;/&gt;
-    &lt;/filters&gt;
-  &lt;/reference&gt;
-&lt;/jpcovreport&gt;
-</pre>
-</blockquote><p>
-would generate the report of the file <tt>merge.jpc</tt> and write it to <tt>result.xml</tt>
-using the source path <tt>src</tt>. As well, it will modify the result.xml by
-analyzing all classes in the <tt>./bin/classes</tt> that are port of the package
-<tt>com.mycompany</tt> except the method that start by <tt>test</tt> from the class <tt>MyClass</tt>.
-</p>
-
-<h3>Recommendation</h3>
-
-<p>If you generate your main code and your testcases in a separate directory,
-say bin/classes and test/classes. You should mostly end up with a reference such
-as:</p>
-<blockquote>
-<pre>&lt;reference&gt;
-&nbsp;&nbsp;&nbsp; &lt;classpath path=&quot;./bin/classes&quot;/&gt;
-&lt;/reference&gt;</pre>
-</blockquote>
-<p>With such a reference, your XML report will be cleaned up against parasite
-classes from your testcases (that as a common practice, generally match the
-exact package structure of the class you exercise).</p>
-<h3>HTML reports</h3>
-<p>You will find in Ant etc directory a stylesheet called coverage-frames.xsl.
-This file can be used to generate a framed report a la javadoc similar to the
-one for JUnit. It needs either Xalan 1.2.2 or Xalan 2.x.</p>
-<p>Xalan 1.2.2 (you must have xalan.jar and bsf.jar in your classpath)
-</p>
-<pre>&lt;style processor=&quot;xalan&quot; in=&quot;./reports/xml/results.xml&quot; out=&quot;./reports/html/dummy.file&quot;
- style=&quot;${ant.home}/etc/coverage-frames.xsl&quot;&gt;
-	&lt;param name=&quot;output.dir&quot; expression=&quot;'${basedir}/reports/html'&quot;/&gt;
-&lt;/style&gt;</pre>
-<p>Xalan 2.x (note the parameter without single quote)</p>
-<pre>&lt;style processor=&quot;trax&quot; in=&quot;./reports/xml/results.xml&quot; out=&quot;./reports/html/dummy.file&quot;
- style=&quot;${ant.home}/etc/coverage-frames.xsl&quot;&gt;
-&nbsp; &lt;param name=&quot;output.dir&quot; expression=&quot;${basedir}/reports/html&quot;/&gt;
-&lt;/style&gt;</pre>
-
-</body>
-</html>
diff --git a/docs/manual/OptionalTasks/junit.html b/docs/manual/OptionalTasks/junit.html
deleted file mode 100644
index 97e3e14..0000000
--- a/docs/manual/OptionalTasks/junit.html
+++ /dev/null
@@ -1,379 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-
-<h2><a name="junit">JUnit</a></h2>
-<h3>Description</h3>
-
-<p>This task runs tests from the JUnit testing framework. The latest
-version of the framework can be found at 
-<a href="http://www.junit.org">http://www.junit.org</a>.
-This task has been tested with JUnit 3.0 up to JUnit 3.7, it won't
-work with versions prior to JUnit 3.0.</p>
-
-<p>Tests are defined by nested <code>test</code> or
-<code>batchtest</code> tags, see <a href="#nested">nested
-elements</a>.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-<tr>
-  <td width="12%" valign="top"><b>Attribute</b></td>
-  <td width="78%" valign="top"><b>Description</b></td>
-  <td width="10%" valign="top"><b>Required</b></td>
-</tr>
-  <tr>
-    <td valign="top">printsummary</td> 
-    <td valign="top">Print one line statistics for each testcase. Can
-      take the values &quot;on&quot;, &quot;off&quot; and
-      &quot;withOutAndErr&quot; - &quot;withOutAndErr&quot; is the same
-      as &quot;on&quot; but also includes the test&apos;s output
-      (written to System.out and System.err).</td>
-    <td align="center" valign="top">No, default is "off"</td>
-  </tr>
-  <tr>
-    <td valign="top">fork</td> 
-    <td valign="top">Run the tests in a separate VM.</td>
-    <td align="center" valign="top">No, default is "off"</td>
-  </tr>
-  <tr>
-    <td valign="top">haltonerror</td> 
-    <td valign="top">Stop the build process if an error occurs during the test
-       run.</td>
-    <td align="center" valign="top">No, default is "off"</td>
-  </tr>
-<tr>
-    <td valign="top">errorProperty</td> 
-    <td valign="top">The name of a property to set in the event of an error.</td> 
-    <td align="center" valign="top">No.</td>
-</tr>
-  <tr>
-    <td valign="top">haltonfailure</td> 
-    <td valign="top">Stop the build process if a test fails (errors are 
-      considered failures as well).</td>
-    <td align="center" valign="top">No, default is "off"</td>
-  </tr>
-<tr>
-    <td valign="top">failureProperty</td> 
-    <td valign="top">The name of a property to set in the event of a failure
-      (errors are considered failures as well).</td> 
-    <td align="center" valign="top">No.</td>
-</tr>
-  <tr>
-    <td valign="top">timeout</td> 
-    <td valign="top">Cancel the individual tests if the don't finish
-      in the given time (measured in milliseconds).  Ignored if fork is
-      disabled.</td> 
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">maxmemory</td>
-    <td valign="top">Max amount of memory to allocate to the forked VM
-      (ignored if fork is disabled)</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">jvm</td>
-    <td valign="top">the command used to invoke the Java Virtual Machine,
-      default is 'java'.  The command is resolved by java.lang.Runtime.exec().
-      Ignored if fork is disabled.</td>
-    <td align="center" valign="top">No, default &quot;java&quot;</td>
-  </tr>
-  <tr>
-    <td valign="top">dir</td>
-    <td valign="top">The directory to invoke the VM in. (ignored if
-      fork is disabled)</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-
-<h3><a name="nested">Nested Elements</a></h3>
-
-<p><code>junit</code> supports a nested <code>&lt;classpath&gt;</code>
-element, that represents a <a href="../using.html#path">PATH like
-structure</a>.</p>
-
-<h4>jvmarg</h4>
-
-<p>If fork is enabled, additional parameters may be passed to the new
-VM via nested <code>&lt;jvmarg&gt;</code> attributes, for example:
-
-<pre>
-&lt;junit fork=&quot;yes&quot;&gt;
-  &lt;jvmarg value=&quot;-Djava.compiler=NONE&quot;/&gt;
-  ...
-&lt;/junit&gt;
-</pre>
-
-would run the test in a VM without JIT.</p>
-
-<p><code>&lt;jvmarg&gt;</code> allows all attributes described in <a
-href="../using.html#arg">Command line arguments</a>.</p>
-
-<h4>sysproperty</h4>
-
-<p>Use nested <code>&lt;sysproperty&gt;</code> elements to specify system
-properties required by the class. These properties will be made available
-to the VM during the execution of the test (either ANT's VM or the forked VM).
-The attributes for this element are the same as for <a href="../CoreTasks/exec.html#env">environment variables</a>.
-
-<pre>
-&lt;junit fork=&quot;no&quot;&gt;
-  &lt;sysproperty key=&quot;basedir&quot; value=&quot;${basedir}&quot;/&gt;
-  ...
-&lt;/junit&gt;
-</pre>
-
-would run the test in ANT's VM and make the <code>basedir</code> property
-available to the test.</p>
-
-
-<h4>formatter</h4>
-
-<p>The results of the tests can be printed in different
-formats. Output will always be sent to a file unless you set the
-usefile attribute to false, the name of the file is determined by the
-name of the test and can be set by the <code>outfile</code> attribute
-of <code>&lt;test&gt;</code>.
-
-<p>There are three predefined formatters, one prints the test results
-in XML format, the other emit plain text.  The formatter named
-&quot;brief&quot; will only print detailed information for testcases
-that failed, while &quot;plain&quot; gives a little statistics line
-for all test cases.  Custom formatters that need to implement
-<code>org.apache.tools.ant.taskdefs.optional.junit.JUnitResultFormatter</code>
-can be specified.</p>
-
-<table border="1" cellpadding="2" cellspacing="0">
-<tr>
-  <td width="12%" valign="top"><b>Attribute</b></td>
-  <td width="78%" valign="top"><b>Description</b></td>
-  <td width="10%" valign="top"><b>Required</b></td>
-</tr>
-  <tr>
-    <td valign="top">type</td> 
-    <td valign="top">Use a predefined formatter (either
-      &quot;xml&quot;, &quot;plain&quot; or &quot;brief&quot;).</td>
-    <td align="center" rowspan="2">Exactly one of these.</td>
-  </tr>
-  <tr>
-    <td valign="top">classname</td> 
-    <td valign="top">Name of a custom formatter class.</td>
-  </tr>
-  <tr>
-    <td valign="top">extension</td> 
-    <td valign="top">Extension to append to the output filename.</td>
-    <td align="center">Yes, if classname has been used.</td>
-  </tr>
-  <tr>
-    <td valign="top">usefile</td> 
-    <td valign="top">Boolean that determines whether output should be
-      sent to a file.</td>
-    <td align="center">No, default true.</td>
-  </tr>
-</table>
-
-<h4>test</h4>
-
-<p>Defines a single test class.</p>
-
-<table border="1" cellpadding="2" cellspacing="0">
-<tr>
-  <td width="12%" valign="top"><b>Attribute</b></td>
-  <td width="78%" valign="top"><b>Description</b></td>
-  <td width="10%" valign="top"><b>Required</b></td>
-</tr>
-  <tr>
-    <td valign="top">name</td> 
-    <td valign="top">Name of the test class</td>
-    <td align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">fork</td> 
-    <td valign="top">Run the tests in a separate VM. 
-      Overrides value set in <code>&lt;junit&gt;</code>.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">haltonerror</td> 
-    <td valign="top">Stop the build process if an error occurs during the test
-       run. Overrides value set in <code>&lt;junit&gt;</code>.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-<tr>
-    <td valign="top">errorProperty</td> 
-    <td valign="top">The name of a property to set in the event of an error.
-      Overrides value set in &lt;junit&gt;.</td> 
-    <td align="center" valign="top">No.</td>
-</tr>
-  <tr>
-    <td valign="top">haltonfailure</td> 
-    <td valign="top">Stop the build process if a test fails (errors are 
-      considered failures as well).  Overrides value set in 
-      <code>&lt;junit&gt;</code>.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-<tr>
-    <td valign="top">failureProperty</td> 
-    <td valign="top">The name of a property to set in the event of a failure
-      (errors are considered failures as well). Overrides value set in &lt;junit&gt;.</td> 
-    <td align="center" valign="top">No.</td>
-</tr>
-  <tr>
-    <td valign="top">todir</td> 
-    <td valign="top">Directory to write the reports to.</td>
-    <td align="center" valign="top">No, default is current directory.</td>
-  </tr>
-  <tr>
-    <td valign="top">outfile</td> 
-    <td valign="top">Base name of the test result. The full filename is
-      determined by this attribute and the extension of
-      <code>formatter</code>.</td>
-    <td align="center" valign="top">No, default is
-      <code>TEST-name</code> using the <code>name</code> attribute.</td>
-  </tr>
-  <tr>
-    <td valign="top">if</td> 
-    <td valign="top">Only run test if the named property is set.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">unless</td> 
-    <td valign="top">Only run test if the named property is <b>not</b> set.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-
-<p>Tests can define their own formatters via nested
-<code>&lt;formatter&gt;</code> elements.</p>
-
-<h4>batchtest</h4>
-
-<p>Define a number of tests based on pattern matching.</p>
-
-<p><code>batchtest</code> collects the included files from any number
-of nested <a
-href="../CoreTypes/fileset.html"><code>&lt;fileset&gt;</code></a>s. It then
-generates a test class name for each file that ends in
-<code>.java</code> or <code>.class</code>.</p>
-
-<table border="1" cellpadding="2" cellspacing="0">
-<tr>
-  <td width="12%" valign="top"><b>Attribute</b></td>
-  <td width="78%" valign="top"><b>Description</b></td>
-  <td width="10%" valign="top"><b>Required</b></td>
-</tr>
-  <tr>
-    <td valign="top">fork</td> 
-    <td valign="top">Run the tests in a separate VM. 
-      Overrides value set in <code>&lt;junit&gt;</code>.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">haltonerror</td> 
-    <td valign="top">Stop the build process if an error occurs during the test
-       run. Overrides value set in <code>&lt;junit&gt;</code>.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-<tr>
-    <td valign="top">errorProperty</td> 
-    <td valign="top">The name of a property to set in the event of an error.
-      Overrides value set in &lt;junit&gt;.</td> 
-    <td align="center" valign="top">No.</td>
-</tr>
-  <tr>
-    <td valign="top">haltonfailure</td> 
-    <td valign="top">Stop the build process if a test fails (errors are 
-      considered failures as well).  Overrides value set in 
-      <code>&lt;junit&gt;</code>.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-<tr>
-    <td valign="top">failureProperty</td> 
-    <td valign="top">The name of a property to set in the event of a failure
-      (errors are considered failures as well). Overrides value set in &lt;junit&gt;</td> 
-    <td align="center" valign="top">No.</td>
-</tr>
-  <tr>
-    <td valign="top">todir</td> 
-    <td valign="top">Directory to write the reports to.</td>
-    <td align="center" valign="top">No, default is current directory.</td>
-  </tr>
-  <tr>
-    <td valign="top">if</td> 
-    <td valign="top">Only run tests if the named property is set.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">unless</td> 
-    <td valign="top">Only run tests if the named property is <b>not</b> set.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-
-<p>Batchtests can define their own formatters via nested
-<code>&lt;formatter&gt;</code> elements.</p>
-
-<h3>Examples</h3>
-
-<p><pre>
-&lt;junit&gt;
-  &lt;test name="my.test.TestCase" /&gt;
-&lt;/junit&gt;
-</pre>
-
-Runs the test defined in <code>my.test.TestCase</code> in the same
-VM. No output will be generated unless the test fails.</p>
-
-<p><pre>
-&lt;junit printsummary="yes" fork="yes" haltonfailure="yes"&gt;
-  &lt;formatter type="plain" /&gt;
-  &lt;test name="my.test.TestCase" /&gt;
-&lt;/junit&gt;
-</pre>
-
-Runs the test defined in <code>my.test.TestCase</code> in a
-separate VM.  At the end of the test a single line summary will be
-printed. A detailed report of the test can be found in
-<code>TEST-my.test.TestCase.txt</code>. The build process will be
-stopped if the test fails.</p>
-
-<p><pre>
-&lt;junit printsummary="yes" haltonfailure="yes"&gt;
-  &lt;classpath&gt;
-    &lt;pathelement location="${build.tests}" /&gt;
-    &lt;pathelement path="${java.class.path}" /&gt;
-  &lt;/classpath&gt;
-
-  &lt;formatter type="plain" /&gt;
-
-  &lt;test name="my.test.TestCase" haltonfailure="no" outfile="result" &gt;
-    &lt;formatter type="xml" /&gt;
-  &lt;/test&gt;
-
-  &lt;batchtest fork="yes" todir="${reports.tests}"&gt;
-    &lt;fileset dir="${src.tests}"&gt;
-      &lt;include name="**/*Test*.java" /&gt;
-      &lt;exclude name="**/AllTests.java" /&gt;
-    &lt;/fileset&gt;
-  &lt;/batchtest&gt;
-&lt;/junit&gt;
-</pre>
-
-Runs <code>my.test.TestCase</code> in the same VM (ignoring the
-given CLASSPATH), only a warning is printed if this test fails. In
-addition to the plain text test results, for this test a XML result
-will be output to <code>result.xml</code>.</p>
-
-<p>For each matching file in the directory <code>${src.tests}</code> a
-test is run in a separate VM. If a test fails, the build process is
-aborted. Results are collected in files named
-<code>TEST-<em>name</em>.txt</code> and written to <code>${reports.tests}</code>.</p>
-
-<p>By using the errorProperty and failureProperty tags, it is possible to
-perform setup work (such as starting an external server), execute the test,
-clean up, and still fail the build in the event of a failure.</p>
-
-</body>
-</html>
diff --git a/docs/manual/OptionalTasks/junitreport.html b/docs/manual/OptionalTasks/junitreport.html
deleted file mode 100644
index 696836e..0000000
--- a/docs/manual/OptionalTasks/junitreport.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<html>
-<head>
-<title>JUnitReport</title>
-</head>
-
-<body>
-
-<h2><a name="junitreport">JUnitReport</a></h2>
-Merge the individual XML files generated by the JUnit task and eventually apply
-a stylesheet on the resulting merged document to provide a browsable report of
-the testcases results.
-<h3>Requirements</h3>
-<p>The task will run with either <a href="http://xml.apache.org/xalan-j/">Xalan 2.x</a>
-or <a href="http://xml.apache.org/dist/xalan-j/old/xalan-j_1_2_2.zip">Xalan 1.2.2</a>.
-<p>
-Note:<i>For a framed format Xalan 1.2.2 will need Xerces(xerces.jar) as well as BSF(bsf.jar)
-that can be found in the distribution archive.</i>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td width="12%" valign="top"><b>Attribute</b></td>
-    <td width="78%" valign="top"><b>Description</b></td>
-    <td width="10%" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">tofile</td>
-    <td valign="top">The name of the XML file that will aggregate all individual
-      XML testsuite previously generated by the JUnit task.</td>
-    <td align="center" valign="top">No. Default to TESTS-TestSuites.xml</td>
-  </tr>
-  <tr>
-    <td valign="top">todir</td>
-    <td valign="top">The directory where should be written the file resulting
-      from the individual XML testsuite aggregation.</td>
-    <td align="center" valign="top">No. Default to current directory</td>
-  </tr>
-</table>
-<h3><a name="nested">Nested Elements</a></h3>
-<h4>fileset</h4>
-<p><code>junitreport</code> collects individual xml files generated by the JUnit
-task using the nested <a href="index.html#fileset"><code>&lt;FileSet&gt;</code></a>
-element.</p>
-<h4>report</h4>
-<p>Generate a browsable report based on the document created by the merge.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td width="12%" valign="top"><b>Attribute</b></td>
-    <td width="78%" valign="top"><b>Description</b></td>
-    <td width="10%" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">format</td>
-    <td valign="top">The format of the generated report. Must be &quot;noframes&quot;
-      or &quot;frames&quot;.</td>
-    <td align="center" valign="top">No, default to &quot;frames&quot;</td>
-  </tr>
-  <tr>
-    <td valign="top">styledir</td>
-    <td valign="top">The directory where the stylesheets are defined. They must
-      be conforming to the following conventions:
-      <ul>
-        <li>frames format: the stylesheet must be named <i>junit-frames.xsl</i>.</li>
-        <li>noframes format: the stylesheet must be named <i>junit-noframes.xsl</i>.</li>
-      </ul>
-    </td>
-    <td align="center" valign="top">No. Default to embedded stylesheets.</td>
-  </tr>
-  <tr>
-    <td valign="top">todir</td>
-    <td valign="top">The directory where the files resulting from the
-      transformation should be written to.</td>
-    <td align="center" valign="top">No. Default to current directory</td>
-  </tr>
-</table>
-<h3>Example of report</h3>
-<blockquote>
-  <pre>&lt;junitreport todir=&quot;./reports&quot;&gt;
-  &lt;fileset dir=&quot;./reports&quot;&gt;
-    &lt;include name=&quot;TEST-*.xml&quot;/&gt;
-  &lt;/fileset&gt;
-  &lt;report format=&quot;frames&quot; todir=&quot;./report/html&quot;/&gt;
-&lt;/junitreport&gt;
-</pre>
-</blockquote>
-<p>would generate a <tt>TESTS-TestSuites.xml</tt> file in the directory <tt>reports</tt> and
-generate the default framed report in the directory <tt>report/html</tt>.</p>
-
-</body>
-
-</html>
diff --git a/docs/manual/OptionalTasks/maudit.html b/docs/manual/OptionalTasks/maudit.html
deleted file mode 100644
index 2ba41b2..0000000
--- a/docs/manual/OptionalTasks/maudit.html
+++ /dev/null
@@ -1,137 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>MAudit Task</title>
-</head>
-
-<body>
-
-<h2><a name="maudit">MAudit</a></h2>
-<p>by</p>
-<ul>
-  <li>Stephane Bailliez (<a href="mailto:sbailliez@imediation.com">sbailliez@imediation.com</a>)</li>
-</ul>
-<h3>Requirements</h3>
-<p>This task requires Metamata Development environment 2.0/Webgain Quality Analyzer 2.0.
-An evaluation version is available at <a href="http://www.webgain.com/products/quality_analyzer">Webgain</a>.
-, <a href="http://jakarta.apache.org/oro">Jakarta Oro</a> and a XML parser (via JAXP).</p>
-<h3>Description</h3> 
-<p>
-  Invokes the Metamata Audit/ Webgain Quality Analyzer on a set of Java files.
-</p>
-<p>
-  <i>maudit</i> performs static analysis of the Java source code and byte code files to find and report
-  errors of style and potential problems related to performance, maintenance and robustness.
-.  As a convenience, a stylesheet is given in <tt>etc</tt> directory, so that an HTML report can be generated from the XML file.
-</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">tofile</td>
-    <td valign="top">The XML file to which the Audit result should be written to.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">metamatahome</td>
-    <td valign="top">The home directory containing the Metamata distribution.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">fix</td>
-    <td valign="top">
-      Automatically fix certain errors (those marked as fixable in the manual).
-    </td>
-    <td valign="top" align="center">No.Default to false.</td>
-  </tr>
-  <tr>
-    <td valign="top">list</td>
-    <td valign="top">
-      Creates listing file for each audited file. A .maudit file will be generated in the
-      same location as the source file.
-    </td>
-    <td valign="top" align="center">No. Default to false.</td>
-  </tr>
-  <tr>
-    <td valign="top">unused</td>
-    <td valign="top">
-      Finds declarations unused in search paths. It will look for unused global declarations
-      in the source code within a use domain specified by the <tt>searchpath</tt> element.
-    </td>
-    <td valign="top" align="center">No. Default to false.</td>
-  </tr>
-  <tr>
-    <td valign="top">maxmemory</td>
-    <td valign="top">Set the maximum memory for the JVM. this is a convenient
-      way to set the -mx or -Xmx argument.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Nested elements</h3>
-<h4>jvmarg</h4>
-<p>Additional parameters may be passed to the VM via nested <code>&lt;jvmarg&gt;</code>
-attributes. <code>&lt;jvmarg&gt;</code> allows all attributes described in <a href="index.html#arg">Command
-line arguments</a>.</p>
-<h4>classpath</h4>
-<p>Sets class path (also source path unless one explicitly set). Overrides
-METAPATH/CLASSPATH environment variables. The <tt>classpath</tt> element represents a <a href="../#path">PATH like
-structure</a>.</p>
-<h4>sourcepath</h4>
-<p>Sets source path. Overrides the SOURCEPATH environment variable. The <tt>sourcepath</tt> element represents a <a href="../coreTypes/fileset.htmlindex.html#path">PATH like
-structure</a>.</p>
-<h4>sourcepath</h4>
-<p>Sets the search path to use as the use domain when looking for unused global declarations. The <tt>searchpath</tt> element represents a <a href="../coreTypes/fileset.htmlindex.html#path">PATH like
-structure</a>.</p>
-<h4>fileset</h4>
-<p>Sets the Java files to audit via a <a href="index.html#fileset">FILESET</a> structure.
-Whatever the filter is, only the files that ends with <i>.java</i> will be included for processing.
-Note that the base directory used for the fileset MUST be the root of the source files otherwise
-package names deduced from the file path will be incorrect.
-</p>
-<h3>Example</h3>
-<pre>  &lt;maudit tofile=&quot;c:/metamata/examples/auditexamples/audit.xml&quot;
-          metamatahome=&quot;c:/metamata&quot; fix=&quot;yes&quot;&gt;
-    &lt;classpath&gt;
-      &lt;pathelement location=&quot;c:/metamata/examples/auditexamples&quot;/&gt;
-    &lt;/classpath&gt;
-    &lt;sourcepath&gt;
-      &lt;pathelement location=&quot;c:/metamata/examples/auditexamples&quot;/&gt;
-    &lt;/classpath&gt;
-    &lt;fileset dir=&quot;c:/metamata/examples/auditexamples&quot;&gt;
-        &lt;include name=&quot;*.java&quot;/&gt;
-    &lt;fileset&gt;
-  &lt;/maudit&gt;</pre>
-<p>
-  This invokes Metamata Audit installed in <tt>c:/metamata</tt> on the audit examples
-and fix automatically the fixable errors.
-</p>
-<h3>Generating a report</h3>
-As a convenience, there is an XSL file(maudit-frames.xsl) that allows you to generate a full framed HTML report of the metrics.
-You can find it in the <i>etc</i> directory of Ant. As it uses the Xalan extensions, you will need
-BSF, Xalan and Xerces to run it. The stylesheet takes an <i>output.dir</i> parameter (otherwise it will be generated
-in the current directory), it can be run in Ant as follows:
-<pre>
-&lt;java classname=&quot;org.apache.xalan.xslt.Process&quot;&gt;
-    &lt;param value=&quot;-IN&quot;/&gt;
-    &lt;param value=&quot;${metrics.xml}&quot;/&gt;
-    &lt;param value=&quot;-XSL&quot;/&gt;
-    &lt;param value=&quot;maudit-frames.xsl&quot;/&gt;
-    &lt;param value=&quot;-PARAM&quot;/&gt;
-    &lt;param value=&quot;output.dir&quot;/&gt;
-    &lt;param value=&quot;&amp;quot;'${report.dir}'&amp;quot;&quot;/&gt;
-&lt;/java&gt;
-</pre>
-
-<hr>
-
-
-
-<hr>
-
-
diff --git a/docs/manual/OptionalTasks/mimemail.html b/docs/manual/OptionalTasks/mimemail.html
deleted file mode 100644
index 2cc6e36..0000000
--- a/docs/manual/OptionalTasks/mimemail.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="mimemail">MimeMail</a></h2>
-<h3>Description</h3>
-<p>Sends SMTP mail with MIME attachments.&nbsp;&nbsp; If&nbsp; no attachments
-are needed, use the built-in <a href="http://jakarta.apache.org/ant/manual/CoreTasks/mail.html">Mail</a>
-task.&nbsp; <a href="http://java.sun.com/products/javamail/index.html">JavaMail</a>
-and <a href="http://java.sun.com/products/javabeans/glasgow/jaf.html">Java
-Activation Framework</a> are required for this task.</p>
-<p>Multiple files can be attached using <a href="../CoreTypes/fileset.html">FileSets.</a></p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">message</td>
-    <td valign="top">The message body</td>
-    <td valign="top" align="center" rowspan="2">No, but only one of of 'message' or
-      'messageFile' may be specified.&nbsp; If not specified, a fileset must be
-      provided.</td>
-  </tr>
-  <tr>
-    <td valign="top">messageFile</td>
-    <td valign="top">A filename to read and used as the message body</td>
-  </tr>
-  <tr>
-    <td valign="top">messageMimeType</td>
-    <td valign="top">MIME type to use for 'message' or 'messageFile' when
-      attached.</td>
-    <td align="center" valign="top">No, defaults to "text/plain"</td>
-  </tr>
-  <tr>
-    <td valign="top">tolist</td>
-    <td valign="top">Comma-separated list of To: recipients</td>
-    <td valign="top" align="center" rowspan="3">Yes, at least one of 'tolist', 'cclist',
-      or 'bcclist' must be specified.</td>
-  </tr>
-  <tr>
-    <td valign="top">cclist</td>
-    <td valign="top">Comma-separated list of CC: recipients</td>
-    <td valign="top" align="center">&nbsp;</td>
-  </tr>
-  <tr>
-    <td valign="top">bcclist</td>
-    <td valign="top">Comma-separated list of BCC: recipients</td>
-    <td valign="top" align="center">&nbsp;</td>
-  </tr>
-  <tr>
-    <td valign="top">mailhost</td>
-    <td valign="top">Host name of the mail server.</td>
-    <td valign="top" align="center">No, default to &quot;localhost&quot;</td>
-  </tr>
-  <tr>
-    <td valign="top">subject</td>
-    <td valign="top">Email subject line.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">from</td>
-    <td valign="top">Email address of sender.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">failonerror</td>
-    <td valign="top">Stop the build process if an error occurs sending the
-      e-mail.</td>
-    <td valign="top" align="center">No, default to &quot;true&quot;</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<p><b>Send a single HTML file as the body of a message</b></p>
-<pre>	&lt;mimemail messageMimeType=&quot;text/html&quot; messageFile=&quot;overview-summary.html&quot; 
-		tolist=&quot;you&quot; subject=&quot;JUnit Test Results: ${TODAY}&quot; from=&quot;me&quot;/&gt;</pre>
-<p><b>Sends all files in a directory as attachments</b></p>
-<pre>	&lt;mimemail message=&quot;See attached files&quot; tolist=&quot;you&quot; subject=&quot;Attachments&quot; from=&quot;me&quot;&gt;
-	    &lt;fileset dir=&quot;.&quot;&gt;
-	        &lt;include name=&quot;dist/*.*&quot;/&gt;
-	    &lt;/fileset&gt;
-	&lt;/mimemail&gt;
-</pre>
-<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/OptionalTasks/mmetrics.html b/docs/manual/OptionalTasks/mmetrics.html
deleted file mode 100644
index 14af8de..0000000
--- a/docs/manual/OptionalTasks/mmetrics.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>MMetrics Task</title>
-</head>
-
-<body>
-
-<h2>MMetrics</h2>
-<p>by</p>
-<ul>
-  <li>Stephane Bailliez (<a href="mailto:sbailliez@imediation.com">sbailliez@imediation.com</a>)</li>
-</ul>
-<h3>Requirements</h3>
-<p>This task requires Metamata Development environment 2.0/Webgain Quality Analyzer 2.0.
-An evaluation version is available at <a href="http://www.webgain.com/products/quality_analyzer">Webgain</a>.
-(Though you will not be able to use Metrics from the command line if you do not have a registered version).
-You also need a TRaX compliant processor(such as <a href="http://xml.apache.org/xalan-j">Xalan 2.x</a>) via JAXP 1.1</p>
-<h3>Description</h3> 
-<p>
-  Invokes the Metamata Metrics / WebGain Quality Analyzer</a> source code 
-  analyzer on a set of Java files.
-</p>
-<p>
-    <i>mmetrics</i> will compute the metrics of a set of Java files and write the results to an XML
-    file. As a convenience, a stylesheet is given in <tt>etc</tt> directory, so that an HTML report can be generated from the XML file.
-</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">metamatahome</td>
-    <td valign="top">The home directory containing the Metamata distribution.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">tofile</td>
-    <td valign="top">The XML were the resulting metrics will be written to.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">granularity</td>
-    <td valign="top">Metrics granularity of the source files. Must be either
-      <i>files</i> (compilation-units), <i>types</i> (types and compilation-units) or <i>methods</i>
-      (methods, types and compilation-units).
-    </td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">maxmemory</td>
-    <td valign="top">Set the maximum memory for the JVM. this is a convenient
-      way to set the -mx or -Xmx argument.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Nested elements</h3>
-For specifying the source code to analyze, you can either use a <tt>path</tt> or <tt>fileset</tt> elements (though a single path element is preferred, see note below).</i>
-<h4>jvmarg</h4>
-<p>Additional parameters may be passed to the VM via nested <code>&lt;jvmarg&gt;</code>
-attributes. <code>&lt;jvmarg&gt;</code> allows all attributes described in <a href="index.html#arg">Command
-line arguments</a>.</p>
-<h4>classpath</h4>
-<p>Sets class path (also source path unless one explicitly set). Overrides
-METAPATH/CLASSPATH environment variables. The <tt>classpath</tt> element represents a <a href="index.html#path">PATH like
-structure</a>.</p>
-<h4>sourcepath</h4>
-<p>Sets source path. Overrides the SOURCEPATH environment variable. The <tt>sourcepath</tt> element represents a <a href="index.html#path">PATH like
-structure</a>.</p>
-
-<h4>path</h4>
-<p>Sets the list of directories to analyze the code for metrics.;It represents a <a href="index.html#path">PATH structure</a>.</p>
-<h4>fileset</h4>
-<p>Sets a set of files to analyze for metrics.source  It represents a <a href="index.html#fileset">FILESET structure</a>.</p>
-
-<p>
-<font color="#FF0000">
-Note: For the sake of readability, it is highly recommended to analyze for a single unique directory instead than
-using filesets or several directories. Otherwise there will be multiple metrics outputs without any way to know
-what metrics refers to what source. Chance are also that the XML handler that does some heuristic will be confused
-by the different outputs.
-</font>
-</p>
-
-<h3>Example</h3>
-<pre>  &lt;mmetrics target=&quot;mmetrics.xml&quot;
-          metamatahome=&quot;c:/metamata&quot;
-          granularity=&quot;methods&quot;&gt;
-    &lt;classpath&gt;
-      &lt;pathelement location=&quot;c:/metamata/examples/metricsexamples&quot;/&gt;
-    &lt;/classpath&gt;
-    &lt;sourcepath&gt;
-      &lt;pathelement location=&quot;c:/metamata/examples/metricsexamples&quot;/&gt;
-    &lt;/sourcepath&gt;
-    &lt;path&gt;
-      &lt;pathelement location=&quot;c:/metamata/examples/metricsexamples&quot;/&gt;
-    &lt;/path&gt;
-  &lt;/mmetrics&gt;</pre>
-<p>
-  This invokes Metamata Metrics installed in <tt>c:/metamata</tt> on the metrics example.
-  (Note that here, classpath and sourcepath are not normally not needed)
-</p>
-
-<h3>Generating a report</h3>
-As a convenience, there is an XSL file(mmetrics-frames.xsl) that allows you to generate a full framed HTML report of the metrics.
-You can find it in the <i>etc</i> directory of Ant. As it uses the Xalan extensions, you will need
-BSF, Xalan and Xerces to run it. The stylesheet takes an <i>output.dir</i> parameter (otherwise it will be generated
-in the current directory), it can be run in Ant as follows:
-<pre>
-&lt;java classname=&quot;org.apache.xalan.xslt.Process&quot;&gt;
-    &lt;param value=&quot;-IN&quot;/&gt;
-    &lt;param value=&quot;${metrics.xml}&quot;/&gt;
-    &lt;param value=&quot;-XSL&quot;/&gt;
-    &lt;param value=&quot;mmetrics-frames.xsl&quot;/&gt;
-    &lt;param value=&quot;-PARAM&quot;/&gt;
-    &lt;param value=&quot;output.dir&quot;/&gt;
-    &lt;param value=&quot;&amp;quot;'${report.dir}'&amp;quot;&quot;/&gt;
-&lt;/java&gt;
-</pre>
-
-<hr>
-
-
diff --git a/docs/manual/OptionalTasks/mparse.html b/docs/manual/OptionalTasks/mparse.html
deleted file mode 100644
index 49436b0..0000000
--- a/docs/manual/OptionalTasks/mparse.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<!-- saved from url=(0022)http://internet.e-mail -->
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>MParse Task</title>
-</head>
-
-<body>
-
-<h2><a name="mparse">MParse</a></h2>
-<p>by</p>
-<ul>
-  <li>Stephane Bailliez (<a href="mailto:sbailliez@imediation.com">sbailliez@imediation.com</a>)</li>
-</ul>
-<h3>Requirements</h3>
-<p>This task requires Metamata Development environment 2.0 freely available at <a href="http://www.metamata.com">Metamata</a>.</p>
-<h3>Description</h3> 
-<p>
-  Invokes the Metamata <a HREF="http://www.metamata.com/parse.html">MParse</a> compiler 
-  compiler on a grammar file.
-</p>
-<p>
-  To use the <i>mparse</i> task, set the <i>target</i> attribute to the name of the 
-  grammar file to process.  You also need to specify the directory containing 
-  the Metamata installation using the <i>metamatahome</i> attribute, so that Ant 
-  can find the MParse classes.
-</p>
-<p>
-  This task only invokes MParse if the grammar file is newer than the generated 
-  Java files. MParse assumes that the Java class name of the generated parser
-  is the same as the name of the grammar file, less the .jj extension.
-</p>
-
-<p>For additional information about MParse, please consult the online manual available <a href="http://download.metamata.com/parse.pdf">here</a>
-(PDF)
-</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">target</td>
-    <td valign="top">The .jj grammar file to process. It will only be processed
-      if the grammar is newer than the corresponding .java file.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">metamatahome</td>
-    <td valign="top">The home directory containing the Metamata distribution.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">verbose</td>
-    <td valign="top">
-      Enable all messages
-    </td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">debugparser</td>
-    <td valign="top">
-      Enables parser debugging
-    </td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">debugscanner</td>
-    <td valign="top">
-      Enables scanner debugging
-    </td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">cleanup</td>
-    <td valign="top">Remove the intermediate Sun
-      JavaCC file created during the transformation of the grammar file.</td>
-    <td valign="top" align="center">No. Default to false</td>
-  </tr>
-  <tr>
-    <td valign="top">maxmemory</td>
-    <td valign="top">Set the maximum memory for the JVM. this is a convenient
-      way to set the -mx or -Xmx argument.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Nested elements</h3>
-<h4>jvmarg</h4>
-<p>Additional parameters may be passed to the VM via nested <code>&lt;jvmarg&gt;</code>
-attributes. <code>&lt;jvmarg&gt;</code> allows all attributes described in <a href="index.html#arg">Command
-line arguments</a>.</p>
-<h4>classpath</h4>
-<p>Sets class path (also source path unless one explicitly set). Overrides
-METAPATH/CLASSPATH environment variables. &nbsp;The <tt>classpath</tt> element represents a <a href="index.html#path">PATH like
-structure</a>.</p>
-<h4>sourcepath</h4>
-<p>Sets source path. Overrides the SOURCEPATH environment variable.&nbsp;The <tt>sourcepath</tt> element represents a <a href="index.html#path">PATH like
-structure</a>.</p>
-<h3>Example</h3>
-<pre>  &lt;mparse target=&quot;c:/metamata/examples/parseexamples/javagrammars/singlefile/JavaParser.jj&quot;
-          metamatahome=&quot;c:/metamata&quot; cleanup=&quot;true&quot;&gt;
-    &lt;classpath&gt;
-      &lt;pathelement location=&quot;c:/metamata/examples/&quot;/&gt;
-    &lt;/classpath&gt;
-  &lt;/mparse&gt;</pre>
-<p>
-  This invokes Metamata MParse installed in <tt>c:/metamata</tt> on one of the grammar file
-example <tt>(JavaParser.jj)</tt>
- and cleans up the intermediate Sun JavaCC file.
-</p>
-<hr>
-
-
diff --git a/docs/manual/OptionalTasks/native2ascii.html b/docs/manual/OptionalTasks/native2ascii.html
deleted file mode 100644
index 816fa54..0000000
--- a/docs/manual/OptionalTasks/native2ascii.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<html>
-  <head><title>Native2Ascii</title></head>
-  <body>
-    <h2>Native2Ascii</h2>
-    
-    <h3>Description:</h3>
-    
-    <p>
-      Converts files from native encodings to ASCII with escaped Unicode.
-      A common usage is to convert source files maintained in a native
-      operating system encoding, to ASCII prior to compilation.
-    </p>
-
-    <p>
-      Files in the directory <em>src</em>
-      are converted from a native encoding to ASCII.
-      By default, all files in the directory are converted.
-      However, conversion may be limited to selected files using
-      <em>includes</em> and <em>excludes</em> attributes.
-      For more information on file matching patterns,
-      see the section on
-      <a href="index.html../dirtasks.html#directorybasedtasks">directory based tasks</a>.
-      If no <em>encoding</em> is specified, 
-      the default encoding for the JVM is used.
-      If <em>ext</em> is specified, then output files are renamed
-      to use it as a new extension. 
-      More sophisticated file name translations can be achieved using a nested
-      <em>&lt;mapper&gt;</em> element. By default an 
-      <a href="../CoreTypes/mapper.html#identity-mapper">identity mapper</a> will be used.
-      If <em>dest</em> and <em>src</em> point to the same directory,
-      the <em>ext</em> attribute or a nested <em>&lt;mapper&gt;</em>
-      is required.
-    </p>
-
-    <p>
-      This task forms an implicit <a href="index.html../CoreTypes/fileset.html">File Set</a>,
-      and supports all attributes of <code>&lt;fileset&gt;</code>
-      (<code>dir</code> becomes <code>src</code>) as well as 
-      nested <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code>,
-      and <code>&lt;patternset&gt;</code> elements.
-    </p>
-
-    <table border="1" cellpadding="2" cellspacing="0">
-      <tr>
-        <td><b>Attribute</b></td>
-        <td><b>Description</b></td>
-        <td><b>Required</b></td>
-      </tr>
-      <tr>
-        <td>reverse</td>
-        <td>Reverse the sense of the conversion,
-          i.e. convert from ASCII to native</td>
-        <td align="center">No</td>
-      </tr>
-      <tr>
-        <td>encoding</td>
-        <td>The native encoding the files are in
-          (default is the default encoding for the JVM)</td>
-        <td align="center">No</td>
-      </tr>
-      <tr>
-        <td>src</td>
-        <td>The directory to find files in (default is <em>basedir</em>)</td>
-        <td align="center">No</td>
-      </tr>
-      <tr>
-        <td>dest</td>
-        <td>The directory to output file to</td>
-        <td align="center">Yes</td>
-      </tr>
-      <tr>
-        <td>ext</td>
-        <td>File extension to use in renaming output files</td>
-        <td align="center">No</td>
-      </tr>
-      <tr>
-        <td>defaultexcludes</td>
-        <td>indicates whether default excludes should be used or not
-          (&quot;yes&quot;/&quot;no&quot;).
-          Default excludes are used when omitted.
-        </td>
-        <td align="center">No</td>
-      </tr>
-      <tr>
-        <td>includes</td>
-        <td>comma separated list of patterns of files that must be
-          included. All files are included when omitted.</td>
-        <td align="center">No</td>
-      </tr>
-      <tr>
-        <td>includesfile</td>
-        <td>the name of a file. Each line of this file is
-          taken to be an include pattern</td>
-        <td align="center">No</td>
-      </tr>
-      <tr>
-        <td>excludes</td>
-        <td>comma separated list of patterns of files that must be excluded.
-          No files (except default excludes) are excluded when omitted.</td>
-        <td align="center">No</td>
-      </tr>
-      <tr>
-        <td>excludesfile</td>
-        <td>the name of a file. Each line of this file is
-          taken to be an exclude pattern</td>
-        <td align="center">No</td>
-      </tr>
-    </table>
-      
-    <h3>Examples</h3>
-
-    <pre>
-&lt;native2ascii encoding=&quot;EUCJIS&quot; src=&quot;srcdir&quot; dest=&quot;srcdir&quot;
-   includes=&quot;**/*.eucjis&quot; ext=&quot;.java&quot; /&gt;
-    </pre>
-
-    <p>
-      Converts all files in the directory <em>srcdir</em>
-      ending in <code>.eucjis</code> from the EUCJIS encoding to ASCII
-      and renames them to end in <code>.java</code>.
-    </p>
-
-<pre>
-&lt;native2ascii encoding='EUCJIS&quot; src=&quot;native/japanese&quot; dest=&quot;src&quot;
-   includes=&quot;**/*.java /&gt;
-</pre>
-
-    <p>
-      Converts all the files ending in <code>.java</code>
-      in the directory <em>native/japanese</em> to ASCII,
-      placing the results in the directory <em>src</em>.
-      The names of the files remain the same.
-    </p>
-  </body>
-</html>
diff --git a/docs/manual/OptionalTasks/netrexxc.html b/docs/manual/OptionalTasks/netrexxc.html
deleted file mode 100644
index cc4530d..0000000
--- a/docs/manual/OptionalTasks/netrexxc.html
+++ /dev/null
@@ -1,277 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="netrexxc">NetRexxC</a></h2>
-<h3>Description</h3>
-<p>Compiles a <a href="http://www2.hursley.ibm.com/netrexx" target="_top">NetRexx</a>
-source tree within the running (Ant) VM.</p>
-<p>The source and destination directory will be recursively scanned for
-NetRexx source files to compile.  Only NetRexx files that have no corresponding
-class file or where the class file is older than the java file will be compiled.</p>
-<p>Files in the source tree are copied to the destination directory,
-allowing support files to be located properly in the classpath. The source 
-files are copied because the NetRexx compiler cannot produce class files in a
-specific directory via parameters</p>
-<p>The directory structure of the source tree should follow the package
-hierarchy.</p>
-<p>It is possible to refine the set of files that are being compiled/copied.
-This can be done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and
-<i>defaultexcludes</i> attributes. With the <i>includes</i> or <i>includesfile</i> attribute you 
-specify the files you want to have included by using patterns. The 
-<i>exclude</i> or <i>excludesfile</i> attribute is used to specify the files you want to have 
-excluded.  This is also done with patterns.  And finally with the 
-<i>defaultexcludes</i> attribute, you can specify whether you
-want to use default exclusions or not. See the section on <a
-href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
-inclusion/exclusion of files works, and how to write patterns.</p>
-<p>This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
-supports all attributes of <code>&lt;fileset&gt;</code>
-(<code>dir</code> becomes <code>srcdir</code>) as well as the nested
-<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
-<code>&lt;patternset&gt;</code> elements.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">binary</td>
-    <td valign="top">Whether literals are treated as the java binary
-      type rather than the NetRexx types</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">classpath</td>
-    <td valign="top">The classpath to use during compilation</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">comments</td>
-    <td valign="top">Whether comments are passed through to the
-      generated java source</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">compact</td>
-    <td valign="top">Whether error messages come out in compact or
-      verbose format</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">compile</td>
-    <td valign="top">Whether the NetRexx compiler should compile the
-      generated java code</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">console</td>
-    <td valign="top">Whether or not messages should be displayed on the
-      'console'</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">crossref</td>
-    <td valign="top">Whether variable cross references are generated</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">decimal</td>
-    <td valign="top">Whether decimal arithmetic should be used for the
-      NetRexx code</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes should be used or not
-      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when
-      omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">destDir</td>
-    <td valign="top">the destination directory into which the NetRexx
-      source files should be copied and then compiled</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">diag</td>
-    <td valign="top">Whether diagnostic information about the compile is
-      generated</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      excluded. No files (except default excludes) are excluded when
-      omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an exclude pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">explicit</td>
-    <td valign="top">Whether variables must be declared explicitly
-      before use</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">format</td>
-    <td valign="top">Whether the generated java code is formatted nicely
-      or left to match NetRexx line numbers for call stack debugging</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      included. All files are included when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an include pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">java</td>
-    <td valign="top">Whether the generated java code is produced</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">keep</td>
-    <td valign="top">Sets whether the generated java source file should be kept
-      after compilation. The generated files will have an extension of
-      .java.keep, <b>not</b> .java</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">logo</td>
-    <td valign="top">Whether the compiler text logo is displayed when
-      compiling</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">replace</td>
-    <td valign="top">Whether the generated .java file should be replaced
-      when compiling</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">savelog</td>
-    <td valign="top">Whether the compiler messages will be written to
-      NetRexxC.log as well as to the console</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">sourcedir</td>
-    <td valign="top">Tells the NetRexx compiler to store the class files in the
-      same directory as the source files. The alternative is the working
-      directory</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">srcDir</td>
-    <td valign="top">Set the source dir to find the source NetRexx
-      files</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">strictargs</td>
-    <td valign="top">Tells the NetRexx compiler that method calls always
-      need parentheses, even if no arguments are needed, e.g. 
-      <code>aStringVar.getBytes</code> vs. 
-      <code>aStringVar.getBytes()</code></td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">strictassign</td>
-    <td valign="top">Tells the NetRexx compile that assignments must
-      match exactly on type</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">strictcase</td>
-    <td valign="top">Specifies whether the NetRexx compiler should be
-      case sensitive or not</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">strictimport</td>
-    <td valign="top">Whether classes need to be imported explicitly using an 
-      <code>import</code> statement.  By default the NetRexx compiler will 
-      import certain packages automatically</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">strictprops</td>
-    <td valign="top">Whether local properties need to be qualified
-      explicitly using <code>this</code></td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">strictsignal</td>
-    <td valign="top">Whether the compiler should force catching of
-      exceptions by explicitly named types</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">symbols</td>
-    <td valign="top">Whether debug symbols should be generated into the
-      class file</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">time</td>
-    <td valign="top">Asks the NetRexx compiler to print compilation
-      times to the console</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">trace</td>
-    <td valign="top">Turns on or off tracing and directs the resultant
-      trace output</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">utf8</td>
-    <td valign="top">Tells the NetRexx compiler that the source is in UTF8</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">verbose</td>
-    <td valign="top">Whether lots of warnings and error messages should
-      be generated</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-  <p><code>&lt;netrexxc srcDir=&quot;/source/project&quot;
-           includes=&quot;vnr/util/*&quot;
-           destDir=&quot;/source/project/build&quot;
-           classpath=&quot;/source/project2/proj.jar&quot;
-           comments=&quot;true&quot;
-           crossref=&quot;false&quot; replace=&quot;true&quot;
-           keep=&quot;true&quot;/&gt;</code>
-  </p>
-</blockquote>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/OptionalTasks/perforce.html b/docs/manual/OptionalTasks/perforce.html
deleted file mode 100644
index 4d09510..0000000
--- a/docs/manual/OptionalTasks/perforce.html
+++ /dev/null
@@ -1,508 +0,0 @@
-<html>
-<head>
-<title>Perforce Tasks for ANT</title>
-</head>
-<body>
-<h1>Perforce Tasks User Manual</h1>
-<p>by</p>
-<ul>
-    <li>Les Hughes (<a href="mailto:leslie.hughes@rubus.com">leslie.hughes@rubus.com</a>)</li>
-    <li>Kirk Wylie (<a href="mailto:kirk@radik.com">kirk@radik.com</a>)</li>
-</ul>
-<p>Version 1.1 - 2001/01/09</p>
-<hr>
-<h2>Contents</h2>
-<ul>
-    <li><a href="#intro">Introduction</a></li>
-    <li><a href="#tasks">The Tasks</a></li>
-    <li><a href="#changes">Change History</a></li>
-</ul>
-<br>
-<h2><a name="intro">Introduction</a></h2>
-<p>These tasks provide an interface to the <a href="http://www.perforce.com" target="_top">Perforce</a> SCM.
-The <code>org.apache.tools.ant.taskdefs.optional.perforce</code> package consists of a simple framework to support 
-p4 functionality as well as some Ant tasks encapsulating frequently used (by me :-) p4 commands. 
-However, the addition of new p4 commands is a pretty simple task (see the source). 
-Although it is possible to use these commands on the desktop, 
-they were primarily intended to be used by automated build systems.</p>
-
-<p><b>Note:</b> These tasks require the <a href="http://jakarta.apache.org/oro" target="_top">oro 2.0.XXX</a> regular
-expression package. Simply download this package and copy the jakarta-oro-2.0.XXX.jar file into Ant's lib directory.
-You will also need the Perforce client executable (p4 or p4.exe but not p4win.exe) in your path.
-</p>
-
-
-
-<h2><a name="tasks">The Tasks</a></h2>
-
-<table border="0" cellspacing="0" cellpadding="3">
-    <tr>
-        <td><a href="#p4sync">P4Sync</a></td>
-        <td>Synchronise a workspace to a depot</td>
-    </tr>
-    <tr>
-        <td><a href="#p4change">P4Change</a></td>
-        <td>Request a new changelist from the Perforce server</td>
-    </tr>
-    <tr>
-        <td><a href="#p4edit">P4Edit</a></td>
-        <td>Open files for edit (checkout)</td>
-    </tr>
-    <tr>
-        <td><a href="#p4submit">P4Submit</a></td>
-        <td>Submit a changelist to the Perforce server (checkin)</td>
-    </tr>
-    <tr>
-        <td><a href="#p4have">P4Have</a></td>
-        <td>List current files in client view, useful for reporting</td>
-    </tr>
-    <tr>
-        <td><a href="#p4label">P4Label</a></td>
-        <td>Create a label reflecting files in the current workspace</td>
-    </tr>
-    <tr>
-        <td><a href="#p4counter">P4Counter</a></td>
-        <td>Obtain or set the value of a counter</td>
-    </tr>
-	    <tr>
-        <td><a href="#p4reopen">P4Reopen</a></td>
-        <td>Move files between changelists</td>
-    </tr>
-
-	    <tr>
-        <td><a href="#p4revert">P4Revert</a></td>
-        <td>Revert files</td>
-    </tr>
-
-</table>
-
-<h3>General P4 Properties</h3>
-<p>Each p4 task requires a number of settings, either through build-wide properties, individual attributes 
-or environment variables. These are
-</p>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Property</b></td>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Env Var</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Default</b></td>
-  </tr>
-  <tr>
-    <td valign="top">p4.port</td>
-    <td valign="top">port</td>
-    <td valign="top">P4PORT</td>
-    <td valign="top">The p4d server and port to connect to</td>
-    <td valign="top">perforce:1666</td>
-  </tr>
-  <tr>
-    <td valign="top">p4.client</td>
-    <td valign="top">client</td>
-    <td valign="top">P4CLIENT</td>
-    <td valign="top">The p4 client spec to use</td>
-    <td valign="top">The logged in username</td>
-  </tr>
-  <tr>
-    <td valign="top">p4.user</td>
-    <td valign="top">user</td>
-    <td valign="top">P4USER</td>
-    <td valign="top">The p4 username</td>
-    <td valign="top">The logged in username</td>
-  </tr>
-<tr>
-    <td valign="top" align="center">--</td>
-    <td valign="top">view</td>
-    <td valign="top" align="center">--</td>
-    <td valign="top">The client, branch or label view to operate upon. See the p4 user guide for more info.</td>
-    <td valign="top">//...</td>
-  </tr>
-
-</table>
-<p>
-Your local installation of Perforce may require other settings (e.g. P4PASSWD, P4CONFIG). At the moment, these can only be set outside of Ant, as environment variables.
-</p>
-
-<h3>Examples</h3>
-<p>Setting in the environment:-</p>
-<p>
-(Unix csh)</p>
-<pre>setenv P4PORT myperforcebox:1666</pre>
-<p>(Unix sh et al)</p>
-<pre>P4USER=myp4userid; export P4USER</pre>
-<p>Using build properties:-</p>
-<pre>&lt;property name=&quot;p4.client&quot; value=&quot;nightlybuild&quot;/&gt;</pre>
-<p>Using task attributes:-</p>
-<pre>
-&lt;p4Whatever
-	port=&quot;myserver:1666&quot;
-	client=&quot;smoketest&quot;
-	user=&quot;smoketestdude&quot;
-	.
-	.
-	.
-/&gt;
-</pre>
-
-<p>
-For more information regarding the underlying 'p4' commands you are referred to the Perforce Command Reference
-available from the <a href="http://www.perforce.com/" target="_top">Perforce website</a>.
-</p>
-
-<h3>Taskdefs</h3>
-<p>Standard taskdefs (for you to copy'n'paste)</p>
-<pre>
-    &lt;taskdef name=&quot;p4sync&quot; classname=&quot;org.apache.tools.ant.taskdefs.optional.perforce.P4Sync&quot; /&gt;
-    &lt;taskdef name=&quot;p4change&quot; classname=&quot;org.apache.tools.ant.taskdefs.optional.perforce.P4Change&quot; /&gt;
-    &lt;taskdef name=&quot;p4edit&quot; classname=&quot;org.apache.tools.ant.taskdefs.optional.perforce.P4Edit&quot; /&gt;
-    &lt;taskdef name=&quot;p4submit&quot; classname=&quot;org.apache.tools.ant.taskdefs.optional.perforce.P4Submit&quot; /&gt;
-    &lt;taskdef name=&quot;p4have&quot; classname=&quot;org.apache.tools.ant.taskdefs.optional.perforce.P4Have&quot; /&gt;
-    &lt;taskdef name=&quot;p4label&quot; classname=&quot;org.apache.tools.ant.taskdefs.optional.perforce.P4Label&quot; /&gt;
-    &lt;taskdef name=&quot;p4counter&quot; classname=&quot;org.apache.tools.ant.taskdefs.optional.perforce.P4Counter&quot; /&gt;
-	&lt;taskdef name=&quot;p4reopen&quot; classname=&quot;org.apache.tools.ant.taskdefs.optional.perforce.P4Reopen&quot; /&gt;
-	&lt;taskdef name=&quot;p4revert&quot; classname=&quot;org.apache.tools.ant.taskdefs.optional.perforce.P4Revert&quot; /&gt;
-</pre>
-
-<hr>
-<h2>Task Descriptions</h2>
-<h2><a name="p4sync">P4Sync</a></h2>
-<h3>Description:</h3>
-<p>Synchronize the current workspace with the depot.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">force</td>
-    <td valign="top">force a refresh of files</td>
-    <td valign="top" align="center">no</td>
-  </tr>
-<tr>
-    <td valign="top">label</td>
-    <td valign="top">sync client to label</td>
-    <td valign="top" align="center">no</td>
-  </tr>
-</table>
-
-<h3>Examples</h3>
-<pre>&lt;p4sync label=&quot;nightlybuild-0.0123&quot; force=&quot;yes&quot; /&gt;
-&lt;p4sync view=&quot;//depot/projects/projectfoo/main/src/...&quot; /&gt;
-</pre>
-<hr>
-
-
-
-<h2><a name="p4change">P4Change</a></h2>
-<h3>Description:</h3>
-<p>Request a new changelist from the Perforce server. 
-This task sets the ${p4.change} property which can then be passed to P4Submit or P4Edit.
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">description</td>
-    <td valign="top">Description for ChangeList. If none specified, it will
-                     default to "AutoSubmit By Ant"</td>
-    <td valign="top" align="center">No.</td>
-  </tr>
-</table>
-
-<h3>Examples</h3>
-<pre>&lt;p4change description="Change Build Number in Script"&gt;
-</pre>
-<hr>
-
-
-
-
-<h2><a name="p4edit">P4Edit</a></h2>
-<h3>Description:</h3>
-<p>Open file(s) for edit. P4Change should be used to obtain a new changelist for P4Edit as,
-although P4Edit can open files to the default change,  P4Submit cannot yet submit it.
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">view</td>
-    <td valign="top">The filespec to request to edit</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">change</td>
-    <td valign="top">An existing changelist number to assign files to.</td>
-    <td valign="top" align="center">No, but see above.</td>
-  </tr>
-
-</table>
-
-<h3>Examples</h3>
-<pre>
-&lt;p4edit
-	view=&quot;//depot/projects/projectfoo/main/src/Blah.java...&quot;
-	change=&quot;${p4.change}&quot; /&gt;
-</pre>
-<hr>
-
-
-
-
-<h2><a name="p4submit">P4Submit</a></h2>
-<h3>Description:</h3>
-<p>Submit a changelist, usually obtained from P4Change.
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">change</td>
-    <td valign="top">The changelist number to submit</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-</table>
-
-<h3>Examples</h3>
-<pre>&lt;p4submit change=&quot;${p4.change}&quot; /&gt;
-</pre>
-<hr>
-
-
-
-
-<h2><a name="p4have">P4Have</a></h2>
-<h3>Description:</h3>
-<p>List handy file info reflecting the current client contents.
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">None</td>
-    <td valign="top" align="center">--</td>
-    <td valign="top" align="center">--</td>
-  </tr>
-</table>
-
-<h3>Examples</h3>
-<pre>&lt;p4have /&gt;
-</pre>
-<hr>
-
-
-
-
-<h2><a name="p4label">P4Label</a></h2>
-<h3>Description:</h3>
-<p>Create a new label and set contents to reflect current client file revisions.
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">name</td>
-    <td valign="top">The name of the label</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">view</td>
-    <td valign="top">client view to use for label</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">desc</td>
-    <td valign="top">Label Description</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">lock</td>
-    <td valign="top">Lock the label once created.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-
-
-</table>
-<h3>Examples</h3>
-<pre>
-&lt;p4label
-	name=&quot;NightlyBuild:${DSTAMP}:${TSTAMP}&quot; 
-	desc=&quot;Auto Nightly Build&quot;
-	lock=&quot;locked&quot;
-/&gt;
-</pre>
-<hr>
-
-
-<h2><a name="p4counter">P4Counter</a></h2>
-<h3>Description:</h3>
-<p>
-Obtain or set the value of a counter. When used in its base form
-(where only the counter name is provided), the counter value will be
-printed to the output stream. When the value is provided, the counter
-will be set to the value provided. When a property name is provided,
-the property will be filled with the value of the counter. You may
-not specify to both get and set the value of the counter in the same
-Task.
-</p>
-<P>
-The user performing this task must have Perforce &quot;review&quot; permissions
-as defined by Perforce protections in order for this task to succeed.
-</P>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">name</td>
-    <td valign="top">The name of the counter</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">value</td>
-    <td valign="top">The new value for the counter</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">property</td>
-    <td valign="top">The property to be set with the value of the counter</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-
-<h3>Examples</h3>
-Print the value of the counter named &quot;last-clean-build&quot; to the output stream:
-<pre>
-&lt;p4counter name=&quot;last-clean-build&quot; /&gt;
-</PRE>
-Set the value of the counter based on the value of the &quot;TSTAMP&quot; property:
-<PRE>
-&lt;p4counter name=&quot;last-clean-build&quot; value=&quot;${TSTAMP}&quot; /&gt;
-</PRE>
-Set the value of the &quot;p4.last.clean.build&quot; property to the current
-value of the &quot;last-clean-build&quot; counter:
-<PRE>
-&lt;p4counter name=&quot;last-clean-build&quot; property=&quot;${p4.last.clean.build}&quot; /&gt;
-</pre>
-<hr>
-
-
-
-
-<h2><a name="p4reopen">P4Reopen</a></h2>
-<h3>Description:</h3>
-<p>
-Move (or reopen in Perforce speak) checkout files between changelists.
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">tochange</td>
-    <td valign="top">The changelist to move files to.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-</table>
-
-<h3>Examples</h3>
-Move all open files to the default changelist
-<pre>
-&lt;p4reopen view=&quot;//...&quot; tochange=&quot;default&quot; /&gt;
-</PRE>
-Create a new changelist then reopen into it, any files from the view //projects/foo/main/...
-<PRE>
-&lt;p4change description="Move files out of the way" /&gt;
-&lt;p4reopen view=&quot;//projects/foo/main/...&quot; tochange=&quot;${p4.change}&quot; /&gt;
-</pre>
-<hr>
-
-
-
-<h2><a name="p4revert">P4Revert</a></h2>
-<h3>Description:</h3>
-<p>
-Reverts files.
-</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">change</td>
-    <td valign="top">The changelist to revert.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">revertOnlyUnchanged</td>
-    <td valign="top">Revert only unchanged files (p4 revert -a)</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  
-</table>
-
-<h3>Examples</h3>
-Revert everything!
-<pre>
-&lt;p4revert view=&quot;//...&quot; /&gt;
-</PRE>
-Revert any unchanged files in the default change
-<PRE>
-&lt;p4revert change="default" revertonlyunchanged=&quot;true&quot; /&gt;
-</pre>
-<hr>
-
-
-
-<h2><a name="changes">Change History</a></h2>
-<table border="1" cellpadding="2" cellspacing="0">
-<tr>
-    <td valign="top">Sept 2000</td>
-    <td valign="top" align="center">--</td>
-    <td valign="top">Internal Release within Rubus</td>
-</tr>
-
-<tr>
-    <td valign="top">Nov 2000</td>
-    <td valign="top">V1.0</td>
-    <td valign="top">Initial Release donated to ASF :-)</td>
-</tr>
-<tr>
-    <td valign="top">Jan 2001</td>
-    <td valign="top">V1.1</td>
-    <td valign="top">fixed cross platform (NT/Unix) bug<br>refactored p4 output handling code<br>refactored exec'ing code</td>
-</tr>
-</table>
-</body>
-</html>
diff --git a/docs/manual/OptionalTasks/propertyfile.html b/docs/manual/OptionalTasks/propertyfile.html
deleted file mode 100644
index 786f37f..0000000
--- a/docs/manual/OptionalTasks/propertyfile.html
+++ /dev/null
@@ -1,156 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant PropertyFile Task</title>
-
-</head>
-
-<body>
-
-<h1>Ant PropertyFile Task User Manual</h1>
-<p>by</p>
-<!-- Names are in alphabetical order, on last name -->
-<ul>
-  <li>Thomas Christen (<a href="mailto:chr@active.ch">chr@active.ch</a>)</li>
-  <li>Jeremy Mawson (<a href="mailto:jem@loftinspace.com.au">jem@loftinspace.com/au</a>)</li>
-</ul>
-
-<p>Version 1.1 - 2001/01/28</p>
-<hr>
-<h2>Table of Contents</h2>
-<ul>
-  <li><a href="#introduction">Introduction</a></li>
-  <li><a href="#proptask">PropertyFile Task</a></li>
-  <li><a href="#entryElement">Entry Task</a></li>
-</ul>
-
-<hr>
-<h2><a name="introduction">Introduction</a></h2>
-<p>Ant provides an optional task for editing property files.  This is very useful
-when wanting to make unattended modifications to configuration files for application
-servers and applications.  Currently, the task maintains a working property file with
-the ability to add properties or make changes to existing ones.  However, any comments
-are lost.  Work is being done to make this task a bit more &quot;human friendly&quot;.</p>
-
-<hr>
-<h2><a name="proptask">PropertyFile Task</a></h2>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-<tr>
-  <td width="12%" valign="top"><b>Attribute</b></td>
-  <td width="78%" valign="top"><b>Description</b></td>
-  <td width="10%" valign="top"><b>Required</b></td>
-</tr>
-<tr>
-  <td width="12%" valign="top">file</td>
-  <td width="78%" valign="top">Location of the property file to be edited</td>
-  <td width="10%" valign="top">Yes</td>
-</tr>
-<tr>
-  <td width="12%" valign="top">comment</td>
-  <td width="78%" valign="top">Header for the file itself</td>
-  <td width="10%" valign="top">no</td>
-</tr>
-</table>
-
-<h3>Parameters specified as nested elements</h3>
-<h4><a name="entryElement">Entry</a></h4>
-<p>Use nested <code>&lt;entry&gt;</code>
-elements to specify actual modifcations to the property file itself</p>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">key</td>
-    <td valign="top">Name of the property name/value pair</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">value</td>
-    <td valign="top">Value to set (=), to add (+) or subtract (-)</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">type</td>
-    <td valign="top">Regard the value as : int, date or string (default)</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">operation</td>
-    <td valign="top">&quot;+&quot; or &quot;=&quot; (default) for all datatypes<br>&quot;-&quot; (for date and int only).<br>
-    </td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">default</td>
-    <td valign="top">Initial value to set for a property if it is not
-                     already defined in the property file.<br>
-                     For type date, two additional keywords are allowed: &quot;now&quot; or &quot;never&quot;.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">pattern</td>
-    <td valign="top">For int and date type only. If present, Values will
-                     be parsed and formatted accordingly.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-
-<p>The following changes the my.properties file.  Assume my.properties look like:</p>
-
-<pre># A comment
-akey=novalue</pre>
-
-<p>After running, the file would now look like
-</p>
-<pre>#Thu Nov 02 23:41:47 EST 2000
-akey=avalue
-adate=2000/11/02 23\:41
-anint=1
-formated.int=0014
-formated.date=028 17\:34
-</pre>
-<p>
-The slashes conform to the expectations of the Properties class.  The file will be stored in a manner so that each character is examined and escaped if necessary.  Note that the original comment is now lost.  Please keep this in mind when running this task against heavily commented properties files.  It may be best to have a commented version in the source tree, copy it to a deployment area, and then run the modifications on the copy.  Future versions of PropertyFile will hopefully eliminate this shortcoming.
-</p>
-
-<blockquote><pre>&lt;propertyfile
-    file=&quot;my.properties&quot;
-    comment&quot;My properties&quot; &gt;
-  &lt;entry  key=&quot;akey&quot; value=&quot;avalue&quot; /&gt;
-  &lt;entry  key=&quot;adate&quot; type=&quot;date&quot; value=&quot;now&quot;/&gt;
-  &lt;entry  key=&quot;anint&quot; type=&quot;int&quot; operation=&quot;+&quot;/&gt;
-  &lt;entry  key=&quot;formated.int&quot; type=&quot;int&quot; default=&quot;0013&quot; operation=&quot;+&quot; pattern=&quot;0000&quot;/&gt;
-  &lt;entry  key=&quot;formated.date&quot; type=&quot;date&quot; value=&quot;now&quot; pattern=&quot;DDD HH:mm&quot;/&gt;
-&lt;/propertyfile&gt;
-</pre></blockquote>
-<p>
-To produce dates relative from today :</p>
-<blockquote><pre>&lt;propertyfile
-    file=&quot;my.properties&quot;
-    comment=&quot;My properties&quot; &gt;
-  &lt;entry  key=&quot;formated.date-1&quot;
-      type=&quot;date&quot; default=&quot;now&quot; pattern=&quot;DDD&quot;
-      operation=&quot;-&quot; value=&quot;1&quot;/&gt;
-  &lt;entry  key=&quot;formated.tomorrow&quot;
-      type=&quot;date&quot; default=&quot;now&quot; pattern=&quot;DDD&quot;
-      operation=&quot;+&quot; value=&quot;1&quot;/&gt;
-&lt;/propertyfile&gt;
-</pre></blockquote>
-
-<p>
-Concatenation of strings :</p>
-<blockquote><pre>&lt;propertyfile
-    file=&quot;my.properties&quot;
-    comment=&quot;My properties&quot; &gt;
-  &lt;entry  key=&quot;progress&quot; default=&quot;&quot; operation=&quot;+&quot; value=&quot;.&quot;/&gt;
-&lt;/propertyfile&gt;
-</pre></blockquote>
-<p>Each time called, a &quot;.&quot; will be appended to &quot;progress&quot;
-</p>
-</body>
-</html>
diff --git a/docs/manual/OptionalTasks/pvcstask.html b/docs/manual/OptionalTasks/pvcstask.html
deleted file mode 100644
index 3cddbfa..0000000
--- a/docs/manual/OptionalTasks/pvcstask.html
+++ /dev/null
@@ -1,249 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta http-equiv="Content-Language" content="en-us">
-   <title>PVCS task</title>
-</head>
-<body>
-
-<h1>
-Ant Pvcs Task User Manual</h1>
-by
-<br><!-- Names are in alphabetical order, on last name -->
-<ul>
-  <li>Thomas Christensen (<a href="mailto:tchristensen@nordija.com">tchristensen@nordija.com</a>)</li>
-  <li>Don Jeffery (<a href="mailto:donj@apogeenet.com">donj@apogeenet.com</a>)</li>
-</ul>
-Version 1.1 - 2001/06/27<br>
-<p>Problems with UNC pathnames and the use of () in paths are fixed and an updateonly 
-  argument introduced.</p>
-Version 1.0 - 2001/01/31<br>
-<p>Initial release.</p>
-<hr>
-<h2>
-Table of Contents</h2>
-
-<ul>
-<li>
-<a href="#introduction">Introduction</a></li>
-
-<li>
-<a href="#configuretask">Pvcs Task</a></li>
-
-<br>
-<hr>
-<h2>
-<a NAME="introduction"></a>Introduction</h2>
-The &lt;pvcs> task allows the user of ant to extract the latest edition
-of the source code from a PVCS repository. PVCS is a version control system
-developed by <a href="http://www.merant.com/products/pvcs">Merant</a>.
-<br>
-Before using this tag, the user running ant must have access to the commands 
-of PVCS (get and pcli) and must have access to the repository. Note that the way to specify
-the repository is platform dependent so use property to specify location of repository.
-<br>
-This version has been tested agains PVCS version 6.5 and 6.6 under Windows and Solaris.
-<br>
-<hr>
-<h2>
-<a NAME="pvcs"></a>Pvcs Task</h2>
-
-<h3>
-Description</h3>
-The pvcs task is set to point at a PVCS repository and optionally a project
-within that repository, and can from that specification get the latest
-version of the files contained by the repository.
-<h3>
-Parameters</h3>
-
-<table BORDER CELLSPACING=0 CELLPADDING=2 >
-<tr>
-<td VALIGN=TOP WIDTH="12%"><b>Attribute</b></td>
-
-<td VALIGN=TOP WIDTH="78%"><b>Description</b></td>
-
-<td VALIGN=TOP WIDTH="10%"><b>Required</b></td>
-</tr>
-
-<tr>
-<td VALIGN=TOP WIDTH="12%">repository</td>
-
-<td VALIGN=TOP WIDTH="78%">The location of the repository (see your PVCS
-manuals)</td>
-
-<td VALIGN=TOP WIDTH="10%">Yes</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP WIDTH="12%">pvcsproject</td>
-
-<td VALIGN=TOP WIDTH="78%">The project within the PVCS repository to extract
-files from ("/" is root project and that is default if this attribute isn't
-specified)</td>
-
-<td VALIGN=TOP WIDTH="10%">No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP WIDTH="12%">label</td>
-
-<td VALIGN=TOP WIDTH="78%">Only files marked with this label are extracted.</td>
-
-<td VALIGN=TOP WIDTH="10%">No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP WIDTH="12%">promotiongroup</td>
-
-<td VALIGN=TOP WIDTH="78%">Only files within this promotion group are extracted. Using 
-both the <i>label</i> and the <i>promotiongroup</i> tag will cause the files in the 
-promotion group and with that label to be extracted.
-</td>
-
-<td VALIGN=TOP WIDTH="10%">No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP WIDTH="12%">force</td>
-
-<td VALIGN=TOP WIDTH="78%">If set to <i>yes</i> all files that exists and are writable are overwritten. Default <i>no</i> causes the files that are writable to be ignored. This stops the PVCS command <i>get</i> to stop asking questions!</td>
-
-<td VALIGN=TOP WIDTH="10%">No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP WIDTH="12%">workspace</td>
-
-<td VALIGN=TOP WIDTH="78%">By specifying a workspace, the files are extracted to that location. A PVCS workspace is a
-name for a location of the workfiles and isn't as such the location itself. You define the location for a workspace
-using the PVCS GUI clients. If this isn't specified the default workspace for the current user is used.</td>
-
-<td VALIGN=TOP WIDTH="10%">No</td>
-</tr>
-
-<tr>
-<td VALIGN=TOP WIDTH="12%">pvcsbin</td>
-
-<td VALIGN=TOP WIDTH="78%">On some systems the PVCS executables <i>pcli</i>
-and <i>get</i> are not found in the PATH. In such cases this attribute
-should be set to the bin directory of the PVCS installation containing
-the executables mentioned before. If this attribute isn't specified the
-tag expects the executables to be found using the PATH environment variable.</td>
-
-<td VALIGN=TOP WIDTH="10%">No</td>
-</tr>
-    <tr> 
-      <td VALIGN=TOP WIDTH="12%">ignorereturncode</td>
-      <td VALIGN=TOP WIDTH="78%">If set to <i>true</i> the return value from executing 
-        the pvcs commands are ignored.</td>
-      <td VALIGN=TOP WIDTH="10%">No</td>
-    </tr>
-    <tr> 
-      <td VALIGN=TOP WIDTH="12%">updateonly</td>
-      <td VALIGN=TOP WIDTH="78%">If set to <i>true</i> files are gotten only if 
-        newer than existing local files.</td>
-      <td VALIGN=TOP WIDTH="10%">No</td>
-    </tr>
-</table>
-<h3><a name="nested">Nested Elements</a></h3>
-
-<h3>pvcsproject element</h3>
-<p><code>pvcs</code> supports a nested
-<code>&lt;pvcsproject&gt;</code> element, that represents a project
-within the PVCS repository to extract files from.  By nesting multiple
-<code>&lt;pvcsproject&gt;</code> elements under the
-<code>&lt;pvcs&gt;</code> task, multiple projects can be
-specified.</p>
-
-<h3>Parameters</h3>
-
-<table BORDER CELLSPACING=0 CELLPADDING=2 >
-<tr>
-<td VALIGN=TOP WIDTH="12%"><b>Attribute</b></td>
-
-<td VALIGN=TOP WIDTH="78%"><b>Description</b></td>
-
-<td VALIGN=TOP WIDTH="10%"><b>Required</b></td>
-</tr>
-
-<tr>
-<td VALIGN=TOP WIDTH="12%">name</td>
-
-<td VALIGN=TOP WIDTH="78%">The name of the pvcs project</td>
-
-<td VALIGN=TOP WIDTH="10%">Yes</td>
-</tr>
-</table>
-
-<h3>
-Examples</h3>
-The following set-up extracts the latest version of the files in the pvcs
-repository.
-<ul>&nbsp;&nbsp;&nbsp; &lt;!-- ===================================================================
--->
-<br>&nbsp;&nbsp;&nbsp; &lt;!-- Get the latest version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
--->
-<br>&nbsp;&nbsp;&nbsp; &lt;!-- ===================================================================
--->
-<br>&nbsp;&nbsp;&nbsp; &lt;target name="getlatest">
-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt; pvcs repository="/mnt/pvcs"
-pvcsproject="/myprj"/>
-<br>&nbsp;&nbsp;&nbsp; &lt;/target></ul>
-Now run:
-<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ant getlatest
-<p>This will cause the following output to appear:
-<pre>&nbsp;&nbsp;&nbsp; getlatest:
-&nbsp;&nbsp;&nbsp;&nbsp; [pvcs] PVCS Version Manager (VMGUI) v6.6.10 (Build 870) for Windows NT/80x86
-&nbsp;&nbsp;&nbsp;&nbsp; [pvcs] Copyright 1985-2000 MERANT.&nbsp; All rights reserved.
-&nbsp;&nbsp;&nbsp;&nbsp; [pvcs] PVCS Version Manager (get) v6.6.10 (Build 870) for Windows NT/80x86
-&nbsp;&nbsp;&nbsp;&nbsp; [pvcs] Copyright 1985-2000 MERANT.&nbsp; All rights reserved.
-&nbsp;&nbsp;&nbsp;&nbsp; [pvcs] c:\myws\myprj\main.java &lt;- C:\mypvcs\archives\myprj\main.java-arc
-&nbsp;&nbsp;&nbsp;&nbsp; [pvcs] rev 1.1
-&nbsp;&nbsp;&nbsp;&nbsp; [pvcs] c:\myws\myprj\apache\tool.java &lt;- C:\mypvcs\archives\myprj\apache\tools.java-arc
-&nbsp;&nbsp;&nbsp;&nbsp; [pvcs] rev 1.5
-
-&nbsp;&nbsp;&nbsp; BUILD SUCCESSFUL
-
-&nbsp;&nbsp;&nbsp; Total time: 19 seconds</pre>
-
-This next example extracts the latest version of the files in the pvcs
-repository from two projects using nested &lt;pvcsproject&gt; elements.
-<ul>&nbsp;&nbsp;&nbsp; &lt;!-- ===================================================================
--->
-<br>&nbsp;&nbsp;&nbsp; &lt;!-- Get latest from myprj and myprj2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
--->
-<br>&nbsp;&nbsp;&nbsp; &lt;!-- ===================================================================
--->
-<br>&nbsp;&nbsp;&nbsp; &lt;target name="getlatest2">
-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;pvcs repository="/mnt/pvcs">
-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;pvcsproject name="/myprj" />
-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;pvcsproject name="/myprj2" />
-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/pvcs>
-<br>&nbsp;&nbsp;&nbsp; &lt;/target></ul>
-Now run:
-<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ant getlatest2
-<p>This will cause the following output to appear:
-<pre>&nbsp;&nbsp;&nbsp; getlatest2:
-&nbsp;&nbsp;&nbsp;&nbsp; [pvcs] PVCS Version Manager (VMGUI) v6.6.10 (Build 870) for Windows NT/80x86
-&nbsp;&nbsp;&nbsp;&nbsp; [pvcs] Copyright 1985-2000 MERANT.&nbsp; All rights reserved.
-&nbsp;&nbsp;&nbsp;&nbsp; [pvcs] PVCS Version Manager (get) v6.6.10 (Build 870) for Windows NT/80x86
-&nbsp;&nbsp;&nbsp;&nbsp; [pvcs] Copyright 1985-2000 MERANT.&nbsp; All rights reserved.
-&nbsp;&nbsp;&nbsp;&nbsp; [pvcs] c:\myws\myprj\main.java &lt;- C:\mypvcs\archives\myprj\main.java-arc
-&nbsp;&nbsp;&nbsp;&nbsp; [pvcs] rev 1.1
-&nbsp;&nbsp;&nbsp;&nbsp; [pvcs] c:\myws\myprj\apache\tool.java &lt;- C:\mypvcs\archives\myprj\apache\tool.java-arc
-&nbsp;&nbsp;&nbsp;&nbsp; [pvcs] rev 1.5
-&nbsp;&nbsp;&nbsp;&nbsp; [pvcs] c:\myws\myprj2\apache\tool2.java &lt;- C:\mypvcs\archives\myprj2\apache\tool2.java-arc
-&nbsp;&nbsp;&nbsp;&nbsp; [pvcs] rev 1.2
-
-&nbsp;&nbsp;&nbsp; BUILD SUCCESSFUL
-
-&nbsp;&nbsp;&nbsp; Total time: 22 seconds</pre>
-
-<pre>
-</pre>
-
-<hr WIDTH="100%"></ul>
-PVCS is a registered trademark of MERANT.
-</body>
-</html>
diff --git a/docs/manual/OptionalTasks/renameextensions.html b/docs/manual/OptionalTasks/renameextensions.html
deleted file mode 100644
index 430b311..0000000
--- a/docs/manual/OptionalTasks/renameextensions.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="renameexts">RenameExtensions</a></h2>
-<h3><i>Deprecated</i></h3>
-<p><i>This task has been deprecated.  Use the <a href="../CoreTasks/move.html">move</a>
-task with a <a href="../CoreTypes/mapper.html#glob-mapper">glob mapper</a> instead.</i></p>
-<h3>Description</h3>
-<p>Renames files in the <code>srcDir</code> directory ending with the
-<code>fromExtension</code> string so that they end with the 
-<code>toExtension</code> string. Files are only replaced if 
-<code>replace</code> is true
-</p>
-<p>See the section on 
-<a href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
-inclusion/exclusion of files works, and how to write patterns. 
-This task forms an implicit <a href="../CoreTypes/fileset.html">FileSet</a> and
-supports all attributes of <code>&lt;fileset&gt;</code>
-(<code>dir</code> becomes <code>srcDir</code>) as well as the nested
-<code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
-<code>&lt;patternset&gt;</code> elements.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">defaultexcludes</td>
-    <td valign="top">indicates whether default excludes should be used or not
-      (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when
-      omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      excluded. No files (except default excludes) are excluded when
-      omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">excludesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an exclude pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">fromExtention</td>
-    <td valign="top">The string that files must end in to be renamed</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">comma separated list of patterns of files that must be
-      included. All files are included when omitted.</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">includesfile</td>
-    <td valign="top">the name of a file. Each line of this file is
-      taken to be an include pattern</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">replace</td>
-    <td valign="top">Whether the file being renamed to should be
-      replaced if it already exists</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">srcDir</td>
-    <td valign="top">The starting directory for files to search in</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">toExtension</td>
-    <td valign="top">The string that renamed files will end with on
-      completion</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-  <p><code>&lt;renameext srcDir=&quot;/source/project1&quot;
-              includes=&quot;**&quot;
-              excludes=&quot;**/samples/*&quot;
-              fromExtension=&quot;.java.keep&quot;
-              toExtension=&quot;.java&quot;
-              replace=&quot;true&quot;/&gt;
-</code>
-  </p>
-</blockquote>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/OptionalTasks/rpm.html b/docs/manual/OptionalTasks/rpm.html
deleted file mode 100644
index 7bcfa85..0000000
--- a/docs/manual/OptionalTasks/rpm.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<html>
-
-<head>
-<title>Rpm Task</title>
-</head>
-
-<body>
-
-<h2><a name="rpm">Rpm</a></h2>
-<h3>Description</h3>
-<p>
-  A basic task for invoking the rpm executable to build a linux installation
-  file. The task currently only works on Linux.
-</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">specFile</td>
-    <td valign="top">The name of the spec File to be used.</td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">topDir</td>
-    <td valign="top">
-      this is the directory which will have the expected
-      subdirectories, SPECS, SOURCES, BUILD, SRPMS.  If this isn't specified,
-      the baseDir value is used
-    </td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">cleanBuildDir</td>
-    <td valign="top">his will remove the generated files in the BUILD
-directory.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">removeSpec</td>
-    <td valign="top">this will remove the spec file from SPECS</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">command</td>
-    <td valign="top">very similar idea to the cvs task.  the default is "-bb"</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">output/error</td>
-    <td valign="top">where standard output and error go</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<hr>
-
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/OptionalTasks/script.html b/docs/manual/OptionalTasks/script.html
deleted file mode 100644
index fdb8a26..0000000
--- a/docs/manual/OptionalTasks/script.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="script">Script</a></h2>
-<h3>Description</h3>
-<p>Execute a script in a 
-  <a href="http://oss.software.ibm.com/developerworks/opensource/bsf/" target="_top">BSF</a> supported language.</p>
-<p>All items (tasks, targets, etc) of the running project are
-accessible from the script, using either their <code>name</code> or
-<code>id</code> attributes.</p>
-<p>Scripts can do almost anything a task written in Java could do.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">language</td>
-    <td valign="top">The programming language the script is written in.
-      Must be a supported BSF language</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">src</td>
-    <td valign="top">The location of the script as a file, if not inline</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote><pre>
-&lt;project name=&quot;squares&quot; default=&quot;main&quot; basedir=&quot;.&quot;&gt;
-
-  &lt;target name=&quot;setup&quot;&gt;
-
-    &lt;script language=&quot;javascript&quot;&gt; &lt;![CDATA[
-
-      for (i=1; i&lt;=10; i++) {
-        echo = squares.createTask(&quot;echo&quot;);
-        main.addTask(echo);
-        echo.setMessage(i*i);
-      }
-
-    ]]&gt; &lt;/script&gt;
-
-  &lt;/target&gt;
-
-  &lt;target name=&quot;main&quot; depends=&quot;setup&quot;/&gt;
-
-&lt;/project&gt;
-</pre></blockquote>
-<p>generates</p>
-<blockquote><pre>
-setup:
-
-main:
-1
-4
-9
-16
-25
-36
-49
-64
-81
-100
-
-BUILD SUCCESSFUL
-</pre></blockquote>
-<p>Another example, using <a href="../using.html#references">references by id</a>
-and two different scripting languages:</p>
-<blockquote><pre>
-&lt;project name=&quot;testscript&quot; default=&quot;main&quot;&gt;
-  &lt;target name=&quot;sub&quot;&gt;
-    &lt;echo id=&quot;theEcho&quot;/&gt;
-  &lt;/target&gt;
-
-  &lt;target name=&quot;sub1&quot;&gt;
-    &lt;script language=&quot;netrexx&quot;&gt;&lt;![CDATA[
-      theEcho.setMessage(&quot;In sub1&quot;)
-      sub.execute
-    ]]&gt;&lt;/script&gt;
-  &lt;/target&gt;
-
-  &lt;target name=&quot;sub2&quot;&gt;
-    &lt;script language=&quot;javascript&quot;&gt;&lt;![CDATA[
-      theEcho.setMessage(&quot;In sub2&quot;);
-      sub.execute();
-    ]]&gt;&lt;/script&gt;
-  &lt;/target&gt;
-
-  &lt;target name=&quot;main&quot; depends=&quot;sub1,sub2&quot;/&gt;
-&lt;/project&gt;
-</pre></blockquote>
-<p>generates</p>
-<blockquote><pre>
-sub1:
-In sub1
-
-sub2:
-In sub2
-
-main:
-
-BUILD SUCCESSFUL
-</pre></blockquote>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/OptionalTasks/sound.html b/docs/manual/OptionalTasks/sound.html
deleted file mode 100644
index 1e35997..0000000
--- a/docs/manual/OptionalTasks/sound.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="sound">Sound</a></h2>
-<h3>Description</h3>
-<p>Plays a sound-file at the end of the build, according to whether
-the build failed or succeeded. You can specify either a specific
-sound-file to play, or, if a directory is specified, the
-<code>&lt;sound&gt;</code> task will randomly select a file to play.
-Note: At this point, the random selection is based on all the files
-in the directory, not just those ending in appropriate suffixes
-for sound-files, so be sure you only have sound-files in the 
-directory you specify.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">loops</td>
-    <td valign="top">the number of extra times to play the sound-file;
-      default is <code>0</code>.
-    </td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">duration</td>
-    <td valign="top">the amount of time (in milliseconds) to play
-      the sound-file.
-    </td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<p>
-To specify the sound-files or the sound-file directories, use the
-nested <code>&lt;success&gt;</code> and <code>&lt;fail&gt;</code> 
-elements:</p>
-<blockquote>
-<pre>
-&lt;success&gt;     the path to a sound-file directory, or the name of a
-              specific sound-file, to be played if the build succeeded.
-&lt;fail&gt;        the path to a sound-file directory, or the name of a
-              specific sound-file, to be played if the build succeeded.
-</pre>
-</blockquote>
-
-<h3>Examples</h3>
-<blockquote>
-<pre>
-&lt;target name=&quot;fun&quot; if=&quot;fun&quot; unless=&quot;fun.done&quot;&gt;
-  &lt;sound loops=&quot;2&quot;&gt;
-    &lt;success source=&quot;${user.home}/sounds/bell.wav&quot;/&gt;
-    &lt;fail source=&quot;${user.home}/sounds/ohno.wav&quot;/&gt;
-  &lt;/sound&gt;
-  &lt;property name=&quot;fun.done&quot; value=&quot;true&quot;/&gt;
-&lt;/target&gt;
-</pre>
-</blockquote>
-plays the <code>bell.wav</code> sound-file if the build succeeded, or
-the <code>ohno.wav</code> sound-file if the build failed, three times,
-if the <code>fun</code> property is set to <code>true</code>.
-If the target
-is a dependency of an &quot;initialization&quot; target that other
-targets depend on, the
-<code>fun.done</code> property prevents the target from being executed
-more than once.
-<blockquote>
-<pre>
-&lt;target name=&quot;fun&quot; if=&quot;fun&quot; unless=&quot;fun.done&quot;&gt;
-  &lt;sound>
-    &lt;success source=&quot;//intranet/sounds/success&quot;/&gt;
-    &lt;fail source=&quot;//intranet/sounds/failure&quot;/&gt;
-  &lt;/sound&gt;
-  &lt;property name=&quot;fun.done&quot; value=&quot;true&quot;/&gt;
-&lt;/target&gt;
-</pre>
-</blockquote>
-randomly selects a sound-file to play when the build succeeds or fails.
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/OptionalTasks/starteam.html b/docs/manual/OptionalTasks/starteam.html
deleted file mode 100644
index 7b426d3..0000000
--- a/docs/manual/OptionalTasks/starteam.html
+++ /dev/null
@@ -1,159 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-<body>
-
-<h2>Starteam</h2>
-
-<h3>Description</h3>
-
-Checks out files from a StarTeam project.
-
-<p>
-The <i>includes</i> and <i>excludes</i> attributes function differently from
-other tasks in Ant.  Multiple patters must be seperated by spaces, not
-commas.  See the examples for more information.
-
-<p>
-This program makes use of functions from the StarTeam API.  As a result
-this task is only available to licensed users of StarTeam.  You must have
-<CODE>starteam-sdk.jar</CODE> in your classpath to run this task.
-For more information about the StarTeam API and how to license it, see
-the <a href="http://www.starbase.com">StarBase</a> web site.
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">servername</td>
-    <td valign="top">The name of the StarTeam server.</td>
-    <td align="center" valign="top">yes</td>
-  </tr>
-  <tr>
-    <td valign="top">serverport</td>
-    <td valign="top">The port number of the StarTeam server.</td>
-    <td align="center" valign="top">yes</td>
-  </tr>
-  <tr>
-    <td valign="top">projectname</td>
-    <td valign="top">The name of the StarTeam project.</td>
-    <td align="center" valign="top">yes</td>
-  </tr>
-  <tr>
-    <td valign="top">viewname</td>
-    <td valign="top">The name of the view in the StarTeam project.</td>
-    <td align="center" valign="top">yes</td>
-  </tr>
-  <tr>
-    <td valign="top">username</td>
-    <td valign="top">The username of the account used to log in to the StarTeam server.</td>
-    <td align="center" valign="top">yes</td>
-  </tr>
-  <tr>
-    <td valign="top">password</td>
-    <td valign="top">The password of the account used to log in to the StarTeam server.</td>
-    <td align="center" valign="top">yes</td>
-  </tr>
-  <tr>
-    <td valign="top">targetfolder</td>
-    <td valign="top">The folder to which files are checked out.</td>
-    <td align="center" valign="top">yes</td>
-  </tr>  
-  <tr>
-    <td valign="top">foldername</td>
-    <td valign="top">The subfolder in the project from which to check out files.</td>
-    <td align="center" valign="top">no</td>
-  </tr>  
-  <tr>
-    <td valign="top">force</td>
-    <td valign="top">Overwrite existing folders if this is set to "true".  Defaults to "false".</td>
-    <td align="center" valign="top">no</td>
-  </tr>
-  <tr>
-    <td valign="top">recursion</td>
-    <td valign="top">Indicates if subfolders should be searched for files to check out.  Defaults to "true".</td>
-    <td align="center" valign="top">no</td>
-  </tr>
-  <tr>
-    <td valign="top">verbose</td>
-    <td valign="top">Provides progress information.  Defaults to "false".</td>
-    <td align="center" valign="top">no</td>
-  </tr>
-  <tr>
-    <td valign="top">includes</td>
-    <td valign="top">Only check out files that match at least one of the patterns in this list.  Patterns must be seperated by spaces.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
-    <td align="center" valign="top">no</td>
-  </tr>
-  <tr>
-    <td valign="top">excludes</td>
-    <td valign="top">Do not check out files that match at least one of the patterns in this list.  Patterns must be seperated by spaces.  Patterns in <i>excludes</i> take precedence over patterns in <i>includes</i>.</td>
-    <td align="center" valign="top">no</td>
-  </tr>
-</table>
-
-<h3>Examples</h3>
-
-<pre>
-  &lt;starteam servername="STARTEAM" 
-            serverport="49201"
-            projectname="AProject" 
-            viewname="AView"
-            username="auser"
-            password="secret"
-            targetfolder="C:\dev\buildtest\co"
-  /&gt;
-</pre>
-
-The minimum necessary to check out files out from a StarTeam server.  This will
-check out all files in the <i>AView</i> view of the <i>AProject</i> project to
-<code>C:\dev\buildtest\co</code>.
-
-<pre>
-  &lt;starteam servername="STARTEAM" 
-            serverport="49201"
-            projectname="AProject" 
-            viewname="AView"
-            username="auser"
-            password="secret"
-            targetfolder="C:\dev\buildtest\co"
-            foldername="\Dev"
-            excludes="*.bak *.old"
-            force="true"
-  /&gt;
-</pre>
-
-This will checkout all files from the <i>Dev</i> folder and below that do not
-end in <i>.bak</i> or <i>.old</i>.  The force flag will cause any existing files to be
-overwritten by the version in StarTeam.
-
-<pre>
-  &lt;starteam servername="STARTEAM" 
-            serverport="49201"
-            projectname="AProject" 
-            viewname="AView"
-            username="auser"
-            password="secret"
-            targetfolder="C:\dev\buildtest\co"
-            includes="*.htm *.html"
-            excludes="index.*"
-  /&gt;
-</pre>
-
-This is an example of overlapping <i>includes</i> and <i>excludes</i> attributes.  Because
-<i>excludes</i> takes precedence over <i>includes</i>, files named <code>index.html</code> will
-not be checked out by this command.
-
-<p>
-<hr>
-<p align="center">
-Copyright &copy; 2000,2001 Apache Software Foundation. All rights Reserved.
-</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/manual/OptionalTasks/stylebook.html b/docs/manual/OptionalTasks/stylebook.html
deleted file mode 100644
index e1d39f2..0000000
--- a/docs/manual/OptionalTasks/stylebook.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="stylebook">Stylebook</a></h2>
-<h3>Description</h3>
-<p>This executes the apache Stylebook documentation generator. 
-Unlike the commandline version of this tool, all three arguments
-are required to run stylebook.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">book</td>
-    <td valign="top">the book xml file that the documentation generation starts from
-    </td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">skindirectory</td>
-    <td valign="top">the directory that contains the stylebook skin
-    </td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">targetdirectory</td>
-    <td valign="top">the destination directory where the documentation is generated 
-    </td>
-    <td valign="top" align="center">Yes</td>
-  </tr>
-</table>
-<p>
-The user can also specify the nested &lt;classpath&gt; element which defines classpath 
-in which the task is executed.</p>
-
-<h3>Examples</h3>
-<blockquote>
-<pre>
-&lt;stylebook targetdirectory=&quot;build/docs&quot; 
-           book=&quot;src/xdocs/book.xml&quot; 
-           skindirectory=&quot;src/skins/myskin&quot;/&gt;
-</pre>
-</blockquote>
-The above will generate documentation in build/docs starting from the book 
-src/xdocs/book.xml and using the skin located in directory src/skins/myskin.
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/OptionalTasks/telnet.html b/docs/manual/OptionalTasks/telnet.html
deleted file mode 100644
index 9633777..0000000
--- a/docs/manual/OptionalTasks/telnet.html
+++ /dev/null
@@ -1,100 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="telnet">Telnet</a></h2>
-<h3>Description</h3>
-Task to automate a remote telnet session. The task uses nested &lt;read&gt; to indicate strings to wait for, and  &lt;write&gt; tags to specify text to send.  
-
-<p>If you do specify a userid and password, the system will assume a common unix prompt to wait on. This behavior can be easily over-ridden.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
-  </tr>
-  <tr>
-     <td>userid</td>
-     <td>the login id to use on the telnet server.</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>password</td>
-     <td>the login password to use on the telnet server.</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>server</td>
-     <td>the address of the remote telnet server.</td>
-     <td>Yes</td>
-  </tr>
-  <tr>
-     <td>port</td>
-     <td>the port number of the remote telnet server. Defaults to port 23.</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>initialCR</td>
-     <td>send a cr after connecting (&quot;yes&quot;). Defaults to &quot;no&quot;.</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>timeout</td>
-     <td>set a default timeout to wait for a response. Specified in seconds. Default is no timeout.</td>
-     <td>No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-A simple example of connecting to a server and running a command.  This assumes a prompt of &quot;ogin:&quot; for the userid, and a prompt of &quot;assword:&quot; for the password.
-<blockquote><pre>
-&lt;telnet userid=&quot;bob&quot; password=&quot;badpass&quot; server=&quot;localhost&quot;&gt;
-   &lt;read&gt;/home/bob&lt;/read&gt;
-   &lt;write&gt;ls&lt;/write&gt;
-   &lt;read string=&quot;/home/bob&quot;/&gt;
-&lt;/telnet&gt;
-</pre></blockquote>
-
-This task can be rewritten as:
-<blockquote><pre>
-&lt;telnet server=&quot;localhost&quot;&gt;
-   &lt;read&gt;ogin:&lt;/read&gt;
-   &lt;write&gt;bob&lt;/write&gt;
-   &lt;read&gt;assword:&lt;/read&gt;
-   &lt;write&gt;badpass&lt;/write&gt;
-   &lt;read&gt;/home/bob&lt;/read&gt;
-   &lt;write&gt;ls&lt;/write&gt;
-   &lt;read&gt;/home/bob&lt;/read&gt;
-&lt;/telnet&gt;
-</pre></blockquote>
-
-A timeout can be specified at the &lt;telnet&gt; level or at the &lt;read&gt; level. This will connect, issue a sleep command that is suppressed from displaying and wait 10 seconds before quitting.
-<blockquote><pre>
-&lt;telnet userid=&quot;bob&quot; password=&quot;badpass&quot; server=&quot;localhost&quot; timeout=&quot;20&quot;&gt;
-   &lt;read&gt;/home/bob&lt;/read&gt;
-   &lt;write echo=&quot;false&quot;&gt;sleep 15&lt;/write&gt;
-   &lt;read timeout=&quot;10&quot;&gt;/home/bob&lt;/read&gt;
-&lt;/telnet&gt;
-</pre></blockquote>
-
-The task can be used with other ports as well:
-<blockquote><pre>
-&lt;telnet port=&quot;80&quot; server=&quot;localhost&quot; timeout=&quot;20&quot;&gt;
-   &lt;read/&gt;
-   &lt;write&gt;GET / http/0.9&lt;/write&gt;
-   &lt;write/&gt;
-   &lt;read timeout=&quot;10&quot;&gt;&amp;lt;/HTML&amp;gt;&lt;/read&gt;
-&lt;/telnet&gt;
-</pre></blockquote>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/OptionalTasks/test.html b/docs/manual/OptionalTasks/test.html
deleted file mode 100644
index 880be1f..0000000
--- a/docs/manual/OptionalTasks/test.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="test">Test</a></h2>
-<h3>Description</h3>
-<p>This is a primitive task to execute a unit test in the org.apache.testlet framework.</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">showSuccess</td>
-    <td valign="top">a boolean value indicating whether tests should display a 
-    message on success
-    </td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">showBanner</td>
-    <td valign="top">a boolean value indicating whether a banner should be displayed 
-    when starting testlet engine
-    </td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">forceShowTrace</td>
-    <td valign="top">a boolean indicating that a stack trace is displayed on any failure
-    </td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">showTrace</td>
-    <td valign="top">a boolean indicating that a stack trace is displayed on 
-    error (but not normal failure)
-    </td>
-    <td valign="top" align="center">No</td>
-  </tr>
-</table>
-<p>
-The user can also specify the nested &lt;classpath&gt; element which defines classpath 
-in which the task is executed. The user also specifies a subelement per testlet executed
-which has content that specifies tasklet classname.</p>
-
-<h3>Examples</h3>
-<blockquote>
-<pre>
-&lt;test showSuccess=&quot;false&quot; showBanner=&quot;false&quot; showTrace=&quot;true&quot; forceShowTrace=&quot;true&quot;&gt;
-   &lt;classpath refid=&quot;test.classpath&quot;/&gt;
-   &lt;testlet&gt;org.foo.MyTestlet&lt;testlet/&gt;
-   &lt;testlet&gt;org.foo.MyOtherTestlet&lt;testlet/&gt;
-&lt;test/&gt;
-</pre>
-</blockquote>
-The above will run the testlets org.foo.MyTestlet and org.foo.MyOtherTestlet
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/OptionalTasks/vss.html b/docs/manual/OptionalTasks/vss.html
deleted file mode 100644
index 9c94e75..0000000
--- a/docs/manual/OptionalTasks/vss.html
+++ /dev/null
@@ -1,542 +0,0 @@
-<html>
-<head>
-<title>Microsoft Visual SourceSafe Tasks for ANT</title>
-</head>
-<body>
-<h1>Microsoft Visual SourceSafe Tasks User Manual</h1>
-<p>by</p>
-<ul>
-    <li>Craig Cottingham</li>
-    <li>Andrew Everitt</li>
-    <li>Balazs Fejes 2</li>
-    <li><a href="mailto:Glenn_Twiggs@bmc.com">Glenn_Twiggs@bmc.com</a></li>
-    <li>Martin Poeschl (<a href="mailto:mpoeschl@marmot.at">mpoeschl@marmot.at</a>)</li>
-    <li>Phillip Wells</li>
-    <li>Jon Skeet (<a href="mailto:jon.skeet@peramon.com">jon.skeet@peramon.com</a>)</li>
- </ul>
-<p>2001/04/29</p>
-<hr>
-<h2>Contents</h2>
-<ul>
-    <li><a href="#intro">Introduction</a></li>
-    <li><a href="#tasks">The Tasks</a></li>
-</ul>
-<br>
-<h2><a name="intro">Introduction</a></h2>
-<p>These tasks provide an interface to the 
-<a href="http://msdn.microsoft.com/ssafe/default.asp" target="_top">Microsoft Visual SourceSafe</a> SCM.
-The <code>org.apache.tools.ant.taskdefs.optional.vss</code> package consists of a simple framework to support 
-vss functionality as well as some Ant tasks encapsulating frequently used vss commands. 
-Although it is possible to use these commands on the desktop, 
-they were primarily intended to be used by automated build systems.</p>
-
-<h2><a name="tasks">The Tasks</a></h2>
-
-<table border="0" cellspacing="0" cellpadding="3">
-    <tr>
-        <td><a href="#vssget">vssget</a></td>
-        <td>Retrieves a copy of the specified VSS file(s).</td>
-    </tr>
-    <tr>
-        <td><a href="#vsslabel">vsslabel</a></td>
-        <td>Assigns a label to the specified version or current version of a file or project.</td>
-    </tr>
-    <tr>
-        <td><a href="#vsshistory">vsshistory</a></td>
-        <td>Shows the history of a file or project in VSS.</td>
-    </tr>
-    <tr>
-        <td><a href="#vsscheckin">vsscheckin</a></td>
-        <td>Updates VSS with changes made to a checked out file, and unlocks the VSS master copy.</td>
-    </tr>
-    <tr>
-        <td><a href="#vsscheckout">vsscheckout</a></td>
-        <td>Copies a file from the current project to the current folder, for the purpose of editing.</td>
-    </tr>
-</table>
-
-<hr>
-<h2>Task Descriptions</h2>
-
-<!-- VSSGET -->
-
-<h2><a name="vssget">VssGet</a></h2>
-<h3>Description</h3>
-Task to perform GET commands to Microsoft Visual SourceSafe.
-<p>If you specify two or more attributes from version, date and 
-label only one will be used in the order version, date, label.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
-  </tr>
-  <tr>
-     <td>vsspath</td>
-     <td>SourceSafe path which specifies the project/file(s) you wish to 
-         perform the action on. You should not specify the leading dollar-sign - 
-         it is prepended by Ant automatically.</td>
-     <td>Yes</td>
-  </tr>
-  <tr>
-     <td>login</td>
-     <td>username[,password] - The username and password needed to get access
-         to VSS. Note that you may need to specify both (if you have a password) - 
-         Ant/VSS will hang if you leave the password out and VSS does not accept 
-         login without a password. </td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>localpath</td>
-     <td>Override the working directory and get to the specified path</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>ssdir</td>
-     <td>directory where <code>ss.exe</code> resides. By default the
-         task expects it to be in the PATH.</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>serverPath</td>
-     <td>directory where <code>srssafe.ini</code> resides.</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>writable</td>
-     <td>true or false</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>recursive</td>
-     <td>true or false</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>version</td>
-     <td>a version number to get</td>
-     <td rowspan="3">No, only one of these allowed</td>
-  </tr>
-  <tr>
-     <td>date</td>
-     <td>a date stamp to get at</td>
-  </tr>
-  <tr>
-     <td>label</td>
-     <td>a label to get for</td>
-  </tr>
-  <tr>
-     <td>quiet</td>
-     <td>suppress output (off by default)</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>autoresponse</td>
-     <td>What to respond with (sets the -I option). By default, -I- is
-     used; values of Y or N will be appended to this.</td>
-     <td>No</td>
-  </tr>
-</table>
-<p>Note that only one of version, date or label should be specified</p>
-<h3>Examples</h3>
-<blockquote>
-<pre>
-&lt;vssget localPath=&quot;C:\mysrc\myproject&quot;
-        recursive=&quot;true&quot; 
-        label=&quot;Release1&quot;
-        login=&quot;me,mypassword&quot;
-        vsspath=&quot;/source/aProject&quot;
-        writable=&quot;true&quot;/&gt;
-</pre>
-</blockquote>
-<p>Does a get on the VSS-Project <i>$/source/myproject</i> using the username
-<i>me</i> and the password <i>mypassword</i>. It will recursively get the files 
-which are labeled <i>Release1</i> and write them to the local directory
-<i>C:\mysrc\myproject</i>. The local files will be writable.</p>
-<hr>
-
-<!-- VSSLABEL -->
-
-<h2><a name="vsslabel">VssLabel</a></h2>
-<h3>Description</h3>
-Task to perform LABEL commands to Microsoft Visual SourceSafe.
-<p>Assigns a label to the specified version or current version of a file or
-project.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-   <tr>
-     <th>Attribute</th>
-     <th>Values</th>
-     <th>Required</th>
-   </tr>
-  <tr>
-     <td>vsspath</td>
-     <td>SourceSafe path which specifies the project/file(s) you wish to 
-         perform the action on. You should not specify the leading dollar-sign - 
-         it is prepended by Ant automatically.</td>
-     <td>Yes</td>
-  </tr>
-  <tr>
-     <td>login</td>
-     <td>username[,password] - The username and password needed to get access
-         to VSS. Note that you may need to specify both (if you have a password) - 
-         Ant/VSS will hang if you leave the password out and VSS does not accept 
-         login without a password. </td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>ssdir</td>
-     <td>directory where <code>ss.exe</code> resides. By default the
-         task expects it to be in the PATH.</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>serverPath</td>
-     <td>directory where <code>srssafe.ini</code> resides.</td>
-     <td>No</td>
-  </tr>
-   <tr>
-      <td>label</td>
-      <td>A label to apply to the hierarchy</td>
-      <td>Yes</td>
-   </tr>
-   <tr>
-      <td>version</td>
-      <td>An existing file or project version to label. By default the current
-      version is labelled.</td>
-      <td>No</td>
-   </tr>
-   <tr>
-      <td>comment</td>
-      <td>The comment to use for this label. Empty or '-' for no comment.</td>
-      <td>No</td>
-   </tr>
-  <tr>
-     <td>autoresponse</td>
-     <td>What to respond with (sets the -I option). By default, -I- is
-     used; values of Y or N will be appended to this.</td>
-     <td>No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote>
-<pre>
-&lt;vsslabel vsspath=&quot;/source/aProject&quot;
-          login=&quot;me,mypassword&quot;
-          label=&quot;Release1&quot;/&gt;
-</pre>
-</blockquote>
-<p>Labels the current version of the VSS project <i>$/source/aProject</i> with
-the label <i>Release1</i> using the username <i>me</i> and the password 
-<i>mypassword</i>.
-</p>
-<blockquote>
-<pre>
-&lt;vsslabel vsspath=&quot;/source/aProject/myfile.txt&quot;
-          version=&quot;4&quot;
-          label=&quot;1.03.004&quot;/&gt;
-</pre>
-</blockquote>
-<p>Labels version 4 of the VSS file <i>$/source/aProject/myfile.txt</i> with the
-label <i>1.03.004</i>. If this version already has a label, the operation (and
-the build) will fail.
-</p>
-<hr>
-
-<!-- VSSHISTORY -->
-
-<h2><a name="vsshistory">VssHistory</a></h2>
-<h3>Description</h3>
-Task to perform HISTORY commands to Microsoft Visual SourceSafe.
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr> 
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
-  </tr>
-  <tr>
-     <td>vsspath</td>
-     <td>SourceSafe path which specifies the project/file(s) you wish to 
-         perform the action on. You should not specify the leading dollar-sign - 
-         it is prepended by Ant automatically.</td>
-     <td>Yes</td>
-  </tr>
-  <tr>
-     <td>login</td>
-     <td>username[,password] - The username and password needed to get access
-         to VSS. Note that you may need to specify both (if you have a password) - 
-         Ant/VSS will hang if you leave the password out and VSS does not accept 
-         login without a password. </td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>ssdir</td>
-     <td>directory where <code>ss.exe</code> resides. By default the
-         task expects it to be in the PATH.</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>serverPath</td>
-     <td>directory where <code>srssafe.ini</code> resides.</td>
-     <td>No</td>
-  </tr>
-  <tr> 
-    <td>fromDate</td>
-    <td>Start date for comparison</td>
-    <td>See below</td>
-  </tr>
-  <tr> 
-    <td>toDate</td>
-    <td>Start date for comparison</td>
-    <td>See below</td>
-  </tr>
-  <tr>
-    <td>dateFormat</td>
-    <td>Format of dates in fromDate and toDate. Used when calculating dates with 
-      the numdays attribute. This string uses the formatting rules of SimpleDateFormat. 
-      Defaults to DateFormat.SHORT.</td>
-    <td>No</td>
-  </tr>
-  <tr> 
-    <td>fromLabel</td>
-    <td>Start label for comparison</td>
-    <td>No</td>
-  </tr>
-  <tr> 
-    <td>toLabel</td>
-    <td>Start label for comparison</td>
-    <td>No</td>
-  </tr>
-  <tr> 
-    <td>numdays</td>
-    <td>The number of days for comparison.</td>
-    <td>See below</td>
-  </tr>
-  <tr> 
-    <td>output</td>
-    <td>File to write the diff.</td>
-    <td>No</td>
-  </tr>
-  <tr> 
-    <td>recursive</td>
-    <td>true or false</td>
-    <td>No</td>
-  </tr> 
-  <tr> 
-    <td>style</td>
-    <td>brief, codediff, default or nofile. The default is default.</td>
-    <td>No</td>
-  </tr> 
-</table>
-
-<h4>Specifying the time-frame</h4>
-<p>There are different ways to specify what time-frame you wish to evaluate:</p>
-<ul>
-  <li>Changes between two dates: Specify both <code>fromDate</code> and <code>toDate</code> </li>
-  <li>Changes before a date: Specify <code>toDate</code></li>
-  <li>Changes after a date: Specify <code>fromDate</code></li>
-  <li>Changes X Days before a date: Specify <code>toDate</code> and (negative!) <code>numDays</code></li>
-  <li>Changes X Days after a date: Specify <code>fromDate</code> and <code>numDays</code></li>
-</ul>
-
-
-<h3>Examples</h3>
-<blockquote>
-  <pre>
-&lt;vsshistory vsspath=&quot;/myProject&quot; recursive=&quot;true&quot; 
-            fromLabel=&quot;Release1&quot;
-            toLabel=&quot;Release2&quot;/&gt;
-</pre>
-</blockquote>
-<p>Shows all changes between &quot;Release1&quot; and &quot;Release2&quot;.</p>
-
-<blockquote>
-  <pre>
-&lt;vsshistory vsspath=&quot;/myProject&quot; recursive=&quot;true&quot; 
-            fromDate=&quot;01.01.2001&quot;
-            toDate=&quot;31.03.2001&quot;/&gt;
-</pre>
-</blockquote>
-<p>Shows all changes between January 1st 2001 and March 31st 2001 (in Germany, date must be specified according to your locale).</p>
-
-<blockquote> 
-  <pre>
-&lt;tstamp&gt;
-  &lt;format property=&quot;to.tstamp&quot; pattern=&quot;M-d-yy;h:mma&quot; /&gt;
-&lt;/tstamp&gt;
-
-&lt;vsshistory vsspath=&quot;/myProject&quot; recursive=&quot;true&quot; 
-            numDays=&quot;-14&quot;
-            dateFormat=&quot;M-d-yy;h:mma&quot;
-            toDate=&quot;${to.tstamp}&quot;/&gt;
-</pre>
-</blockquote>
-<p>Shows all changes in the 14 days before today.</p>
-<hr>
-
-<!-- VSSCHECKIN -->
-
-<h2><a name="vsscheckin">VssCheckin</a></h2>
-<h3>Description</h3>
-Task to perform CHECKIN commands to Microsoft Visual SourceSafe.
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
-  </tr>
-  <tr>
-     <td>vsspath</td>
-     <td>SourceSafe path which specifies the project/file(s) you wish to 
-         perform the action on. You should not specify the leading dollar-sign - 
-         it is prepended by Ant automatically.</td>
-     <td>Yes</td>
-  </tr>
-  <tr>
-     <td>login</td>
-     <td>username[,password] - The username and password needed to get access
-         to VSS. Note that you may need to specify both (if you have a password) - 
-         Ant/VSS will hang if you leave the password out and VSS does not accept 
-         login without a password. </td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>localpath</td>
-     <td>Override the working directory and get to the specified path</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>ssdir</td>
-     <td>directory where <code>ss.exe</code> resides. By default the
-         task expects it to be in the PATH.</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>serverPath</td>
-     <td>directory where <code>srssafe.ini</code> resides.</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>writable</td>
-     <td>true or false</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>recursive</td>
-     <td>true or false</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>comment</td>
-     <td>Comment to use for the files that where checked in.</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>autoresponse</td>
-     <td>'Y', 'N' or empty. Specify how to reply to questions from VSS.</td>
-     <td>No</td>
-  </tr>
-</table>
-
-<h3>Examples</h3>
-<blockquote>
-<pre>
-&lt;vsscheckin vsspath=&quot;/test/test*&quot;
-            localpath=&quot;D:\build\&quot;
-            comment=&quot;Modified by automatic build&quot;/&gt;
-</pre>
-</blockquote>
-<p>Checks in the file(s) named <i>test*</i> in the project <i>test</i> using 
-the local directory <i>D:\build</i>.</p>
-<hr>
-
-<!-- VSSCHECKOUT -->
-
-<h2><a name="vsscheckout">VssCheckout</a></h2>
-<h3>Description</h3>
-Task to perform CHECKOUT commands to Microsoft Visual SourceSafe.
-<p>If you specify two or more attributes from version, date and 
-label only one will be used in the order version, date, label.</p>
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <th>Attribute</th>
-    <th>Values</th>
-    <th>Required</th>
-  </tr>
-  <tr>
-     <td>vsspath</td>
-     <td>SourceSafe path which specifies the project/file(s) you wish to 
-         perform the action on. You should not specify the leading dollar-sign - 
-         it is prepended by Ant automatically.</td>
-     <td>Yes</td>
-  </tr>
-  <tr>
-     <td>login</td>
-     <td>username[,password] - The username and password needed to get access
-         to VSS. Note that you may need to specify both (if you have a password) - 
-         Ant/VSS will hang if you leave the password out and VSS does not accept 
-         login without a password. </td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>localpath</td>
-     <td>Override the working directory and get to the specified path</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>ssdir</td>
-     <td>directory where <code>ss.exe</code> resides. By default the
-         task expects it to be in the PATH.</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>serverPath</td>
-     <td>directory where <code>srssafe.ini</code> resides.</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>writable</td>
-     <td>true or false</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>recursive</td>
-     <td>true or false</td>
-     <td>No</td>
-  </tr>
-  <tr>
-     <td>version</td>
-     <td>a version number to get</td>
-     <td rowspan="3">No, only one of these allowed</td>
-  </tr>
-  <tr>
-     <td>date</td>
-     <td>a date stamp to get at</td>
-  </tr>
-  <tr>
-     <td>label</td>
-     <td>a label to get for</td>
-  </tr>
-</table>
-
-<h3>Examples</h3>
-<blockquote>
-<pre>
-&lt;vsscheckout vsspath=&quot;/test&quot;
-             localpath=&quot;D:\build&quot;
-             recursive=&quot;true&quot;
-             login=&quot;me,mypass&quot;/&gt;
-</pre>
-</blockquote>
-<p>Does a recursive checkout of the project test to the directory D:\build. 
-</p>
-<hr>
-
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-</body>
-</html>
diff --git a/docs/manual/OptionalTasks/wljspc.html b/docs/manual/OptionalTasks/wljspc.html
deleted file mode 100644
index 8321e8d..0000000
--- a/docs/manual/OptionalTasks/wljspc.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<html>
-<head><title> Ant optional task manual : wljspc </title></head>
-<body>
-<h1>wljspc</h1>
-<h3>Description</h3>
-<p>Class to precompile JSP's using weblogic's jsp compiler (weblogic.jspc)</p>
-Tested only on Weblogic 4.5.1 - NT4.0 and Solaris 5.7,5.8<br>
-<h3>Parameters</h3>
-<table border="1" cellPadding="2" cellSpacing="0">
-  <tbody>
-    <tr>
-      <th>Attribute</th>
-      <th>Values</th>
-      <th>Required</th>
-    </tr>
-    <tr>
-      <td>src</td>
-      <td>oot of source tree for JSP, ie, the document root for your weblogic server</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>
-dest</td>
-      <td> root of destination directory, what you have set as WorkingDir in the weblogic properties</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>
-package</td>
-      <td> start package name under which your JSP's would be compiled</td>
-      <td>Yes</td>
-    </tr>
-    <tr>
-      <td>
-classpath</td>
-      <td>Class path to use when compiling jsp's</td>
-      <td>Yes</td>
-    </tr>
-  </tbody>
-</table>
-<p>
-<br>
-
-A classpath should be set which contains the weblogic classes as well as all application classes<br>
-referenced by the JSP. The system classpath is also appended when the jspc is called, so you may<br>
-choose to put everything in the classpath while calling Ant. However, since presumably the JSP's will reference<br>
-classes being build by Ant, it would be better to explicitly add the classpath in the task<br>
-<br>
-The task checks timestamps on the JSP's and the generated classes, and compiles<br>
-only those files that have changed.<br>
-<br>
-It follows the weblogic naming convention of putting classes in<br>
-<b> _dirName/_fileName.class for dirname/fileName.jsp   </b><br>
-<br>
-</p>
-<h3><br>
-Example<br>
-</h3>
-<p>
-&lt;target name="jspcompile" depends="compile"><br>
-&lt;wljspc src="c:\\weblogic\\myserver\\public_html" dest="c:\\weblogic\\myserver\\serverclasses" package="myapp.jsp" ><br>
-&lt;classpath&gt;<br>
-&lt;pathelement location="${weblogic.classpath}" /><br>
-&lt;pathelement path="${compile.dest}" /><br>
-&lt;/classpath&gt;<br>
-<br>
-&lt;/wljspc&gt;<br>
-&lt;/target>
-</p>
-<h3>
-<br>
-Limitations
-</h3>
-<p>
-This works only on weblogic 4.5.1
-<br>
-It compiles the files thru the Classic compiler only.<br>
- Since it is my experience that weblogic jspc throws out of memory error on being given too<br>
-many files at one go, it is called multiple times with one jsp file each.
-
-
-</body>
-</html>
-
diff --git a/docs/manual/OptionalTasks/xmlvalidate.html b/docs/manual/OptionalTasks/xmlvalidate.html
deleted file mode 100644
index ef6d40b..0000000
--- a/docs/manual/OptionalTasks/xmlvalidate.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<html>
-
-<head>
-<title>XMLValidate Task</title>
-</head>
-
-<body>
-
-<h2><a name="xmlvalidate">XMLValidate</a></h2>
-<h3>Description</h3>
-<p>
-  This task checks xml files are valid (or only well formed). The task uses crimson SAX2 parser implementation by default, but one can specify any SAX1/2 parser if needed
-</p>
-
-<h3>Parameters</h3>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">file</td>
-    <td valign="top">the file(s) you want to check. (optionally can use an embedded fileset)</td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">lenient</td>
-    <td valign="top">
-      if true, only check the xml document is well formed
-	    (ignored if the specified parser is as SAX1 parser)
-    </td>
-    <td valign="top" align="center">No</td>
-  </tr>
-  <tr>
-    <td valign="top">classname</td>
-    <td valign="top">the parser to use. (default: crimson).</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">classpathref</td>
-    <td valign="top">where to find the parser class. Optionally can use an embedded classpath element.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">failonerror</td>
-    <td valign="top">fails on a error if set to true (defaults to true).</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">warn</td>
-    <td valign="top">log parser warn events.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<h3>Examples</h3>
-<blockquote><pre>
-&lt;xmlvalidate file="toto.xml"/&gt;
-
-    &lt;xmlvalidate failonerror="no" lenient="yes" warn="yes"
-	         classname="org.apache.xerces.parsers.SAXParser" &gt;
-	         classpath="lib/xerces.jar"&gt;
-        &lt;fileset dir="src" includes="style/*.xsl"/&gt;  
-    &lt;/xmlvalidate&gt;
-</pre></blockquote>
-<hr>
-
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/api/index.html b/docs/manual/api/index.html
deleted file mode 100644
index ca2f42a..0000000
--- a/docs/manual/api/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<html>
-<head>
-<meta http-equiv="refresh" content="1; URL=packages.html">
-<title>Ant API</title>
-</head>
-<body>
-Redirecting to <a href="packages.html">Ant API ...</a>
-</body>
-</html>
-
-
diff --git a/docs/manual/api/packages.html b/docs/manual/api/packages.html
deleted file mode 100644
index f03d66d..0000000
--- a/docs/manual/api/packages.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<html>
-<head>
-<title>Ant API</title>
-</head>
-<body>
-<b>Ant API has not been generated</b>
-</body>
-</html>
-
-
diff --git a/docs/manual/coretasklist.html b/docs/manual/coretasklist.html
deleted file mode 100644
index 14e5bd9..0000000
--- a/docs/manual/coretasklist.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-<base target="mainFrame">
-</head>
-
-<body>
-
-<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
-
-<h3>Concepts and Types</h3>
-<a href="dirtasks.html">Directory Based Tasks</a><br>
-<a href="sysclasspath.html">build.sysclasspath</a><br>
-<a href="CoreTypes/patternset.html">Patternset</a><br>
-<a href="CoreTypes/fileset.html">Fileset</a><br>
-<a href="CoreTypes/mapper.html">File Mappers</a><br>
-<a href="CoreTasks/common.html">Common Attributes</a><br>
-
-<h3>Core Tasks</h3>
-<a href="CoreTasks/overview.html">Overview</a><br><br>
-<a href="CoreTasks/ant.html">Ant</a><br>
-<a href="CoreTasks/antcall.html">AntCall</a><br>
-<a href="CoreTasks/antstructure.html">AntStructure</a><br>
-<a href="CoreTasks/apply.html">Apply/<i>ExecOn</i></a><br>
-<a href="CoreTasks/available.html">Available</a><br>
-<a href="CoreTasks/chmod.html">Chmod</a><br>
-<a href="CoreTasks/condition.html">Condition</a><br>
-<a href="CoreTasks/copy.html">Copy</a><br>
-<a href="CoreTasks/copydir.html"><i>Copydir</i></a><br>
-<a href="CoreTasks/copyfile.html"><i>Copyfile</i></a><br>
-<a href="CoreTasks/cvs.html">Cvs</a><br>
-<a href="CoreTasks/cvspass.html">CVSPass</a><br>
-<a href="CoreTasks/delete.html">Delete</a><br>
-<a href="CoreTasks/deltree.html"><i>Deltree</i></a><br>
-<a href="CoreTasks/dependset.html">Dependset</a><br>
-<a href="CoreTasks/ear.html">Ear</a><br>
-<a href="CoreTasks/echo.html">Echo</a><br>
-<a href="CoreTasks/exec.html">Exec</a><br>
-<a href="CoreTasks/fail.html">Fail</a><br>
-<a href="CoreTasks/filter.html">Filter</a><br>
-<a href="CoreTasks/fixcrlf.html">FixCRLF</a><br>
-<a href="CoreTasks/genkey.html">GenKey</a><br>
-<a href="CoreTasks/get.html">Get</a><br>
-<a href="CoreTasks/gunzip.html">GUnzip</a><br>
-<a href="CoreTasks/gzip.html">GZip</a><br>
-<a href="CoreTasks/jar.html">Jar</a><br>
-<a href="CoreTasks/java.html">Java</a><br>
-<a href="CoreTasks/javac.html">Javac</a><br>
-<a href="CoreTasks/javadoc.html">Javadoc/<i>Javadoc2</i></a><br>
-<a href="CoreTasks/mail.html">Mail</a><br>
-<a href="CoreTasks/mkdir.html">Mkdir</a><br>
-<a href="CoreTasks/move.html">Move</a><br>
-<a href="CoreTasks/parallel.html">Parallel</a><br>
-<a href="CoreTasks/patch.html">Patch</a><br>
-<a href="CoreTasks/pathconvert.html">PathConvert</a><br>
-<a href="CoreTasks/property.html">Property</a><br>
-<a href="CoreTasks/recorder.html">Record</a><br>
-<a href="CoreTasks/rename.html"><i>Rename</i></a><br>
-<a href="CoreTasks/replace.html">Replace</a><br>
-<a href="CoreTasks/rmic.html">Rmic</a><br>
-<a href="CoreTasks/sequential.html">Sequential</a><br>
-<a href="CoreTasks/signjar.html">SignJar</a><br>
-<a href="CoreTasks/sleep.html">Sleep</a><br>
-<a href="CoreTasks/sql.html">Sql</a><br>
-<a href="CoreTasks/style.html">Style</a><br>
-<a href="CoreTasks/tar.html">Tar</a><br>
-<a href="CoreTasks/taskdef.html">Taskdef</a><br>
-<a href="CoreTasks/touch.html">Touch</a><br>
-<a href="CoreTasks/tstamp.html">TStamp</a><br>
-<a href="CoreTasks/typedef.html">Typedef</a><br>
-<a href="CoreTasks/unzip.html">Unjar</a><br>
-<a href="CoreTasks/untar.html">Untar</a><br>
-<a href="CoreTasks/unzip.html">Unwar</a><br>
-<a href="CoreTasks/unzip.html">Unzip</a><br>
-<a href="CoreTasks/uptodate.html">Uptodate</a><br>
-<a href="CoreTasks/war.html">War</a><br>
-<a href="CoreTasks/zip.html">Zip</a><br>
-</body>
-</html>
diff --git a/docs/manual/credits.html b/docs/manual/credits.html
deleted file mode 100644
index 077700f..0000000
--- a/docs/manual/credits.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<div align="center">
-<h1>Ant User Manual</h1>
-<p>by</p>
-</div>
-<!-- Names are in alphabetical order, on last name -->
-<ul>
-  <li>Stephane Bailliez (<a href="mailto:sbailliez@imediation.com">sbailliez@imediation.com</a>)</li>
-  <li>Jacques Bergeron (<a href="mailto:jacques.bergeron@dogico.com">jacques.bergeron@dogico.com</a>)</li>
-  <li>Stefan Bodewig (<a href="mailto:stefan.bodewig@epost.de">stefan.bodewig@epost.de</a>)</li>
-  <li>Patrick Chanezon (<a href="mailto:chanezon@netscape.com">chanezon@netscape.com</a>)</li>
-  <li>James Duncan Davidson (<a href="mailto:duncan@x180.com">duncan@x180.com</a>)</li>
-  <li>Tom Dimock (<a href="mailto:tad1@cornell.edu">tad1@cornell.edu</a>)</li>
-  <li>Peter Donald (<a href="mailto:donaldp@apache.org">donaldp@apache.org</a>)</li>
-  <li>Diane Holt (<a href="mailto:holtdl@yahoo.com">holtdl@yahoo.com</a>)</li>
-  <li>Bill Kelly (<a href="mailto:bill.kelly@softwired-inc.com">bill.kelly@softwired-inc.com</a>)</li>
-  <li>Arnout J. Kuiper (<a href="mailto:ajkuiper@wxs.nl">ajkuiper@wxs.nl</a>)</li>
-  <li>Conor MacNeill (<a href="mailto:conor@cortexebusiness.com.au">conor@cortexebusiness.com.au</a>)</li>
-  <li>Stefano Mazzocchi (<a href="mailto:stefano@apache.org">stefano@apache.org</a>)</li>
-  <li>Erik Meade (<a href="mailto:emeade@geekfarm.org">emeade@geekfarm.org</a>)</li>
-  <li>Sam Ruby (<a href="mailto:rubys@us.ibm.com">rubys@us.ibm.com</a>)</li>
-  <li>Nico Seessle (<a href="mailto:nico@seessle.de">nico@seessle.de</a>)</li>
-  <li>Jon S. Stevens (<a href="mailto:jon@latchkey.com">jon@latchkey.com</a>)</li>
-  <li>Roger Vaughn (<a href="mailto:rvaughn@seaconinc.com">rvaughn@seaconinc.com</a>)</li>
-  <li>Dave Walend (<a href="mailto:dwalend@cs.tufts.edu">dwalend@cs.tufts.edu</a>)</li>
-  <li>Phillip Wells (<a href="mailto:philwells@rocketmail.com">philwells@rocketmail.com</a>)</li>
-</ul>
-
-<center>
-<p>Version: @VERSION@<br>
-$Id$</p>
-</center>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/develop.html b/docs/manual/develop.html
deleted file mode 100644
index 8b6d327..0000000
--- a/docs/manual/develop.html
+++ /dev/null
@@ -1,204 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-<h1>Developing with Ant</h1>
-
-<h2><a name="writingowntask">Writing Your Own Task</a></h2>
-<p>It is very easy to write your own task:</p>
-<ol>
-  <li>Create a Java class that extends <code>org.apache.tools.ant.Task</code>.</li>
-  <li>For each attribute, write a <i>setter</i> method. The setter method must be a 
-    <code>public void</code> method that takes a single argument. The
-    name of the method must begin with <code>set</code>, followed by the
-    attribute name, with the first character of the name in uppercase, and the rest in
-    lowercase. The type of the attribute can be:
-<ul>
-<li>
-<code>String</code>
-</li>
-<li>
-any primitive type (they are converted for you from their String-representation
-in the buildfile)
-</li>
-<li>
-boolean - your method will be passed the value 
-<i>true</i> if the value specified in the buildfile is one of <code>true</code>,
-<code>yes</code>, or <code>on</code>)
-</li>
-<li>
-<code>Class</code>
-</li>
-<li>
-<code>File</code>
-(in which case the value of the attribute is interpreted relative to the 
-project's basedir)
-</li>
-<li>
-any other type that has a constructor with a single 
-<code>String</code> argument
-</li>
-</ul>
-</li>
-<li>If your task has enumerated attributes, you should consider using
-a subclass of <code>org.apache.tools.ant.types.EnumeratedAttribute</code>
-as an argument
-to your setter method. See
-<code>org/apache/tools/ant/taskdefs/FixCRLF.java</code> for
-an example.</li>
-<li>If the task should support character data, write a <code>public void 
-addText(String)</code> method.</li>
-<li>For each nested element, write a <i>create</i> or <i>add</i> method.
-A create method 
-must be a <code>public</code> method that takes no arguments and returns 
-an <code>Object</code> type. The name of the create method must begin with 
-<code>create</code>, followed by the element name. An add method must be 
-a <code>public void</code> method that takes a single argument of an 
-<code>Object</code> type with a no-argument constructor.
-The name of the add method 
-must begin with <code>add</code>, followed by the element name.</li>
-<li>Write a <code>public void execute</code> method, with no arguments, that
-throws a <code>BuildException</code>. This method implements the task
-itself.</li>
-</ol>
-
-<h3>The Life-cycle of a Task</h3>
-<ol>
-  <li>The task gets instantiated using a no-argument constructor, at parser
-    time. This means even tasks that are never executed get
-    instantiated.</li>
-
-  <li>The task gets references to its project and location inside the
-    buildfile via its inherited <code>project</code> and
-    <code>location</code> variables.</li>
-
-  <li>If the user specified an <code>id</code> attribute to this task,
-    the project
-    registers a reference to this newly created task, at parser
-    time.</li>
-
-  <li>The task gets a reference to the target it belongs to via its
-    inherited <code>target</code> variable.</li>
-
-  <li><code>init()</code> is called at parser time.</li>
-
-  <li>All child elements of the XML element corresponding to this task
-    are created via this task's <code>createXXX()</code> methods or
-    instantiated and added to this task via its <code>addXXX()</code>
-    methods, at parser time.</li>
-
-  <li>All attributes of this task get set via their corresponding
-    <code>setXXX</code> methods, at runtime.</li>
-
-  <li>The content character data sections inside the XML element
-    corresponding to this task is added to the task via its
-    <code>addText</code> method, at runtime.</li>
-
-  <li>All attributes of all child elements get set via their corresponding
-    <code>setXXX</code> methods, at runtime.</li>
-
-  <li><code>execute()</code> is called at runtime. While the above initialization 
-    steps only occur once, the execute() method may be 
-    called more than once, if the task is invoked more than once. For example, 
-    if <code>target1</code> and <code>target2</code> both depend
-    on <code>target3</code>, then running 
-    <code>'ant target1 target2'</code> will run all tasks in
-    <code>target3</code> twice.</li>
-</ol>
-
-<h3>Example</h3>
-<p>Let's write our own task, which prints a message on the
-<code>System.out</code> stream.
-The
-task has one attribute, called <code>message</code>.</p>
-<blockquote>
-<pre>
-package com.mydomain;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Task;
-
-public class MyVeryOwnTask extends Task {
-  private String msg;
-
-  // The method executing the task
-  public void execute() throws BuildException {
-    System.out.println(msg);
-  }
-
-  // The setter for the &quot;message&quot; attribute
-  public void setMessage(String msg) {
-    this.msg = msg;
-  }
-}
-</pre>
-</blockquote>
-<p>It's really this simple ;-)</p>
-<p>Adding your task to the system is rather simple too:</p>
-<ol>
-  <li>Make sure the class that implements your task is in the classpath when
-    starting Ant.</li>
-  <li>Add a <code>&lt;taskdef&gt;</code> element to your project.
-    This actually adds your task to the system.</li>
-  <li>Use your task in the rest of the buildfile.</li>
-</ol>
-
-<h3>Example</h3>
-<blockquote>
-<pre>
-&lt;?xml version=&quot;1.0&quot;?&gt;
-
-&lt;project name=&quot;OwnTaskExample&quot; default=&quot;main&quot; basedir=&quot;.&quot;&gt;
-  &lt;taskdef name=&quot;mytask&quot; classname=&quot;com.mydomain.MyVeryOwnTask&quot;/&gt;
-
-  &lt;target name=&quot;main&quot;&gt;
-    &lt;mytask message=&quot;Hello World! MyVeryOwnTask works!&quot;/&gt;
-  &lt;/target&gt;
-&lt;/project&gt;
-</pre>
-</blockquote>
-<p>Another way to add a task (more permanently), is to add the task name and
-implementing class name to the <code>default.properties</code> file in the
-<code>org.apache.tools.ant.taskdefs</code>
-package. Then you can use it as if it were a built-in task.</p>
-
-<hr>
-<h2><a name="buildevents">Build Events</a></h2>
-<P>Ant is capable of generating build events as it performs the tasks necessary to build a project. 
-Listeners can be attached to Ant to receive these events. This capability could be used, for example,
-to connect Ant to a GUI or to integrate Ant with an IDE. 
-</P>
-<p>To use build events you need to create an ant <code>Project</code> object. You can then call the 
-<code>addBuildListener</code> method to add your listener to the project. Your listener must implement
-the <code>org.apache.tools.antBuildListener</code> interface. The listener will receive BuildEvents 
-for the following events</P>
-<ul>
-<li>Build started</li>
-<li>Build finished</li>
-<li>Target started</li>
-<li>Target finished</li>
-<li>Task started</li>
-<li>Task finished</li>
-<li>Message logged</li>
-</ul>
-
-<p>
-If you wish to attach a listener from the command line you may use the
-<code>-listener</code> option. For example:</p>
-<blockquote>
-  <pre>ant -listener org.apache.tools.ant.XmlLogger</pre>
-</blockquote>
-<p>will run Ant with a listener that generates an XML representation of the build progress. This 
-listener is included with Ant, as is the default listener, which generates the logging to standard output.</p>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/dirtasks.html b/docs/manual/dirtasks.html
deleted file mode 100644
index 053f8ee..0000000
--- a/docs/manual/dirtasks.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="directorybasedtasks">Directory-based Tasks</a></h2>
-<p>Some tasks use directory trees for the task they perform.
-For example, the <a
-href="CoreTasks/javac.html">javac</a> task, which works upon a directory tree
-with <code>.java</code> files.
-Sometimes it can be very useful to work on a subset of that directory tree. This
-section describes how you can select a subset of such a directory tree.</p>
-<p>Ant gives you two ways to create a subset, both of which can be used at the same
-time:</p>
-<ul>
-  <li>Only include files/directories that match at least one pattern of a set of
-    patterns.</li>
-  <li>Exclude files/directories that match at least one pattern a set of
-    patterns.</li>
-</ul>
-<p>When both inclusion and exclusion are used, only files/directories that match
-the include patterns, and don't match the exclude patterns, are used.</p>
-<p>Patterns can be specified inside the buildfile via task attributes or
-nested elements and via external files. Each line of the external file
-is taken as a pattern that is added to the list of include or exclude 
-patterns.</p>
-<h3><a name="patterns">Patterns</a></h3>
-<p>As described earlier, patterns are used for the inclusion and exclusion.
-These patterns look very much like the patterns used in DOS and UNIX:</p>
-<p>'*' matches zero or more characters, '?' matches one character.</p>
-<p><b>Examples:</b></p>
-<p>
-<code>*.java</code>&nbsp;&nbsp;matches&nbsp;&nbsp;<code>.java</code>,
-<code>x.java</code> and <code>FooBar.java</code>, but
-not <code>FooBar.xml</code> (does not end with <code>.java</code>).</p>
-<p>
-<code>?.java</code>&nbsp;&nbsp;matches&nbsp;&nbsp;<code>x.java</code>,
-<code>A.java</code>, but not <code>.java</code> or <code>xyz.java</code>
-(both don't have one character before <code>.java</code>).</p>
-<p>
-Combinations of <code>*</code>'s and <code>?</code>'s are allowed.</p>
-<p>Matching is done per-directory. This means that first the first directory in
-the pattern is matched against the first directory in the path to match. Then
-the second directory is matched, and so on. For example, when we have the pattern <code>/?abc/*/*.java</code>
-and the path <code>/xabc/foobar/test.java</code>,
-the first <code>?abc</code> is matched with <code>xabc</code>,
-then <code>*</code> is matched with <code>foobar</code>,
-and finally <code>*.java</code> is matched with <code>test.java</code>.
-They all match, so the path matches the pattern.</p>
-<p>To make things a bit more flexible, we add one extra feature, which makes it
-possible to match multiple directory levels. This can be used to match a
-complete directory tree, or a file anywhere in the directory tree.
-To do this, <code>**</code>
-must be used as the name of a directory.
-When <code>**</code> is used as the name of a
-directory in the pattern, it matches zero or more directories.
-For example:
-<code>/test/**</code> matches all files/directories under <code>/test/</code>,
-such as <code>/test/x.java</code>,
-or <code>/test/foo/bar/xyz.html</code>, but not <code>/xyz.xml</code>.</p>
-<p>There is one &quot;shorthand&quot; - if a pattern ends
-with <code>/</code>
-or <code>\</code>, then <code>**</code>
-is appended.
-For example, <code>mypackage/test/</code> is interpreted as if it were
-<code>mypackage/test/**</code>.</p>
-<p><b>Example patterns:</b></p>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><code>**/CVS/*</code></td>
-    <td valign="top">Matches all files in <code>CVS</code> directories that can be located
-      anywhere in the directory tree.<br>
-      Matches:
-      <pre>
-      CVS/Repository
-      org/apache/CVS/Entries
-      org/apache/jakarta/tools/ant/CVS/Entries
-      </pre>
-      But not:
-      <pre>
-      org/apache/CVS/foo/bar/Entries (<code>foo/bar/</code> part does not match)</td>
-      </pre>
-  </tr>
-  <tr>
-    <td valign="top"><code>org/apache/jakarta/**</code></td>
-    <td valign="top">Matches all files in the <code>org/apache/jakarta</code> directory tree.<br>
-      Matches:
-      <pre>
-      org/apache/jakarta/tools/ant/docs/index.html
-      org/apache/jakarta/test.xml
-      </pre>
-      But not:
-      <pre>
-      org/apache/xyz.java
-      </pre>
-      (<code>jakarta/</code> part is missing).</td>
-  </tr>
-  <tr>
-    <td valign="top"><code>org/apache/**/CVS/*</code></td>
-    <td valign="top">Matches all files in <code>CVS</code> directories
-      that are located anywhere in the directory tree under
-      <code>org/apache</code>.<br>
-      Matches:
-      <pre>
-      org/apache/CVS/Entries
-      org/apache/jakarta/tools/ant/CVS/Entries
-      </pre>
-      But not:
-      <pre>
-      org/apache/CVS/foo/bar/Entries
-      </pre>
-      (<code>foo/bar/</code> part does not match)</td>
-  </tr>
-  <tr>
-    <td valign="top"><code>**/test/**</code></td>
-    <td valign="top">Matches all files that have a <code>test</code>
-        element in their path, including <code>test</code> as a filename.</td>
-  </tr>
-</table>
-<p>When these patterns are used in inclusion and exclusion, you have a powerful
-way to select just the files you want.</p>
-
-<h3>Examples</h3>
-<pre>  
-&lt;copy todir=&quot;${dist}&quot;>
-  &lt;fileset dir=&quot;${src}&quot; 
-           includes=&quot;**/images/*&quot; 
-           excludes=&quot;**/*.gif&quot; 
-  /&gt;
-&lt;/copy&gt;</pre>
-<p>This copies all files in directories called <code>images</code> that are
-located in the directory tree defined by <code>${src}</code> to the
-destination directory defined by <code>${dist}</code>,
-but excludes all <code>*.gif</code> files from the copy.</p>
-<p> This example can also be expressed using nested elements:</p>
-<pre>
-&lt;copy todir=&quot;${dist}&quot;>
-  &lt;fileset dir=&quot;${src}&quot;&gt;
-    &lt;include name=&quot;**/images/*&quot;/&gt;
-    &lt;exclude name=&quot;**/*.gif&quot;/&gt;
-  &lt;/fileset&gt;
-&lt;/copy&gt;
-</pre>
-
-<h3>Default Excludes</h3>
-<p>There are a set of definitions that are excluded by default from all directory-based tasks.
-They are:</p>
-<pre>
-     **/*~
-     **/#*#
-     **/.#*
-     **/%*%
-     **/CVS
-     **/CVS/**
-     **/.cvsignore
-     **/SCCS
-     **/SCCS/**
-     **/vssver.scc
-</pre>
-<p>If you do not want these default excludes applied, you may disable them with the 
-<code>defaultexcludes=&quot;no&quot;</code> attribute.</p>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/feedback.html b/docs/manual/feedback.html
deleted file mode 100644
index fe2f251..0000000
--- a/docs/manual/feedback.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h1><a name="feedback">Feedback</a></h1>
-<p>To provide feedback on this software, please subscribe to the 
-<a href="http://jakarta.apache.org/site/mail.html" target="_top">Ant User Mailing List</a>
-</p>
-
-<p>If you want to contribute to Ant or stay current with the latest
-development, join the 
-<a href="http://jakarta.apache.org/site/mail.html" target="_top">Ant Development Mailing List</a>
-</p>
-<p>Archives of both lists can be found at <a
-href="http://archive.covalent.net/" target="_top">http://archive.covalent.net/</a>. Many
-thanks to Covalent Technologies. A searchable archive can be found at <a
-href="http://marc.theaimsgroup.com" target="_top">http://marc.theaimsgroup.com</a>. If
-you know of any additional archive sites, please report them to the
-lists.</p>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/ide.html b/docs/manual/ide.html
deleted file mode 100644
index a72165b..0000000
--- a/docs/manual/ide.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-<base target="mainFrame">
-</head>
-
-<body>
-
-<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
-
-<h3>IDE Integration</h3>
-<a href="Integration/Antidote.html">
-         Antidote<br>(in development)</a><br><br>
-<a href="http://www.dieter-bogdoll.de/java/AntRunner/">
-         AntRunner For JBuilder <br>(unbundled)</a><br><br>
-<a href="Integration/jext-plugin.html">AntWork Plugin for the Jext -
-         Java Text Editor <br>(unbundled)</a><br><br>
-<a href="http://ant.netbeans.org/">NetBeans <br>Forte for Java <br>(unbundled)</a><br><br>
-<a href="Integration/VAJAntTool.html">VisualAge for Java</a><br><br>
-
-</body>
-</html>
-
diff --git a/docs/manual/index.html b/docs/manual/index.html
deleted file mode 100644
index 3b17dba..0000000
--- a/docs/manual/index.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<frameset cols="20%,80%">
-<frame src="toc.html" name="navFrame">
-<frame src="credits.html" name="mainFrame">
-</frameset>
-<noframes>
-<H2>Ant User Manual</H2>
-
-<a href="toc.html">Ant User Manual</a></noframes>
-
-</html>
diff --git a/docs/manual/install.html b/docs/manual/install.html
deleted file mode 100644
index b060aa3..0000000
--- a/docs/manual/install.html
+++ /dev/null
@@ -1,319 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-<h1>Installing Ant</h1>
-<h2><a name="getting">Getting Ant</a></h2>
-<h3>Binary edition</h3>
-<p>The latest stable version of Ant can be downloaded from <a
-href="http://jakarta.apache.org/builds/ant/release/v1.3/bin/">
-http://jakarta.apache.org/builds/ant/release/v1.3/bin/</a>.
-
-If you like living on the edge, you can download the latest version from <a
-href="http://jakarta.apache.org/builds/ant/nightly/">http://jakarta.apache.org/builds/ant/nightly/</a>.</p>
-<h3>Source Edition</h3>
-
-<p>If you prefer the source edition, you can download the source for the latest Ant release from <a
-href="http://jakarta.apache.org/builds/ant/release/v1.3/src/">
-http://jakarta.apache.org/builds/ant/release/v1.3/src/</a>. 
-
-Again, if you prefer the edge, you can access 
-the code as it is being developed via CVS. The Jakarta website has details on 
-<a href="http://jakarta.apache.org/site/cvsindex.html" target="_top">accessing CVS</a>. Please checkout the 
-jakarta-ant module. 
-
-See the section <a href="#buildingant">Building Ant</a> on how to
-build Ant from the source code.
-You can also access the 
-<a href="http://cvs.apache.org/viewcvs/jakarta-ant/" target="_top">
-Ant CVS repository</a> on-line. </p>
-
-<hr>
-<h2><a name="sysrequirements">System Requirements</a></h2>
-<p>
-To build and use Ant, you must have a JAXP-compliant XML parser installed and 
-available on your classpath.</p>
-<p>
-The binary distribution of Ant includes the reference 
-implementation of JAXP 1.1. Please see 
-<a href="http://java.sun.com/xml/" target="_top">http://java.sun.com/xml/</a> 
-for more information. 
-If you wish to use a different JAXP-compliant parser, you should remove
-<code>jaxp.jar</code> and <code>crimson.jar</code>
-from Ant's <code>lib</code> directory.
-
-You can then either put the jars from your preferred parser into Ant's 
-<code>lib</code> directory or put the jars on the system classpath.</p>
-
-<p>
-For the current version of Ant, you will also need a JDK installed on
-your system, version 1.1 or later. A future version of Ant will require
-JDK 1.2 or later.
-</p>
-  
-<hr>
-<h2><a name="installing">Installing Ant</a></h2>
-<p>The binary distribution of Ant consists of three directories:
-<code>bin</code>,
-<code>docs</code> and
-<code>lib</code>
-
-Only the <code>bin</code> and <code>lib</code> directories are 
-required to run Ant. 
-
-To install Ant, choose a directory and copy the distribution
-file there. This directory will be known as ANT_HOME. 
-<br>
-
-<table width="80%">
-<tr>
-  <td colspan="2">
-    <b>Windows 95 and Windows 98 Note:</b> 
-  </td>
-</tr>
-<tr>
-  <td width="5%">&nbsp;</td>
-  <td><i>
-On these systems, the script used to launch Ant will have 
-problems if ANT_HOME is a long filename. This is due to 
-limitations in the OS's handling of the <code>&quot;for&quot;</code> 
-batch-file statement. It is recommended, therefore, that Ant be 
-installed in a <b>short</b> path, such as C:\Ant.</i>
-  </td>
-</tr>
-</table>
-<br>
-
-Before you can run ant there is some additional set up you 
-will need to do:</p>
-<ul>
-<li>Add the <code>bin</code> directory to your path.</li>
-<li>Set the <code>ANT_HOME</code> environment variable to the
-directory where you installed Ant.  On some operating systems the ant
-wrapper scripts can guess <code>ANT_HOME</code> (Unix dialects and
-Windows NT/2000) - but it is better to not rely on this behavior.</li>
-<li>Optionally, set the <code>JAVA_HOME</code> environment variable
-(see the <a href="#advanced">Advanced</a> section below).
-This should be set to the directory where your JDK is installed.</li>
-</ul>
-<p><strong>Note:</strong> Do not install Ant's ant.jar file into the lib/ext
-directory of the JDK/JRE. Ant is an application, whilst the extension 
-directory is intended for JDK extensions. In particular there are security 
-restrictions on the classes which may be loaded by an extension.</p>
-
-<h3>Optional Tasks</h3>
-<p>Ant supports a number of optional tasks. An optional task is a task which
-typically requires an external library to function. The optional tasks are 
-packaged separately from the core Ant tasks. This package is available in 
-the same download directory as the core ant distribution. The current 
-jar containing optional tasks is named <code>jakarta-ant-1.3-optional.jar</code>.
-This jar should be downloaded and placed in the lib directory of your Ant 
-installation.</p> 
-
-<p>The external libraries required by each of the optional tasks is detailed
-in the <a href="#librarydependencies">Library Dependencies</a> section. These external
-libraries may either be placed in Ant's lib directory, where they will be picked up
-automatically, or made available on the system CLASSPATH environment variable. 
-</p>
-
-<h3>Windows</h3>
-<p>Assume Ant is installed in <code>c:\ant\</code>. The following sets up the
-environment:</p>
-<pre>set ANT_HOME=c:\ant
-set JAVA_HOME=c:\jdk1.2.2
-set PATH=%PATH%;%ANT_HOME%\bin</pre>
-
-<h3>Unix (bash)</h3>
-<p>Assume Ant is installed in <code>/usr/local/ant</code>. The following sets up
-the environment:</p>
-<pre>export ANT_HOME=/usr/local/ant
-export JAVA_HOME=/usr/local/jdk-1.2.2
-export PATH=${PATH}:${ANT_HOME}/bin</pre>
-
-
-<h3><a name="advanced">Advanced</a></h3>
-
-<p>There are lots of variants that can be used to run Ant. What you need is at
-least the following:</p>
-<ul>
-<li>The classpath for Ant must contain <code>ant.jar</code> and any jars/classes 
-needed for your chosen JAXP-compliant XML parser.</li>
-<li>When you need JDK functionality
-(such as for the <a href="CoreTasks/javac.html">javac</a> task or the
-<a href="CoreTasks/rmic.html">rmic</a> task), then for JDK 1.1, the <code>classes.zip</code>
-file of the JDK must be added to the classpath; for JDK 1.2 or JDK 1.3, <code>tools.jar</code>
-must be added. The scripts supplied with Ant,
-in the <code>bin</code> directory, will add 
-the required JDK classes automatically, if the <code>JAVA_HOME</code>
-environment variable is set.</li>
-
-<li>When you are executing platform-specific applications, such as the 
-<a href="CoreTasks/exec.html">exec</a> task or the 
-<a href="CoreTasks/cvs.html">cvs</a> task, the property <code>ant.home</code>
-must be set to the directory containing where you installed Ant. Again
-this is set by the Ant scripts to the value of the ANT_HOME environment
-variable.</li>
-</ul>
-
-<hr>  
-<h2><a name="buildingant">Building Ant</a></h2>
-<p>To build Ant from source, you can either install the Ant source distribution
-or checkout the jakarta-ant module from CVS.</p>
-<p>Once you have installed the source, change into the installation
-directory.</p>
-
-<p>Set the <code>JAVA_HOME</code> environment variable
-to the directory where the JDK is installed.
-See <a href="#installing">Installing Ant</a>
-for examples on how to do this for your operating system. </p>
-
-<p>Make sure you have downloaded any auxiliary jars required to
-build tasks you are interested in. These should either be available
-on the CLASSPATH or added to the <code>lib/optional</code>
-directory.
-See <a href="#librarydependencies">Library Dependencies</a>
-for a list of jar requirements for various features.
-Note that this will make the auxiliary jars
-available for the building of Ant only. For running Ant you will
-still need to
-make the jars available as described under 
-<a href="#installing">Installing Ant</a>.</p>
-
-<p>Your are now ready to build Ant:</p>
-<blockquote>
-  <p><code>build -Ddist.dir=&lt;<i>directory_to_contain_Ant_distribution</i>&gt; dist</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Windows</i>)</p>
-  <p><code>build.sh -Ddist.dir=&lt;<i>directory_to_contain_Ant_distribution</i>&gt; dist</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Unix</i>)</p>
-</blockquote>
-
-<p>This will create a binary distribution of Ant in the directory you specified.</p>
-
-<p>The above action does the following:</p>
-<ul>
-
-<li>If necessary it will bootstrap the Ant code. Bootstrapping involves the manual 
-compilation of enough Ant code to be able to run Ant. The bootstrapped Ant is
-used for the remainder of the build steps. </li>
-
-<li>Invokes the bootstrapped Ant with the parameters passed to the build script. In 
-this case, these parameters define an Ant property value and specify the &quot;dist&quot; target
-in Ant's own <code>build.xml</code> file.
-</ul>
-
-<p>On most occasions you will not need to explicitly bootstrap Ant since the build
-scripts do that for you. If however, the build file you are using makes use of features
-not yet compiled into the bootstrapped Ant, you will need to manually bootstrap.
-Run <code>bootstrap.bat</code> (Windows) or <code>bootstrap.sh</code> (UNIX)
-to build a new bootstrap version of Ant.</p>
-
-If you wish to install the build into the current <code>ANT_HOME</code>
-directory, you can use:
-<blockquote>
-  <p><code>build install</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Windows</i>)</p>
-  <p><code>build.sh install</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Unix</i>)</p>
-</blockquote>
-
-You can avoid the lengthy Javadoc step, if desired, with:
-<blockquote>
-  <p><code>build install-lite</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Windows</i>)</p>
-  <p><code>build.sh install-lite</code>&nbsp;&nbsp;&nbsp;&nbsp;(<i>Unix</i>)</p>
-</blockquote>
-This will only install the <code>bin</code> and <code>lib</code> directories. 
-<p>Both the <code>install</code> and 
-<code>install-lite</code> targets will overwrite 
-the current Ant version in <code>ANT_HOME</code>.</p>
-
-<hr>
-<h2><a name="librarydependencies">Library Dependencies</a></h2>
-<p>The following libraries are needed in your CLASSPATH or in the
-install directory's <code>lib</code> directory if you are using the
-indicated feature. Note that only one of the regexp libraries is
-needed for use with the mappers. You will also need to install the
-Ant optional jar containing the task definitions to make these
-tasks available. Please refer to the <a href="#installing">
-Installing Ant</a> section above.</p>
-
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td><b>Jar Name</b></td>
-    <td><b>Needed For</b></td>
-    <td><b>Available At</b></td>
-  </tr>
-  <tr>
-    <td>An XSL transformer like Xalan or XSL:P</td>
-    <td>style task</td>
-    <td><a href="http://xml.apache.org/xalan-j/index.html"
-    target="_top">http://xml.apache.org/xalan-j/index.html</a> or <a
-    href="http://www.clc-marketing.com/xslp/"
-    target="_top">http://www.clc-marketing.com/xslp/</a></td>
-  </tr>
-  <tr>
-    <td>jakarta-regexp-1.2.jar</td>
-    <td>regexp type with mappers</td>
-    <td><a href="http://jakarta.apache.org/regexp/" target="_top">jakarta.apache.org/regexp/</a></td>
-  </tr>
-  <tr>
-    <td>jakarta-oro-2.0.1.jar</td>
-    <td>regexp type with mappers and the perforce tasks</td>
-    <td><a href="http://jakarta.apache.org/oro/" target="_top">jakarta.apache.org/oro/</a></td>
-  </tr>
-  <tr>
-    <td>junit.jar</td>
-    <td>junit tasks</td>
-    <td><a href="http://www.junit.org/" target="_top">www.junit.org</a></td>
-  </tr>
-  <tr>
-    <td>stylebook.jar</td>
-    <td>stylebook task</td>
-    <td>CVS repository of <a href="http://xml.apache.org" target="_top">xml.apache.org</a></td>
-  </tr>
-  <tr>
-    <td>testlet.jar</td>
-    <td>test task</td>
-    <td><a href="http://java.apache.org/framework" target="_top">java.apache.org/framework</a></td>
-  </tr>
-  <tr>
-    <td>antlr.jar</td>
-    <td>antlr task</td>
-    <td><a href="http://www.antlr.org/" target="_top">www.antlr.org</a></td>
-  </tr>
-  <tr>
-    <td >bsf.jar</td>
-    <td>script task</td>
-    <td><a href="http://oss.software.ibm.com/developerworks/projects/bsf" target="_top">
-        oss.software.ibm.com/developerworks/projects/bsf</a></td>
-  </tr>
-  <tr>
-    <td>netrexx.jar</td>
-    <td>netrexx task</td>
-    <td><a href="http://www2.hursley.ibm.com/netrexx" target="_top">
-        www2.hursley.ibm.com/netrexx</a></td>
-  </tr>
-  <tr>
-    <td>rhino.jar</td>
-    <td>javascript with script task</td>
-    <td><a href="http://www.mozilla.org/" target="_top">www.mozilla.org</a></td>
-  </tr>
-  <tr>
-    <td>jpython.jar</td>
-    <td>python with script task</td>
-    <td><a href="http://www.jpython.org/" target="_top">www.jpython.org</a></td>
-  </tr>
-  <tr>
-    <td>netcomponents.jar</td>
-    <td>ftp and telnet tasks</td>
-    <td><a href="http://www.savarese.org/oro/downloads/index.html#NetComponents"
-           target="_top">www.savarese.org/oro/downloads</a></td>
-  </tr>
-</table>
-<br>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/intro.html b/docs/manual/intro.html
deleted file mode 100644
index 45f997a..0000000
--- a/docs/manual/intro.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-<h1><a name="introduction">Introduction</a></h1>
-<p>Ant is a Java-based build tool. In theory, it is kind of like
-<i>make</i>, without <i>make</i>'s wrinkles.</p>
-<h3>Why?</h3>
-<p>Why another build tool when there is already
-<i>make</i>,
-<i>gnumake</i>,
-<i>nmake</i>,
-<i>jam</i>,
-and
-others? Because all those tools have limitations that Ant's original author
-couldn't live with when developing software across multiple platforms.
-Make-like
-tools are inherently shell-based: they evaluate a set of dependencies,
-then execute commands not unlike what you would issue on a shell.
-This means that you
-can easily extend these tools by using or writing any program for the OS that
-you are working on; however, this also means that you limit yourself to the OS,
-or at least the OS type, such as Unix, that you are working on.</p>
-<p>Makefiles are inherently evil as well. Anybody who has worked on them for any
-time has run into the dreaded tab problem. &quot;Is my command not executing
-because I have a space in front of my tab?!!&quot; said the original author of
-Ant way too many times. Tools like Jam took care of this to a great degree, but
-still have yet another format to use and remember.</p>
-<p>Ant is different. Instead of a model where it is extended with shell-based
-commands, Ant is extended using Java classes. Instead of writing shell commands,
-the configuration files are XML-based, calling out a target tree where various
-tasks get executed. Each task is run by an object that implements a particular
-Task interface.</p>
-<p>Granted, this removes some of the expressive power that is inherent in being
-able to construct a shell command such as
-<nobr><code>`find . -name foo -exec rm {}`</code></nobr>, but it
-gives you the ability to be cross-platform - to work anywhere and
-everywhere. And
-hey, if you really need to execute a shell command, Ant has an
-&lt;exec&gt; task that
-allows different commands to be executed based on the OS it is executing
-on.</p>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/optionaltasklist.html b/docs/manual/optionaltasklist.html
deleted file mode 100644
index 4e28c28..0000000
--- a/docs/manual/optionaltasklist.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-<base target="mainFrame">
-</head>
-
-<body>
-
-<h2><a href="toc.html" target="navFrame">Table of Contents</a></h2>
-
-<h3>Optional Tasks</h3>
-<a href="OptionalTasks/dotnet.html">.NET Tasks</a><br>
-<a href="OptionalTasks/antlr.html">ANTLR</a><br>
-<a href="OptionalTasks/cab.html">Cab</a><br>
-<a href="OptionalTasks/clearcase.html">Clearcase Tasks</a><br>
-<a href="OptionalTasks/ccm.html">Continuus/Synergy Tasks</a><br>
-<a href="OptionalTasks/depend.html">Depend</a><br>
-<a href="OptionalTasks/ejb.html">EJB Tasks</a><br>
-<a href="OptionalTasks/ftp.html">FTP</a><br>
-<a href="OptionalTasks/icontract.html">IContract</a><br>
-<a href="OptionalTasks/javacc.html">JavaCC</a><br>
-<a href="OptionalTasks/javah.html">Javah</a><br>
-<a href="OptionalTasks/jdepend.html">JDepend</a><br>
-<a href="OptionalTasks/jjtree.html">JJTree</a><br>
-<a href="OptionalTasks/jlink.html">Jlink</a><br>
-<a href="OptionalTasks/jpcoverage.html">JProbe Coverage</a><br>
-<a href="OptionalTasks/junit.html">JUnit</a><br>
-<a href="OptionalTasks/junitreport.html">JUnitReport</a><br>
-<a href="OptionalTasks/mmetrics.html">Metamata Metrics</a><br>
-<a href="OptionalTasks/maudit.html">Metamata Audit</a><br>
-<a href="OptionalTasks/mimemail.html">MimeMail</a><br>
-<a href="OptionalTasks/mparse.html">MParse</a><br>
-<a href="OptionalTasks/native2ascii.html">Native2Ascii</a><br>
-<a href="OptionalTasks/netrexxc.html">NetRexxC</a><br>
-<a href="OptionalTasks/perforce.html">Perforce Tasks</a><br>
-<a href="OptionalTasks/propertyfile.html">PropertyFile</a><br>
-<a href="OptionalTasks/pvcstask.html">Pvcs</a><br>
-<a href="OptionalTasks/renameextensions.html"><i>RenameExtensions</i></a><br>
-<a href="OptionalTasks/rpm.html">Rpm</a><br>
-<a href="OptionalTasks/script.html">Script</a><br>
-<a href="OptionalTasks/sound.html">Sound</a><br>
-<a href="OptionalTasks/starteam.html">Starteam</a><br>
-<a href="OptionalTasks/stylebook.html">Stylebook</a><br>
-<a href="OptionalTasks/telnet.html">Telnet</a><br>
-<a href="OptionalTasks/test.html">Test</a><br>
-<a href="Integration/VAJAntTool.html#tasks">Visual Age for Java Tasks</a><br>
-<a href="OptionalTasks/vss.html#tasks">Microsoft Visual SourceSafe Tasks</a><br>
-<a href="OptionalTasks/wljspc.html">Weblogic JSP Compiler</a><br>
-<a href="OptionalTasks/xmlvalidate.html">XmlValidate</a><br>
-
-</body>
-</html>
-
diff --git a/docs/manual/resources.html b/docs/manual/resources.html
deleted file mode 100644
index 593bf3a..0000000
--- a/docs/manual/resources.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-<h1>Ant Resources</h1>
-
-<h2><a name="faq">FAQ</a></h2>
-<p>There is an on-line FAQ for Ant at <a target="_top"
-href="http://jakarta.apache.org/ant/faq.html">jakarta.apache.org</a>.</p>
-
-<h2><a name="external">External Resources</a></h2>
-
-<p>There is a powerpoint presentation by Patrick Chanezon (chanezon@netscape.com)
-here: 
-<a href="http://people.netscape.com/chanezon/tech/ant/ant_preso.ppt">http://people.netscape.com/chanezon/tech/ant/ant_preso.ppt</a></p>
-
-<p>Another pres by Steve Loughran (steve_l@iseran.com)
-<a href="http://www.iseran.com/Steve/modern_development_processes.html">http://www.iseran.com/Steve/modern_development_processes.html</a></a>.</p>
-
-<p>and some articles to get ideas from here:
-<a href="http://www-106.ibm.com/developerworks/library/j-ant/?dwzone=java">http://www-106.ibm.com/developerworks/library/j-ant/?dwzone=java</a>
-<a href="http://www.javaworld.com/javaworld/jw-10-2000/jw-1020-ant.html">http://www.javaworld.com/javaworld/jw-10-2000/jw-1020-ant.html</a>
-<a href="http://jakarta.apache.org/commons/cactus/ant.html">http://jakarta.apache.org/commons/cactus/ant.html</a></p>
-
-<p>Here's another Ant presentation, made at the St. Louis Java Users
-Group meeting in March (PowerPoint):
-<a href="http://www.ociweb.com/javasig/knowledgebase/March2001/index.html">http://www.ociweb.com/javasig/knowledgebase/March2001/index.html</a></p>
-
-<p>An article about developing tasks with VAJ by Glenn McAllister can
-be found at <a href="http://www7.software.ibm.com/vad.nsf/data/document2366?OpenDocument&p=1&BCT=1&Footer=1">http://www7.software.ibm.com/vad.nsf/data/document2366?OpenDocument&amp;p=1&amp;BCT=1&amp;Footer=1</a></p>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/running.html b/docs/manual/running.html
deleted file mode 100644
index 1d6479e..0000000
--- a/docs/manual/running.html
+++ /dev/null
@@ -1,139 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h1>Running Ant</h1>
-<p>Running Ant is simple, when you installed it as described in the previous
-section. Just type <code>ant</code>.</p>
-<p>When nothing is specified, Ant looks for a <code>build.xml</code>
-file in the current directory. If found, it uses that file as the
-buildfile. If you use the <code>-find</code> option,
-Ant will search for a buildfile in 
-the parent directory, and so on, until the root of the filesystem 
-has been reached. To make Ant use
-another buildfile, use the command-line
-option <code>-buildfile <i>file</i></code>,
-where <i>file</i> is the buildfile you want to use.</p>
-
-<p>You can also set properties that override properties specified in the
-buildfile (see the <a href="CoreTasks/property.html">property</a> task). 
-This can be done with
-the <nobr><code>-D<i>property</i>=<i>value</i></code></nobr> option,
-where <i>property</i> is the name of the property,
-and <i>value</i> is the value for that property.
-This can also be used to pass in the value of some environment variables.
-You can also access environment variables using the <a href="CoreTasks/property.html">
-property</a> task.
-
-Just pass <nobr><code>-DMYVAR=%MYVAR%</code></nobr> (Windows) or
-<nobr><code>-DMYVAR=$MYVAR</code></nobr> (Unix)
-to Ant - you can then access
-these variables inside your buildfile as <code>${MYVAR}</code>.</p>
-
-<p>Two more options are: <nobr><code>-quiet</code></nobr>,
-which instructs Ant to print less
-information on the console when running, and
-<nobr><code>-verbose</code></nobr>, which causes Ant to print
-additional information to the console.</p>
-
-<p>It is also possible to specify one or more targets that should be executed.
-When omitted, the target that is specified in the
-<code>default</code> attribute of the <code>&lt;project&gt;</code> tag is
-used.</p>
-
-<p>The <nobr><code>-projecthelp</code></nobr> option prints out the
-description of the project, if it exists, followed by a list of this
-project's targets. First those with a description, then those without
-one.</p>
-
-<p>Command-line option summary:</p>
-<pre>ant [options] [target [target2 [target3] ...]]
-Options:
--help                  print this message
--projecthelp           print project help information
--version               print the version information and exit
--quiet                 be extra quiet
--verbose               be extra verbose
--debug                 print debugging information
--emacs                 produce logging information without adornments
--logfile <i>file</i>          use given file for log output
--logger <i>classname</i>      the class that is to perform logging
--listener <i>classname</i>    add an instance of class as a project listener
--buildfile <i>file</i>        use specified buildfile
--find <i>file</i>             search for buildfile towards the root of the filesystem and use the first one found
--D<i>property</i>=<i>value</i>       set <i>property</i> to <i>value</i>
-</pre>
-<h3>Examples</h3>
-<blockquote>
-  <pre>ant</pre>
-</blockquote>
-<p>runs Ant using the <code>build.xml</code> file in the current directory, on
-the default target.</p>
-<blockquote>
-  <pre>ant -buildfile test.xml</pre>
-</blockquote>
-<p>runs Ant using the <code>test.xml</code> file in the current directory, on
-the default target.</p>
-<blockquote>
-  <pre>ant -buildfile test.xml dist</pre>
-</blockquote>
-<p>runs Ant using the <code>test.xml</code> file in the current directory, on a
-target called <code>dist</code>.</p>
-<blockquote>
-  <pre>ant -buildfile test.xml -Dbuild=build/classes dist</pre>
-</blockquote>
-<p>runs Ant using the <code>test.xml</code> file in the current directory, on a
-target called <code>dist</code>, setting the <code>build</code> property to the
-value <code>build/classes</code>.</p>
-
-<h3>Files</h3>
-
-<p>The Ant wrapper script for Unix will source (read and evaluate) the
-file <code>~/.antrc</code> before it does anything - the Windows batch
-file invokes <code>%HOME%\antrc_pre.bat</code> at the start and
-<code>%HOME%\antrc_post.bat</code> at the end.  You can use these
-files to set/unset environment variables that should only be visible
-during the execution of Ant.  See the next section for example.</p>
-
-<h3>Environment Variables</h3>
-
-<p>The wrapper scripts use the following environment variables (if
-set):</p>
-
-<ul>
-  <li><code>JAVACMD</code> full path of the Java executable.  Use this
-  to invoke a different JVM than <code>JAVA_HOME/bin/java(.exe)</code>.</li>
-
-  <li><code>ANT_OPTS</code> command line arguments that should be
-  passed to the JVM - for example, you can define properties or set
-  the maximum Java heap size here.</li>
-</ul>
-
-<h2>Running Ant by Hand</h2>
-<p>If you have installed Ant in the do-it-yourself way, Ant can be started
-with:</p>
-<blockquote>
-  <pre>java -Dant.home=c:\ant org.apache.tools.ant.Main [options] [target]</pre>
-</blockquote>
-
-<p>These instructions actually do exactly the same as the <code>ant</code>
-command. The options and target are the same as when running Ant with the <code>ant</code>
-command. This example assumes you have set your classpath to include:</p>
-<ul>
-<li><code>ant.jar</code></li>
-<li>jars/classes for your XML parser</li>
-<li>the JDK's required jar/zip files</li>
-</ul>
-<br>
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/manual/sysclasspath.html b/docs/manual/sysclasspath.html
deleted file mode 100644
index 6806a79..0000000
--- a/docs/manual/sysclasspath.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-
-<h2><a name="sysclasspath">build.sysclasspath</a></h2>
-<p>The value of the build.sysclasspath property
-control how the system classpath, ie. the classpath in effect when
-Ant is run, affects the behaviour of classpaths in Ant. 
-The default behavior varies from Ant to Ant task.</p>
-
-The values and their meanings are:
-
-<table cellspacing="20">
-<tr>
-<th align="left" valign="top">only</th>
-<td>Only the system classpath is used and classpaths specified in build files,
-etc are ignored. This situation could be considered as the person running
-the build file knows more about the environment than the person writing the
-build file
-</td>
-</tr>
-
-<tr>
-<th align="left" valign="top">ignore</th>
-<td>
-The system classpath is ignored. This situation is the reverse of the
-above. The person running the build trusts the build file writer to get the
-build file right
-</td>
-</tr>
-
-<tr>
-<th align="left" valign="top">last</th>
-<td>
-The classpath is concatenated to any specified classpaths at the end. This
-is a compromise, where the build file writer has priority.
-</td>
-</tr>
-
-<tr>
-<th align="left" valign="top">first</th>
-<td>
-Any specified classpaths are concatenated to the system classpath. This is
-the other form of compromise where the build runner has priority.
-</td>
-</tr>
-</table>
-
-</body>
-</html>
-
diff --git a/docs/manual/toc.html b/docs/manual/toc.html
deleted file mode 100644
index f3ac396..0000000
--- a/docs/manual/toc.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-<base target="mainFrame">
-</head>
-
-<body>
-
-<h2>Table of Contents</h2>
-<a href="intro.html">Introduction</a><br>
-<a href="install.html">Installing Ant</a><br>
-<a href="running.html">Running Ant</a><br>
-<a href="using.html">Using Ant</a><br>
-<a href="coretasklist.html" target="navFrame">Built-in Tasks</a><br>
-<a href="optionaltasklist.html" target="navFrame">Optional Tasks</a><br>
-<a href="ide.html" target="navFrame">Editor/IDE Integration</a><br>
-<a href="develop.html">Developing with Ant</a><br>
-<a href="api/index.html" target="_top">Ant API</a><br>
-<a href="resources.html">Ant Resources</a><br>
-<a href="LICENSE">License</a><br>
-<a href="feedback.html">Feedback</a><br><br>
-<a href="credits.html">Authors</a><br>
-
-</body>
-</html>
-
diff --git a/docs/manual/using.html b/docs/manual/using.html
deleted file mode 100644
index 7c635ae..0000000
--- a/docs/manual/using.html
+++ /dev/null
@@ -1,475 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<title>Ant User Manual</title>
-</head>
-
-<body>
-<h1>Using Ant</h1>
-<h2><a name="buildfile">Writing a Simple Buildfile</a></h2>
-<p>Ant's buildfiles are written in XML. Each buildfile contains one project.</p>
-<p>Each task element of the buildfile can have an <code>id</code> attribute and
-can later be referred to by the value supplied to this. The value has
-to be unique. (For additional information, see the
-<a href="#tasks"> Tasks</a> section below.)</p>
-<h3>Projects</h3>
-<p>A <i>project</i> has three attributes:</p>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">name</td>
-    <td valign="top">the name of the project.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">default</td>
-    <td valign="top">the default target to use when no target is supplied.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">basedir</td>
-    <td valign="top">the base directory from which all path calculations are
-      done. This attribute might be overridden by setting
-      the &quot;basedir&quot;
-      property beforehand. When this is done, it must be omitted in the
-      project tag. If neither the attribute nor the property have
-      been set, the parent directory of the buildfile will be used.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-<p>Optionally, a description for the project can be provided as a
-top-level &lt;description&gt; element (see the <a
-href="CoreTypes/description.html">description</a> type).</p>
-
-<p>Each project defines one or more <i>targets</i>.
-A target is a set of <i>tasks</i> you want
-to be executed. When starting Ant, you can select which target(s) you
-want to have executed. When no target is given,
-the project's default is used.</p>
-
-<h3>Targets</h3>
-<p>A target can depend on other targets. You might have a target for compiling,
-for example, and a target for creating a distributable. You can only build a
-distributable when you have compiled first, so the distribute target
-<i>depends on</i> the compile target. Ant resolves these dependencies.</p>
-<p>It should be noted, however, that Ant's <code>depends</code> attribute
-only specifies the <i>order</i> in which targets should be executed - it
-does not affect whether the target that specifies the dependency(s) gets
-executed if the dependent target(s) did not (need to) run.
-</p>
-<p>Ant tries to execute the targets in the <code>depends</code>
-attribute in the order
-they appear (from left to right). Keep in mind that it is possible that a target
-can get executed earlier when an earlier target depends on it:</p>
-<blockquote>
-<pre>&lt;target name=&quot;A&quot;/&gt;
-&lt;target name=&quot;B&quot; depends=&quot;A&quot;/&gt;
-&lt;target name=&quot;C&quot; depends=&quot;B&quot;/&gt;
-&lt;target name=&quot;D&quot; depends=&quot;C,B,A&quot;/&gt;</pre>
-</blockquote>
-<p>Suppose we want to execute target D. From its
-<code>depends</code> attribute, you
-might think that first target C, then B and then A is executed.
-Wrong! C depends on B, and B depends on A, so first A is executed, then B, then C, and finally D.</p>
-<p>A target gets executed only once, even when more than one target
-depends on it (see the previous example).</p>
-<p>A target also has the ability to perform its execution if (or
-unless) a property has been set. This allows, for example, better
-control on the building process depending on the state of the system
-(java version, OS, command-line property defines, etc.).  To make a target
-<i>sense</i> this property, you should add the <code>if</code> (or
-<code>unless</code>) attribute with the name of the property that the target
-should react to. For example:</p>
-<blockquote>
-  <pre>&lt;target name=&quot;build-module-A&quot; if=&quot;module-A-present&quot;/&gt;</pre>
-  <pre>&lt;target name=&quot;build-own-fake-module-A&quot; unless=&quot;module-A-present&quot;/&gt;</pre>
-</blockquote>
-<p>If no <code>if</code> and no <code>unless</code> attribute is present,
-the target will always be executed.</p>
-<p>The optional <code>description</code> attribute can be used to provide a one-line description of this target, which is printed by the
-<nobr><code>-projecthelp</code></nobr> command-line option.</p>
-<p>It is a good practice to place your <a
-href="CoreTasks/tstamp.html">tstamp</a> tasks in a so-called
-<i>initialization</i> target, on which
-all other targets depend. Make sure that target is always the first one in
-the depends list of the other targets. In this manual, most initialization targets
-have the name &quot;init&quot;.</p>
-<p>A target has the following attributes:</p>
-<table border="1" cellpadding="2" cellspacing="0">
-  <tr>
-    <td valign="top"><b>Attribute</b></td>
-    <td valign="top"><b>Description</b></td>
-    <td align="center" valign="top"><b>Required</b></td>
-  </tr>
-  <tr>
-    <td valign="top">name</td>
-    <td valign="top">the name of the target.</td>
-    <td align="center" valign="top">Yes</td>
-  </tr>
-  <tr>
-    <td valign="top">depends</td>
-    <td valign="top">a comma-separated list of names of targets on which this
-      target depends.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">if</td>
-    <td valign="top">the name of the property that must be set in order for this
-      target to execute.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">unless</td>
-    <td valign="top">the name of the property that must not be set in order 
-      for this target to execute.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-  <tr>
-    <td valign="top">description</td>
-    <td valign="top">a short description of this target's function.</td>
-    <td align="center" valign="top">No</td>
-  </tr>
-</table>
-
-<a name="tasks">
-<h3>Tasks</h3>
-</a>
-<p>A task is a piece of code that can be executed.</p>
-<p>A task can have multiple attributes (or arguments, if you prefer). The value
-of an attribute might contain references to a property. These references will be
-resolved before the task is executed.</p>
-<p>Tasks have a common structure:</p>
-<blockquote>
-  <pre>&lt;<i>name</i> <i>attribute1</i>=&quot;<i>value1</i>&quot; <i>attribute2</i>=&quot;<i>value2</i>&quot; ... /&gt;</pre>
-</blockquote>
-<p>where <i>name</i> is the name of the task,
-<i>attributeN</i> is the attribute name, and
-<i>valueN</i> is the value for this attribute.</p>
-<p>There is a set of <a href="coretasklist.html" target="navFrame">built-in tasks</a>, along with a 
-number of
-<a href="optionaltasklist.html" target="navFrame"> optional tasks</a>, but it is also very
-easy to <a href="develop.html#writingowntask">write your own</a>.</p>
-<p>All tasks share a task name attribute. The value of
-this attribute will be used in the logging messages generated by
-Ant.</p>
-Tasks can be assigned an <code>id</code> attribute:
-<blockquote>
-<pre>&lt;<i>taskname</i> id="<i>taskID</i>" ... /&gt;</pre>
-</blockquote>
-where <i>taskname</i> is the name of the task, and <i>taskID</i> is
-a unique name for this task.
-You can refer to the
-corresponding task object in scripts or other tasks via this name.
-For example, in scripts you could do:
-<blockquote>
-<pre>
-&lt;script ... &gt;
-  task1.setFoo("bar");
-&lt;/script&gt;
-</pre>
-</blockquote>
-to set the <code>foo</code> attribute of this particular task instance.
-In another task (written in Java), you can access the instance via
-<code>project.getReference("task1")</code>.
-<p>
-Note<sup>1</sup>: If "task1" has not been run yet, then
-it has not been configured (ie., no attributes have been set), and if it is
-going to be configured later, anything you've done to the instance may
-be overwritten.
-</p>
-<p>
-Note<sup>2</sup>: Future versions of Ant will most likely <i>not</i>
-be backward-compatible with this behaviour, since there will likely be no
-task instances at all, only proxies.
-</p>
-
-<h3>Properties</h3>
-<p>A project can have a set of properties. These might be set in the buildfile
-by the <a href="CoreTasks/property.html">property task</a>, or might be set outside Ant. A
-property has a name and a value. Properties may be used in the value of
-task attributes. This is done by placing the property name between
-&quot;<code>${</code>&quot; and &quot;<code>}</code>&quot; in the
-attribute value. For example,
-if there is a &quot;builddir&quot; property with the value
-&quot;build&quot;, then this could be used in an attribute like this:
-<code>${builddir}/classes</code>.
-This is resolved as <code>build/classes</code>.</p>
-
-<h3>Built-in Properties</h3>
-<p>Ant provides access to all system properties as if they had been
-defined using a <code>&lt;property&gt;</code> task.
-For example, <code>${os.name}</code> expands to the
-name of the operating system.</p>
-<p>For a list of system properties see 
-<a href="http://java.sun.com/j2se/1.3/docs/api/java/lang/System.html#getProperties()">the Javadoc of System.getProperties</a>.
-<p>In addition, Ant has some built-in properties:</p>
-<pre>
-basedir             the absolute path of the project's basedir (as set
-                    with the basedir attribute of &lt;project&gt;).
-ant.file            the absolute path of the buildfile.
-ant.version         the version of Ant
-ant.project.name    the name of the project that is currently executing;
-                    it is set in the name attribute of &lt;project&gt;.
-ant.java.version    the JVM version Ant detected; currently it can hold
-                    the values &quot;1.1&quot;, &quot;1.2&quot; and &quot;1.3&quot;.
-</pre>
-
-<h3>Example</h3>
-<pre>
-&lt;project name=&quot;MyProject&quot; default=&quot;dist&quot; basedir=&quot;.&quot;&gt;
-
-  &lt;!-- set global properties for this build --&gt;
-  &lt;property name=&quot;src&quot; value=&quot;.&quot;/&gt;
-  &lt;property name=&quot;build&quot; value=&quot;build&quot;/&gt;
-  &lt;property name=&quot;dist&quot;  value=&quot;dist&quot;/&gt;
-
-  &lt;target name=&quot;init&quot;&gt;
-    &lt;!-- Create the time stamp --&gt;
-    &lt;tstamp/&gt;
-    &lt;!-- Create the build directory structure used by compile --&gt;
-    &lt;mkdir dir=&quot;${build}&quot;/&gt;
-  &lt;/target&gt;
-
-  &lt;target name=&quot;compile&quot; depends=&quot;init&quot;&gt;
-    &lt;!-- Compile the java code from ${src} into ${build} --&gt;
-    &lt;javac srcdir=&quot;${src}&quot; destdir=&quot;${build}&quot;/&gt;
-  &lt;/target&gt;
-
-  &lt;target name=&quot;dist&quot; depends=&quot;compile&quot;&gt;
-    &lt;!-- Create the distribution directory --&gt;
-    &lt;mkdir dir=&quot;${dist}/lib&quot;/&gt;
-
-    &lt;!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file --&gt;
-    &lt;jar jarfile=&quot;${dist}/lib/MyProject-${DSTAMP}.jar&quot; basedir=&quot;${build}&quot;/&gt;
-  &lt;/target&gt;
-
-  &lt;target name=&quot;clean&quot;&gt;
-    &lt;!-- Delete the ${build} and ${dist} directory trees --&gt;
-    &lt;delete dir=&quot;${build}&quot;/&gt;
-    &lt;delete dir=&quot;${dist}&quot;/&gt;
-  &lt;/target&gt;
-&lt;/project&gt;
-</pre>
-
-<h3>Token Filters</h3>
-<p>A project can have a set of tokens that might be automatically expanded if
-found when a file is copied, when the filtering-copy behavior is selected in the
-tasks that support this. These might be set in the buildfile
-by the <a href="CoreTasks/filter.html">filter task</a>.&nbsp;</p>
-<p>Since this can potentially be a very harmful behavior,
-the tokens in the files <b>must</b>
-be of the form <code>@</code><i>token</i><code>@</code>, where
-<i>token</i> is the token name that is set
-in the filter task. This token syntax matches the syntax of other build systems
-that perform such filtering and remains sufficiently orthogonal to most
-programming and scripting languages, as well as with documentation systems.</p>
-<p>Note: If a token with the format <code>@</code><i>token</i><code>@</code>
-is found in a file, but no
-filter is associated with that token, no changes take place;
-therefore, no escaping
-method is available - but as long as you choose appropriate names for your
-tokens, this should not cause problems.</p>
-<p><b>Warning:</b> If you copy binary files with filtering turned on, you can corrupt the
-files. This feature should be used with text files <em>only</em>.</p>
-
-<h3><a name="path">Path-like Structures</a></h3>
-<p>You can specify <code>PATH</code>- and <code>CLASSPATH</code>-type
-references using both
-&quot;<code>:</code>&quot; and &quot;<code>;</code>&quot; as separator
-characters. Ant will
-convert the separator to the correct character of the current operating
-system.</p>
-<p>Wherever path-like values need to be specified, a nested element can
-be used. This takes the general form of:</p>
-<pre>
-    &lt;classpath&gt;
-      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
-      &lt;pathelement location=&quot;lib/helper.jar&quot;/&gt;
-    &lt;/classpath&gt;
-</pre>
-<p>The <code>location</code> attribute specifies a single file or
-directory relative to the project's base directory (or an absolute
-filename), while the <code>path</code> attribute accepts colon-
-or semicolon-separated lists of locations. The <code>path</code>
-attribute is intended to be used with predefined paths - in any other
-case, multiple elements with <code>location</code> attributes should be
-preferred.</p>
-<p>As a shortcut, the <code>&lt;classpath&gt;</code> tag
-supports <code>path</code> and
-<code>location</code> attributes of its own, so:</p>
-<pre>
-    &lt;classpath&gt;
-      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
-    &lt;/classpath&gt;
-</pre>
-<p>can be abreviated to:</p>
-<pre>
-    &lt;classpath path=&quot;${classpath}&quot;/&gt;
-</pre>
-<p>In addition, <a href="CoreTypes/fileset.html">FileSet</a>s can be specified via
-nested <code>&lt;fileset&gt;</code> elements. The order in which the files
-building up a fileset are added to the path-like structure is not
-defined.</p>
-<pre>
-    &lt;classpath&gt;
-      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
-      &lt;fileset dir=&quot;lib&quot;&gt;
-        &lt;include name=&quot;**/*.jar&quot;/&gt;
-      &lt;/fileset&gt;
-      &lt;pathelement location=&quot;classes&quot;/&gt;
-    &lt;/classpath&gt;
-</pre>
-<p>This builds a path that holds the value of <code>${classpath}</code>,
-followed by all jar files in the <code>lib</code> directory, followed
-by the <code>classes</code> directory.</p>
-<p>If you want to use the same path-like structure for several tasks,
-you can define them with a <code>&lt;path&gt;</code> element at the
-same level as <i>target</i>s, and reference them via their
-<i>id</i> attribute - see <a href="#references">References</a> for an
-example.</p>
-<p>A path-like structure can include a reference to another path-like
-structure via nested <code>&lt;path&gt;</code> elements:</p>
-<pre>
-    &lt;path id=&quot;base.path&quot;&gt;
-      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
-      &lt;fileset dir=&quot;lib&quot;&gt;
-        &lt;include name=&quot;**/*.jar&quot;/&gt;
-      &lt;/fileset&gt;
-      &lt;pathelement location=&quot;classes&quot;/&gt;
-    &lt;/path&gt;
-
-    &lt;path id=&quot;tests.path&quot;&gt;
-      &lt;path refid=&quot;base.path&quot;/&gt;
-      &lt;pathelement location=&quot;testclasses&quot;/&gt;
-    &lt;/path&gt;
-</pre>
- The shortcuts previously mentioned for <code>&lt;classpath&gt;</code> are also valid for <code>&lt;path&gt;</code>.For example:
-<pre>
-    &lt;path id=&quot;base.path&quot;&gt;
-      &lt;pathelement path=&quot;${classpath}&quot;/&gt;
-    &lt;/path&gt;
-</pre>
-can be written as:
-<pre>
-    &lt;path id=&quot;base.path&quot; path=&quot;${classpath}&quot;/&gt;
-</pre>
-
-<h3><a name="arg">Command-line Arguments</a></h3>
-<p>Several tasks take arguments that will be passed to another
-process on the command line. To make it easier to specify arguments
-that contain space characters, nested <code>arg</code> elements can be used.</p>
-<table border="1" cellpadding="2" cellspacing="0">
-<tr>
-  <td width="12%" valign="top"><b>Attribute</b></td>
-  <td width="78%" valign="top"><b>Description</b></td>
-  <td width="10%" valign="top"><b>Required</b></td>
-</tr>
-  <tr>
-    <td valign="top">value</td> 
-    <td valign="top">a single command-line argument; can contain space
-      characters.</td>
-    <td align="center" rowspan="4">Exactly one of these.</td>
-  </tr>
-  <tr>
-    <td valign="top">line</td> 
-    <td valign="top">a space-delimited list of command-line arguments.</td>
-  </tr>
-  <tr>
-    <td valign="top">file</td> 
-    <td valign="top">The name of a file as a single command-line
-      argument; will be replaced with the absolute filename of the file.</td>
-  </tr>
-  <tr>
-    <td valign="top">path</td> 
-    <td valign="top">A string that will be treated as a path-like
-      string as a single command-line argument; you can use <code>;</code>
-      or <code>:</code> as
-      path separators and Ant will convert it to the platform's local
-      conventions.</td>
-  </tr>
-</table>
-<h4>Examples</h4>
-<blockquote><pre>
-  &lt;arg value=&quot;-l -a&quot;/&gt;
-</pre></blockquote>
-<p>is a single command-line argument containing a space character.</p>
-<blockquote><pre>
-  &lt;arg line=&quot;-l -a&quot;/&gt;
-</pre></blockquote>
-<p>represents two separate command-line arguments.</p>
-<blockquote><pre>
-  &lt;arg path=&quot;/dir;/dir2:\dir3&quot;/&gt;
-</pre></blockquote>
-<p>is a single command-line argument with the value
-<code>\dir;\dir2;\dir3</code> on DOS-based systems and
-<code>/dir:/dir2:/dir3</code> on Unix-like systems.</p>
-
-<h3><a name="references">References</a></h3>
-<p>The <code>id</code> attribute of the buildfile's elements can be
-used to refer to them. This can useful if you are going to replicate
-the same snippet of XML over and over again - using a
-<code>&lt;classpath&gt;</code> structure more than once for
-example.</p>
-<p>The following example:</p>
-<blockquote><pre>
-&lt;project ... &gt;
-  &lt;target ... &gt;
-    &lt;rmic ...&gt;
-      &lt;classpath&gt;
-        &lt;pathelement location=&quot;lib/&quot;/&gt;
-        &lt;pathelement path=&quot;${java.class.path}/&quot;/&gt;
-        &lt;pathelement path=&quot;${additional.path}&quot;/&gt;
-      &lt;/classpath&gt;
-    &lt;/rmic&gt;
-  &lt;/target&gt;
-
-  &lt;target ... &gt;
-    &lt;javac ...&gt;
-      &lt;classpath&gt;
-        &lt;pathelement location=&quot;lib/&quot;/&gt;
-        &lt;pathelement path=&quot;${java.class.path}/&quot;/&gt;
-        &lt;pathelement path=&quot;${additional.path}&quot;/&gt;
-      &lt;/classpath&gt;
-    &lt;/javac&gt;
-  &lt;/target&gt;
-&lt;/project&gt;
-</pre></blockquote>
-<p>could be rewritten as:</p>
-<blockquote><pre>
-&lt;project ... &gt;
-  &lt;path id=&quot;project.class.path&quot;&gt;
-    &lt;pathelement location=&quot;lib/&quot;/&gt;
-    &lt;pathelement path=&quot;${java.class.path}/&quot;/&gt;
-    &lt;pathelement path=&quot;${additional.path}&quot;/&gt;
-  &lt;/path&gt;
-
-  &lt;target ... &gt;
-    &lt;rmic ...&gt;
-      &lt;classpath refid=&quot;project.class.path&quot;/&gt;
-    &lt;/rmic&gt;
-  &lt;/target&gt;
-
-  &lt;target ... &gt;
-    &lt;javac ...&gt;
-      &lt;classpath refid=&quot;project.class.path&quot;/&gt;
-    &lt;/javac&gt;
-  &lt;/target&gt;
-&lt;/project&gt;
-</pre></blockquote>
-<p>All tasks that use nested elements for <a
-href="CoreTypes/patternset.html">PatternSet</a>s, <a href="CoreTypes/fileset.html">FileSet</a>s or
-<a href="#path">path-like structures</a> accept references to these
-structures as well.</p>
-
-<hr>
-<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
-Reserved.</p>
-
-</body>
-</html>
-
diff --git a/docs/problems.html b/docs/problems.html
deleted file mode 100644
index 28d6d36..0000000
--- a/docs/problems.html
+++ /dev/null
@@ -1,370 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
-<!-- Content Stylesheet for Site -->
-
-        
-<!-- start the processing -->
-    <html>
-    <head>
-      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-  
-                      <meta name="author" value="Conor MacNeill">
-  <meta name="email" value="conor@apache.org">
-        
-      <title>The Jakarta Site - Having Problems?</title>
-    </head>
-  
-    <body bgcolor="#ffffff" text="#000000" link="#525D76">    
-      <table border="0" width="100%" cellspacing="0">
-        <!-- TOP IMAGE -->
-        <tr>
-                <td colspan="2">
-    <a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" align="left" border="0"/></a>
-    </td>
-          </tr>
-      </table>
-      <table border="0" width="100%" cellspacing="4">
-        <tr><td colspan="2">
-          <hr noshade="" size="1"/>
-        </td></tr>
-        
-        <tr>
-          <!-- LEFT SIDE NAVIGATION -->
-          <td valign="top" nowrap="true">
-                <p><strong>Ant</strong></p>
-    <ul>
-          <li>      <a href="./index.html">Front Page</a>
-  </li>
-          <li>      <a href="./antnews.html">News</a>
-  </li>
-          <li>      <a href="./manual/index.html">Documentation</a>
-  </li>
-          <li>      <a href="./external.html">External Tools and Tasks</a>
-  </li>
-          <li>      <a href="./resources.html">Resources</a>
-  </li>
-          <li>      <a href="./faq.html">Ant FAQ</a>
-  </li>
-          <li>      <a href="./problems.html">Having Problems?</a>
-  </li>
-        </ul>
-      <p><strong>Download</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/binindex.html">Binaries</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/sourceindex.html">Source Code</a>
-  </li>
-        </ul>
-      <p><strong>Jakarta</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/news.html">News & Status</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/mission.html">Mission</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/guidelines.html">Guidelines Notes</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/faqs.html">FAQs</a>
-  </li>
-        </ul>
-      <p><strong>Get Involved</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/getinvolved.html">Overview</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/cvsindex.html">CVS Repositories</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/mail.html">Mailing Lists</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/library.html">Reference Library</a>
-  </li>
-          <li>      <a href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
-  </li>
-          <li>      <a href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=Ant&bug_severity=Enhancement">Enhancement Requests</a>
-  </li>
-        </ul>
-            </td>
-          <td align="left" valign="top">
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Having Problems?"><strong>Having Problems?</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>If you are having problems with Ant, this page details some steps you can take
-         to try and resolve the problem. If you can't resolve the problem then this page will help
-         you collect some of the relevant information to provide a bug report. This information will help 
-         the Ant developers understand and resolve the problem. Of course, not all of the steps here will 
-         make sense for every problem you encounter. These are just some suggestions to 
-         point you in the right direction.
-      </p>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Read the Manual"><strong>Read the Manual</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>The first step to take when you have a problem is to read the <a href="manual/index.html">
-           manual</a> entry for the task or concept that is giving you trouble. Check particularly the meaning of
-           attributes and nested elements. Perhaps an attribute would provide the behavior you require. If you
-           have problems with the manual, then you can submit a documentation bug report (see below) to help us
-           improve the Ant documentation.
-        </p>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Examine Debug Output"><strong>Examine Debug Output</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>The first step when you have a problem is to see what Ant is doing. Try running Ant with
-           The verbose flag<br /><br />
-           <code>ant -verbose</code><br /><br />
-           or<br /><br />
-           <code>ant -v</code><br /><br />
-           
-           This will produce something which starts like the following:</p>
-                                  <div align="left">
-    <table cellspacing="4" cellpadding="0" border="0">
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#ffffff"><pre>
-Ant version 1.4alpha compiled on August 6 2001
-Buildfile: build.xml
-Detected Java version: 1.3 in: f:\jdk1.3\jre
-Detected OS: Windows NT
-parsing buildfile \jakarta-ant\build.xml with 
-URI = file:/jakarta-ant/build.xml
-Project base dir set to: \jakarta-ant
- [property] Loading \jakarta-ant\.ant.properties
- [property] Unable to find property file: \jakarta-ant\.ant.properties
- [property] Loading \conor\.ant.properties
- [property] Override ignored for debug
-
-prepare:
-
-check_for_optional_packages:
-...
-           </pre></td>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-    </table>
-  </div>
-                                <p>
-             You may be able to see in this trace what ant is doing and why it takes a particular 
-             course of action. If you need even more information you can use the <code>-debug</code> 
-             flag rather than <code>-verbose</code>. This will generally produce so much output that 
-             you may want to save the output and analyze it in an editor.
-           </p>
-                                <p>So, once you have all this debug information, how can you use it to solve your problem? 
-              That will depend on the task in question and the nature of your problem. Each task logs
-              different aspects of its operation, but it will give you an idea of what is going on. For
-              example, the &lt;javac&gt; task logs the reasons why it chooses to compile particular 
-              classes and the equivalent command it is using. The following trace (which has been edited
-              and reformatted for clarity) shows javac adding one class but skipping another. This is followed 
-              by the compiler arguments and a summary of all the classes to be compiled. 
-           </p>
-                                  <div align="left">
-    <table cellspacing="4" cellpadding="0" border="0">
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#ffffff"><pre>
- [javac] org\apache\tools\ant\listener\Log4jListener.java added as 
-         \build\classes\org\apache\tools\ant\listener\Log4jListener.class 
-             is outdated.
- [javac] org\apache\tools\ant\Location.java omitted as 
-         \build\classes\org\apache\tools\ant\Location.class is up to date.
-  ...
- [javac] Compiling 1 source file to \jakarta-ant\build\classes
- [javac] Using modern compiler
- [javac] Compilation args: -d \jakarta-ant\build\classes -classpath 
-         \jakarta-ant\build\classes;F:\jdk1.3\lib\tools.jar;
-         \Ant\lib\optional.jar;\Ant\lib\log4j.jar;
-         \Ant\lib\junit.jar;\Ant\lib\jaxp.jar;
-         \Ant\lib\crimson.jar;\Ant\lib\ant.jar 
-         -sourcepath \jakarta-ant\src\main -g:none -O
-    [javac] File to be compiled:
-    \src\main\org\apache\tools\ant\listener\Log4jListener.java  
-</pre></td>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-    </table>
-  </div>
-                                <p>
-              In many cases Ant tasks are wrappers around OS commands or other java classes. In debug mode, many
-              of these tasks will print out the equivalent command line, as the &lt;javac&gt; task above does. If 
-              you are having a problem, it is often useful to run the command directly in the same way Ant is doing 
-              and see if the problem persists. The problem may lie in the command being run by Ant, or in the way 
-              the Ant task is running the command. You can also see the effect of changing attribute values on the
-              generated command line. This can help you to understand whether you are using the correct attributes
-              and values.
-            </p>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Has it been fixed?"><strong>Has it been fixed?</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>
-          After examining the debug output, you still believe that the problem you are having may be caused by Ant. 
-          Chances are that someone else may have already encountered this problem and perhaps it has been
-          fixed. The next step, therefore, may be to try a nightly build of Ant to see if the 
-          problem has been fixed. Nightly builds for Ant are available from the 
-          <a href="/builds/jakarta-ant/nightly/">Jakarta web site</a>. While Ant nightly
-          builds are typically quite stable and are used by <a href="/builds/gump/latest/">
-          Gump</a> to build many other Jakarta projects, these builds should be treated as experimental. You can 
-          install and verify whether your problem has been fixed. Note that nightly builds do not build many of the
-          optional tasks the come with Ant. A snapshot of these optional tasks is occasionally uploaded to the nightly 
-          download <a href="/builds/jakarta-ant/nightly/optional/">area</a>. Note that even 
-          this snapshot does not contain every optional task.
-        </p>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Has it been reported?"><strong>Has it been reported?</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>
-          If the current nightly build doesn't resolve your problem, it is possible that someone else has reported
-          the issue. It is time to look at the <a href="http://nagoya.apache.org/bugzilla/">Apache Bug Database</a>.
-          This system is easy to use and it will let you search the 
-          <a href="http://nagoya.apache.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;product=Ant&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.bug_id">
-          currently open 
-          </a>.
-          and resolved bugs to see if your problem has already been reported.
-          If your problem has been reported, you can see whether any of the developers have commented, 
-          suggesting workarounds or the reason for the bug, etc. You may have more information to add (see about 
-          creating bug reports below), in which case, go right ahead and add it. If you can't add more information
-          you may just want to vote for this bug, and perhaps add yourself to the CC list to follow the progress of
-          this bug.
-        </p>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Filing a Bug report"><strong>Filing a Bug report</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>By this time you may have decided that there is a bug in Ant. You have a few choices at this 
-           point. You can send an email to the ant-user mailing list to see if others have encountered your issue
-           and how they may have worked around it. If after some discussion, you still feel you have a bug, it 
-           is time to create a bug report. This is a simple operation in the Bug Database. Please try to provide 
-           as much information as possible to assist the developers in resolving the bug. Please try to enter correct 
-           values for the various inputs when creating the bug. Once the bug is created you can add attachments to
-           the bug report. 
-        </p>
-                                <p>What information should you include in your bug report? The easiest bugs to fix are those which are most 
-           easily reproducible, so if you can, it is really helpful to produce a small test case that exhibits the
-           problem. In this case, you would attach the build file and other files necessary to reproduce the problem
-           probably packed together in an archive. If you can't produce a test case, you should try to include a 
-           snippet from your build file and the relevant sections from the debug out from Ant. Try to include the 
-           header information where Ant states the version, the OS and VM information etc. As the debug output is 
-           likely to be very large, you should try to remove the output which is not relevant. Once the bug is 
-           entered into the Bug Database, you will be kept informed about progress on the bug. If you receive email
-           asking for further information, please try to respond as it will aid in the resolution of your bug.
-        </p>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Asking for an enhancement"><strong>Asking for an enhancement</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>Sometimes, you may find that Ant just doesn't do what you want. It isn't a bug, as such, since Ant 
-            is working the way it is supposed to. Perhaps it is something that hasn't been thought of yet, or 
-            a completely new task. For these situations you will want to raise an enhancement request. 
-            Enhancement requests are managed using the same Apache Bug Database described above. 
-            These are just a different type of report. If you look in the database, you will see that one of 
-            the severity settings for a bug is "Enhancement". So, just fill the bug report in, and 
-            in the description, state how you would like to have Ant enhanced. Again you should check whether
-            there are any existing enhancment requests that cover your needs. If so, just add your vote to these.
-         </p>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Fixing the Bug"><strong>Fixing the Bug</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>If you aren't satisfied just filing a bug report, you can try to find and fix the problem yourself. The 
-           best way to do that is by working against the latest code from CVS. Alternatively, you can work with the
-           source code from the source distributions available on the Jakarta website. If you are going to tackle the
-           issues at this level, you may want to discuss details on the ant-dev mailing list. Once you have a fix 
-           for the problem, you may either submit the patch to the ant-dev mailing list or enter into the Bug
-           Database as described above, attaching the patch. Using the Bug database has the advantage of tracking
-           the progress of your bug.
-        </p>
-                    </blockquote>
-    </td></tr>
-  </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-              </td>
-        </tr>
-
-        <!-- FOOTER -->
-        <tr><td colspan="2">
-          <hr noshade="" size="1"/>
-        </td></tr>
-        <tr><td colspan="2">
-          <div align="center"><font color="#525D76" size="-1"><em>
-          Copyright &#169; 1999-2001, Apache Software Foundation
-          </em></font></div>
-        </td></tr>
-      </table>
-    </body>
-  </html>
-<!-- end the processing -->
-
-
-
-
diff --git a/docs/resources.html b/docs/resources.html
deleted file mode 100644
index 2e703a9..0000000
--- a/docs/resources.html
+++ /dev/null
@@ -1,913 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
-<!-- Content Stylesheet for Site -->
-
-        
-<!-- start the processing -->
-    <html>
-    <head>
-      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-  
-                      <meta name="author" value="Stefan Bodewig">
-  <meta name="email" value="bodewig@apache.org">
-        
-      <title>The Jakarta Site - Resources</title>
-    </head>
-  
-    <body bgcolor="#ffffff" text="#000000" link="#525D76">    
-      <table border="0" width="100%" cellspacing="0">
-        <!-- TOP IMAGE -->
-        <tr>
-                <td colspan="2">
-    <a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" align="left" border="0"/></a>
-    </td>
-          </tr>
-      </table>
-      <table border="0" width="100%" cellspacing="4">
-        <tr><td colspan="2">
-          <hr noshade="" size="1"/>
-        </td></tr>
-        
-        <tr>
-          <!-- LEFT SIDE NAVIGATION -->
-          <td valign="top" nowrap="true">
-                <p><strong>Ant</strong></p>
-    <ul>
-          <li>      <a href="./index.html">Front Page</a>
-  </li>
-          <li>      <a href="./antnews.html">News</a>
-  </li>
-          <li>      <a href="./manual/index.html">Documentation</a>
-  </li>
-          <li>      <a href="./external.html">External Tools and Tasks</a>
-  </li>
-          <li>      <a href="./resources.html">Resources</a>
-  </li>
-          <li>      <a href="./faq.html">Ant FAQ</a>
-  </li>
-          <li>      <a href="./problems.html">Having Problems?</a>
-  </li>
-        </ul>
-      <p><strong>Download</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/binindex.html">Binaries</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/sourceindex.html">Source Code</a>
-  </li>
-        </ul>
-      <p><strong>Jakarta</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/news.html">News & Status</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/mission.html">Mission</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/guidelines.html">Guidelines Notes</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/faqs.html">FAQs</a>
-  </li>
-        </ul>
-      <p><strong>Get Involved</strong></p>
-    <ul>
-          <li>      <a href="http://jakarta.apache.org/site/getinvolved.html">Overview</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/cvsindex.html">CVS Repositories</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/mail.html">Mailing Lists</a>
-  </li>
-          <li>      <a href="http://jakarta.apache.org/site/library.html">Reference Library</a>
-  </li>
-          <li>      <a href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=Ant">Bug Database</a>
-  </li>
-          <li>      <a href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=Ant&bug_severity=Enhancement">Enhancement Requests</a>
-  </li>
-        </ul>
-            </td>
-          <td align="left" valign="top">
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="FAQs"><strong>FAQs</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                          <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="At Ant's website"><strong>At Ant's website</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                          <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          FAQ
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="faq.html">http://jakarta.apache.org/ant/faq.html</a>
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="jGuru"><strong>jGuru</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>jGuru hosts an interactive Ant discussion forum and FAQ system</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Forum
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://www.jguru.com/forums/home.jsp?topic=Ant">http://www.jguru.com/forums/home.jsp?topic=Ant</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          FAQ
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://www.jguru.com/faq/home.jsp?topic=Ant">http://www.jguru.com/faq/home.jsp?topic=Ant</a>
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Articles and Presentations"><strong>Articles and Presentations</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>The following sections list articles and presentations written about Ant.  If
-      you've written something that should be included, please post it to one
-      of the mailing lists.</p>
-                    </blockquote>
-    </td></tr>
-  </table>
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Articles"><strong>Articles</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                          <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Ant in Anger: Using Ant in a Production Development       System"><strong>Ant in Anger: Using Ant in a Production Development       System</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>This document describes strategies and some basic examples of how to 
-        use Ant in larger team development projects.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Author:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:steve_l@iseran.com">Steve Loughran</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="ant_in_anger.html">http://jakarta.apache.org/ant/ant_in_anger.html</a>
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Ant Task Guidelines"><strong>Ant Task Guidelines</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>This document describes how to write custom Ant tasks, and how to submit
-        them to potentially be included in Ant.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Author:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:steve_l@iseran.com">Steve Loughran</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="ant_task_guidelines.html">http://jakarta.apache.org/ant/ant_task_guidelines.html</a>
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Automating the build and test process"><strong>Automating the build and test process</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>This article demonstrates an approach to the automated build and test process. Working with Ant 1.3 and the JUnit test framework, it shows how to automate a process that captures pertinent information about each test suite run, generates an attractive report, and e-mails the report.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Author:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:erik@hatcher.net">Erik Hatcher</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://www.ibm.com/developerworks/java/library/j-junitmail/">http://www.ibm.com/developerworks/java/library/j-junitmail/</a>
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Incremental development with Ant and JUnit"><strong>Incremental development with Ant and JUnit</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>This article explores the benefits of unit testing with Ant and
-        JUnit, detailing how to develop automated unit tests and integrate them
-        into your build process.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Author:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:malcolm@nuearth.com">Malcolm Davis</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://www-106.ibm.com/developerworks/library/j-ant/?dwzone=java">http://www-106.ibm.com/developerworks/library/j-ant/?dwzone=java</a>
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Automate your build process using Java and Ant"><strong>Automate your build process using Java and Ant</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>This article provides an introduction to using Ant with some basic
-        examples and by highlighting some of the important tasks.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Author:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:michael.cymerman@javaworld.com">Michael Cymerman</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://www.javaworld.com/javaworld/jw-10-2000/jw-1020-ant.html">http://www.javaworld.com/javaworld/jw-10-2000/jw-1020-ant.html</a>
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Short tutorial in Cactus' (formerly J2EEUnit)       documentation"><strong>Short tutorial in Cactus' (formerly J2EEUnit)       documentation</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>There is a short tutorial on how to use Ant in Cactus'
-        documentation.  It has a slant towards build files that will be used
-        with Cactus.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Author:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Cactus development team
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://jakarta.apache.org/commons/cactus/ant.html">http://jakarta.apache.org/commons/cactus/ant.html</a>
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Developing custom Ant tasks with VisualAge for Java"><strong>Developing custom Ant tasks with VisualAge for Java</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>This article outlines how to integrate Ant into VisualAge for Java,
-        and how to write and debug custom tasks using the IDE and the
-        integrated debugger.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Author:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:glenn@somanetworks.com">Glenn McAllister</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://www7.software.ibm.com/vad.nsf/data/document2366?OpenDocument&amp;p=1&amp;BCT=1&amp;Footer=1">http://www7.software.ibm.com/vad.nsf/data/document2366?OpenDocument&amp;p=1&amp;BCT=1&amp;Footer=1</a>
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Automated builds with VisualAge for Java and Ant"><strong>Automated builds with VisualAge for Java and Ant</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>This article shows how you can perform command line builds with a
-        VisualAge for Java repository.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Author:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:glenn@somanetworks.com">Glenn McAllister</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://www7.software.ibm.com/vad.nsf/Data/Document4366?OpenDocument&amp;p=1&amp;BCT=3&amp;Footer=1">http://www7.software.ibm.com/vad.nsf/Data/Document4366?OpenDocument&amp;p=1&amp;BCT=3&amp;Footer=1</a>
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Ant: A Build Tool from the Jakarta Project"><strong>Ant: A Build Tool from the Jakarta Project</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>This article is from the "Best Practices" section of
-        Sun's Dot-Com Builder Site.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Author:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Laura Geele Wang
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://dcb.sun.com/practices/profiles/ant.jsp">http://dcb.sun.com/practices/profiles/ant.jsp</a>
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Making a Mountain Out of an Anthill"><strong>Making a Mountain Out of an Anthill</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>This article is from the June 2001 issue of the Java Developer'
-        Journal.  You need to be a registered JDJ subscriber to view this
-        article.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Author:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Neal Ford
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://www.sys-con.com/java/archivesa.cfm?volume=06&amp;issue=06">http://www.sys-con.com/java/archivesa.cfm?volume=06&amp;issue=06</a>
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Using Ant and Weblogic EJBs"><strong>Using Ant and Weblogic EJBs</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>This article describes how to use Ant to create Weblogic EJBs, and
-        some workarounds for issues you may encounter.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Author:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Jesse E. Tilly
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://www.onjava.com/pub/a/onjava/2001/06/25/antejb.html">http://www.onjava.com/pub/a/onjava/2001/06/25/antejb.html</a>
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="An Introduction to Ant"><strong>An Introduction to Ant</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>This article is a short introduction into the basic
-        concepts of Ant.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Author:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Jayakrishnan Nair
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://varnam.org/articles/ant.html">http://varnam.org/articles/ant.html</a>
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-        <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#525D76">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Presentations"><strong>Presentations</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                          <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Ant - presented to the Tucson Java Users Group"><strong>Ant - presented to the Tucson Java Users Group</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>A PowerPoint technical overview presentation on Ant.  Comes complete with a straightforward example demonstrating code compilation, JAR'ing, JUnit testing, JUnit reporting, and Zipping a distribution.  A few advanced topics are touched upon like property immutabality and using &lt;antcall&gt; to get around it, build listeners, and writing custom tasks.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Author:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:erik@hatcher.net">Erik Hatcher</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://erik.hatcher.net/ant-jug.zip">http://erik.hatcher.net/ant-jug.zip</a>
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Ant Build Tool"><strong>Ant Build Tool</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>A PowerPoint presentation on Ant 1.2.  It provides a basic overview
-        of Ant's capabilities.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Author:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:chanezon@netscape.com">Patrick Chanezon</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://people.netscape.com/chanezon/tech/ant/ant_preso.ppt">http://people.netscape.com/chanezon/tech/ant/ant_preso.ppt</a>
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Ant"><strong>Ant</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>A detailed Ant 1.3 PowerPoint presentation, made at the St. Louis Java Users Group
-        meeting in March 2001.  Includes a detailed build file and basic
-        descriptions of all the built in and optional tasks.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Author:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Mark Volkmann
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://www.ociweb.com/javasig/knowledgebase/March2001/index.html">http://www.ociweb.com/javasig/knowledgebase/March2001/index.html</a>
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                                  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="#828DA6">
-      <font color="#ffffff" face="arial,helvetica,sanserif">
-        <a name="Modern Development Crises"><strong>Modern Development Crises</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-                        <p>This presentation is an overview of the current state of software
-        development today.  There are a couple of slides that briefly cover
-        Ant.</p>
-                                  <table>
-              <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          Author:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="mailto:steve_l@iseran.com">Steve Loughran</a>
-        </font>
-  </td>
-      </tr>
-                  <tr>
-                  <td bgcolor="#039acc" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          URL:
-        </font>
-  </td>
-                      <td bgcolor="#a0ddf0" colspan="" rowspan="" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-          <a href="http://www.iseran.com/Steve/modern_development_processes.html">http://www.iseran.com/Steve/modern_development_processes.html</a>
-        </font>
-  </td>
-      </tr>
-        </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-                    </blockquote>
-    </td></tr>
-  </table>
-              </td>
-        </tr>
-
-        <!-- FOOTER -->
-        <tr><td colspan="2">
-          <hr noshade="" size="1"/>
-        </td></tr>
-        <tr><td colspan="2">
-          <div align="center"><font color="#525D76" size="-1"><em>
-          Copyright &#169; 1999-2001, Apache Software Foundation
-          </em></font></div>
-        </td></tr>
-      </table>
-    </body>
-  </html>
-<!-- end the processing -->
-
-
-
-
diff --git a/lib/crimson.jar b/lib/crimson.jar
deleted file mode 100644
index 0536ae1..0000000
--- a/lib/crimson.jar
+++ /dev/null
Binary files differ
diff --git a/lib/jaxp.jar b/lib/jaxp.jar
deleted file mode 100644
index b881783..0000000
--- a/lib/jaxp.jar
+++ /dev/null
Binary files differ
diff --git a/lib/optional/.cvsignore b/lib/optional/.cvsignore
deleted file mode 100644
index cb6a712..0000000
--- a/lib/optional/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-jdepend*.jar
diff --git a/lib/optional/README b/lib/optional/README
deleted file mode 100644
index c7a66ac..0000000
--- a/lib/optional/README
+++ /dev/null
@@ -1,2 +0,0 @@
-Please refer to the Ant manual under Installing Ant / Library Dependencies for a list
-of the jar requirements for various optional tasks and features.
diff --git a/lib/optional/junit.jar b/lib/optional/junit.jar
deleted file mode 100644
index 914a5cf..0000000
--- a/lib/optional/junit.jar
+++ /dev/null
Binary files differ
diff --git a/proposal/anteater/README b/proposal/anteater/README
deleted file mode 100644
index 4fc1737..0000000
--- a/proposal/anteater/README
+++ /dev/null
@@ -1,14 +0,0 @@
-README for Ant(Eater)
----------------------------------------------------------------------------------
-
-Execution:
-
-    ant [args] target
-    
-Args:
-
-    -help
-    -quiet
-    -verbose
-    -taskpath [path]
-    -antfile [file]
\ No newline at end of file
diff --git a/proposal/anteater/bootstrap/Bootstrap.java b/proposal/anteater/bootstrap/Bootstrap.java
deleted file mode 100644
index 288fce1..0000000
--- a/proposal/anteater/bootstrap/Bootstrap.java
+++ /dev/null
@@ -1,115 +0,0 @@
-// -------------------------------------------------------------------------------
-// Copyright (c)2000 Apache Software Foundation
-// -------------------------------------------------------------------------------
-
-import java.io.*;
-import java.util.*;
-import java.util.zip.*;
-
-/**
- * Quick and dirty single class bootstrap utility for getting Ant off
- * the ground when in need. To use, compile this file in the directory
- * where the source code is in the repository, then execute it. That's
- * it.<p>
- *
- * No pretense is made that this is an elegant peice of code. This code
- * only exists to do a ground zero build of Ant. Any other building of
- * Ant should be done with itself whenever possible.
- *
- * @author James Duncan Davidson (duncan@apache.org)
- * @author Conor MacNeill (conor@m64.com)
- */
-public class Bootstrap {
-    
-    /**
-     * Command line entry point. This is the first part of the bootstrap
-     * where we go and set up the environment and generally do what is
-     * necessary to set up for Bootstrapping.
-     */
-    public static void main(String[] args) throws Exception {
-      
-        String[] command;
-        String classpath = null;
-      
-        // check to see if we have a compiler on the classpath. Right now
-        // we're just checking for the old compiler, but will want to check
-        // for the new compiler and use it if it exists. Later.
-        try {
-            Class clazz = Class.forName("sun.tools.javac.Main");
-        } catch (ClassNotFoundException cnfe) { 
-            String javaHome = System.getProperty("java.home");
-            if (javaHome.endsWith("jre")) {
-                javaHome = javaHome.substring(0, javaHome.length() - 4);
-            }
-            // XXX should check if this exists and bail out if it doesn't
-            classpath = javaHome + "/lib/tools.jar" + File.pathSeparator + ".";
-        }
-        
-        // XXX really should check to see if compiling the bootstrap is necessary. :)
-        
-        System.out.println("Compiling Bootstrap2");
-        if (classpath == null) {
-            command = new String[] {"javac", "./Bootstrap2.java"};
-        } else {
-            command = new String[] {"javac", "-classpath", classpath, 
-                                    "./Bootstrap2.java"};
-        }
-        runCommand(command);
-        
-        System.out.println("Running Bootstrap2");
-        if (classpath == null) {
-            command = new String[] {"java", "Bootstrap2"};
-        } else {
-            command = new String[] {"java", "-cp", classpath, "Bootstrap2"};
-        }
-        runCommand(command, args);
-    }
-    
-    /** 
-     * Utility method for execing processes
-     */
-    static void runCommand(String[] command) throws IOException {
-    
-        Runtime runtime = Runtime.getRuntime();
-        Process process = runtime.exec(command);
-            
-        // echo output from process
-            
-        InputStream in = process.getInputStream();
-        byte[] buf = new byte[80];
-        int count = 0;
-        count = in.read(buf, 0, buf.length);
-        while (count != -1) {
-            System.out.write(buf, 0, count);
-            count = in.read(buf, 0, buf.length);
-        }
-            
-        in = process.getErrorStream();
-        count = in.read(buf, 0, buf.length);          
-        if (count > 0) {
-            System.out.println();
-            System.out.println("Error Stream Output:");
-             
-            while (count != -1) {
-                System.out.write(buf, 0, count);
-                count = in.read(buf, 0, buf.length);
-            }
-        }
-    }
-    
-    /**
-     * Utility method for running processes that let some additional args
-     * be specified.
-     */
-    static void runCommand(String[] command, String[] addtlArgs) throws IOException {
-        String[] newCommand = new String[command.length + addtlArgs.length];
-        for (int i = 0; i < command.length; i++) {
-            newCommand[i] = command[i];
-        }
-        for (int i = 0; i < addtlArgs.length; i++) {
-            newCommand[command.length + i] = addtlArgs[i];
-        }
-        runCommand(newCommand);
-    }
-} 
- 
diff --git a/proposal/anteater/bootstrap/Bootstrap2.java b/proposal/anteater/bootstrap/Bootstrap2.java
deleted file mode 100644
index a755dc9..0000000
--- a/proposal/anteater/bootstrap/Bootstrap2.java
+++ /dev/null
@@ -1,285 +0,0 @@
-// -------------------------------------------------------------------------------
-// Copyright (c)2000 Apache Software Foundation
-// -------------------------------------------------------------------------------
-
-import java.io.*;
-import java.util.*;
-import java.util.jar.*;
-import java.util.zip.*;
-
-/**
- * Second stage bootstrap. This is where the majority of the work happens.
- *
- * @author James Duncan Davidson (duncan@apache.org);
- */
-public class Bootstrap2 {
-   
-    private static String base = "../";
-    private static String crimsonSources = "../../../xml-crimson/src"; // relative to base
-    private static String[] modules = new String[]{"copy", "echo", "jar", "javac", "buildtarget"};
-
-    /**
-     * Command line entry point.
-     */
-    public static void main(String[] args) throws Exception {
-    
-        long startTime = System.currentTimeMillis();
-    
-        System.out.println("Starting Bootstrap2....");
-
-        // ------------------------------------------------------------
-        // first create dirs that we need for strapping
-        // ------------------------------------------------------------
-
-        mkdir(base + "bootstrap/temp");
-        mkdir(base + "bootstrap/temp/crimson");
-        mkdir(base + "bootstrap/temp/main");
-        mkdir(base + "bootstrap/temp/tasks");
-        mkdir(base + "bootstrap/temp/taskjars");
-        
-        for (int i = 0; i < modules.length; i++) {
-            mkdir(base + "bootstrap/temp/tasks/" + modules[i]);
-        }
-      
-        // ------------------------------------------------------------
-        // build crimson, but only if it hasn't been built yet since
-        // 127 class files takes more seconds than I like to wait.
-        // ------------------------------------------------------------       
-        
-        if (!(new File(base + "bootstrap/temp/crimson/javax").exists())) {
-            Vector v1 = getSources(base + crimsonSources);
-            doCompile(base + "bootstrap/temp/crimson", v1);
-        }
-        
-        // ------------------------------------------------------------
-        // build the main thing
-        // ------------------------------------------------------------        
-        
-        Vector v2 = getSources(base + "source/main");
-        doCompile(base + "bootstrap/temp/main", v2);
-        
-        // ------------------------------------------------------------
-        // now build each of the needed peices into their
-        // areas within the strapping area
-        // ------------------------------------------------------------
-
-        for (int i = 0; i < modules.length; i++) {
-            buildModule(modules[i]);
-        }
-
-        // ------------------------------------------------------------
-        // now, set classpaths and launch an Ant build to
-        // have Ant build itself nicely
-        // ------------------------------------------------------------
-
-        System.out.println();
-        System.out.println("-------------------------------------------");
-        System.out.println("STARTING REAL BUILD");
-        System.out.println("-------------------------------------------");
-        System.out.println();     
-        
-        String[] cmdarray = new String[10];
-        cmdarray[0] = "java";
-        cmdarray[1] = "-cp";
-        cmdarray[2] = base + "bootstrap/temp/main" + File.pathSeparator +
-                      base + "bootstrap/temp/crimson";
-        cmdarray[3] = "org.apache.ant.cli.Main";
-        cmdarray[4] = "-taskpath";
-        cmdarray[5] = base + "bootstrap/temp/taskjars";
-        cmdarray[6] = "-buildfile";
-        cmdarray[7] = base + "source/main.ant";
-        cmdarray[8] = "-target"; 
-        cmdarray[9] = "default";
-        
-        Bootstrap.runCommand(cmdarray, args);
-        
-        System.out.println();
-        System.out.println("-------------------------------------------");
-        System.out.println("FINISHED WITH REAL BUILD");
-        System.out.println("-------------------------------------------");
-        System.out.println();
-        
-        // ------------------------------------------------------------
-        // Remove Temporary classes
-        // ------------------------------------------------------------
-
-        // delete(tempDirName);
-
-        // ------------------------------------------------------------
-        // Print Closer
-        // ------------------------------------------------------------
-
-        long endTime = System.currentTimeMillis();
-        long elapsd = endTime - startTime;
-        System.out.println("Bootstrap Time: " + (elapsd/1000) + "." + (elapsd%1000) + 
-                           " seconds");
-    }
-
-    private static void mkdir(String arg) {
-        File dir = new File(arg);
-        if (dir.exists() && !dir.isDirectory()) {
-            System.out.println("Oh, horrors! Dir " + arg + " " +
-                               "doesn't seem to be a dir... Stop!");
-            System.exit(1);
-        }
-        if (!dir.exists()) {
-            System.out.println("Making dir: " + arg);
-            dir.mkdir();
-        }
-    }
-
-    private static void buildModule(String arg) {
-        System.out.println("Building " + arg);
-     
-        // get all sources and hand them off to the compiler to
-        // build over into destination
-
-        Vector v = getSources(base + "source/coretasks/" + arg);
-        if (v.size() > 0) {
-            doCompile(base + "bootstrap/temp/tasks/" + arg, v);
-        }
-        
-
-        // move taskdef.properties for the module
-
-        copyfile(base + "source/coretasks/" + arg + "/taskdef.properties",
-                 base + "bootstrap/temp/tasks/" + arg + "/taskdef.properties");
-                 
-        // jar up tasks
-        try {
-            jarDir(new File(base + "bootstrap/temp/tasks/" + arg), 
-                new File(base + "bootstrap/temp/taskjars/" + arg + ".jar"));
-        } catch(IOException ioe) {
-            System.out.println("problem jar'ing: " + arg);
-        }
-    }
-
-    private static Vector getSources(String arg) {
-
-        File sourceDir = new File(arg);
-        
-        Vector v = new Vector();
-        scanDir(sourceDir, v, ".java");
-        return v;
-    }
-
-    private static void jarDir(File dir, File jarfile) throws IOException {
-        String[] files = dir.list();
-        if (files.length > 0) {
-            System.out.println("Jaring: " + jarfile);        
-            
-            FileOutputStream fos = new FileOutputStream(jarfile);
-            JarOutputStream jos = new JarOutputStream(fos, new Manifest());
-            jarDir(dir, "", jos);
-            jos.close();      
-        }
-    }
-    
-    private static void jarDir(File dir, String prefix, JarOutputStream jos) throws 
-        IOException 
-    {
-        String[] files = dir.list();
-        for (int i = 0; i < files.length; i++) {
-            File f = new File(dir, files[i]);
-            if (f.isDirectory()) {
-                String zipEntryName;
-                if (!prefix.equals("")) {
-                    zipEntryName = prefix + "/" + files[i];
-                } else {
-                    zipEntryName = files[i];
-                }
-                ZipEntry ze = new ZipEntry(zipEntryName);
-                jos.putNextEntry(ze);
-                jarDir(f, zipEntryName, jos);
-            } else {
-                String zipEntryName;
-                if (!prefix.equals("")) {
-                    zipEntryName = prefix + "/" + files[i];
-                } else {
-                    zipEntryName = files[i];
-                }
-                ZipEntry ze = new ZipEntry(zipEntryName);
-                jos.putNextEntry(ze);
-                FileInputStream fis = new FileInputStream(f);
-                int count = 0;
-                byte[] buf = new byte[8 * 1024];
-                count = fis.read(buf, 0, buf.length);
-                while (count != -1) {
-                    jos.write(buf, 0, count);
-                    count = fis.read(buf, 0, buf.length);
-                }
-                fis.close();
-            }
-        }
-    }
-
-    private static void scanDir(File dir, Vector v, String endsWith) {
-        String[] files = dir.list();
-        if (files == null) {
-            return;
-        }
-        for (int i = 0; i < files.length; i++) {
-            File f = new File(dir, files[i]);
-            if (f.isDirectory()) {
-                scanDir(f, v, endsWith);
-            } else {
-                if (files[i].endsWith(endsWith)) {
-                    v.addElement(f);
-                }
-            }
-        }
-    }
-
-    private static void doCompile(String dest, Vector sources) {
-        System.out.println("   Compiling " + sources.size() + " files to " + dest);
-        
-        // XXX This should be more forgiving about compiling wherever
-        // under whatever compiler, but this works so...
-        
-        sun.tools.javac.Main compiler = new sun.tools.javac.Main(System.out, 
-                                                                 "javac");        
-        String[] args = new String[sources.size() + 4];
-        args[0] = "-classpath";
-        args[1] = base + "bootstrap/temp/main" + File.pathSeparator +  
-                  base + "bootstrap/temp/crimson";
-        args[2] = "-d";
-        args[3] = dest;
-        for (int i = 0; i < sources.size(); i++) {
-            args[4+i] = ((File)sources.elementAt(i)).toString();
-        }
-        
-        // System.out.print("javac ");
-        // for (int i = 0; i < args.length; i++) {
-        //     System.out.print(args[i] + " ");
-        // }
-        // System.out.println();
-        
-        compiler.compile(args);
-    }
-
-    private static void copyfile(String from, String dest) {
-        File fromF = new File(from);
-        File destF = new File(dest);
-        if (fromF.exists()) {
-            System.out.println("   Copying " + from);
-            try {
-                FileInputStream in = new FileInputStream(fromF);
-                FileOutputStream out = new FileOutputStream(destF);
-                byte[] buf = new byte[1024 * 16];
-                int count = 0;
-                count = in.read(buf, 0, buf.length);
-                if (count != -1) {
-                    out.write(buf, 0, count);
-                    count = in.read(buf, 0, buf.length);
-                }
-                
-                in.close();
-                out.close();
-            } catch (IOException ioe) {
-                System.out.println("OUCH: " + from);
-                System.out.println(ioe);
-            }
-        }
-    }
-}
- 
\ No newline at end of file
diff --git a/proposal/anteater/bootstrap/README b/proposal/anteater/bootstrap/README
deleted file mode 100644
index 95f6fd6..0000000
--- a/proposal/anteater/bootstrap/README
+++ /dev/null
@@ -1,51 +0,0 @@
-BOOTSTRAP FOLDER README
----------------------------------------------------------------------
-
-The utilities provided here are used by the developers of Ant to 
-bootstrap builds of Ant and will be used by the nightly build process
-to build Ant from a zero state.
-
-That said, there is no reason for most folks -- even hard core Ant
-developers -- to use the files here on a regular basis. You should
-really have the latest stable version of Ant installed somewhere so
-that you can easily build Ant using itself. Check out the 
-installation guidelines in the documentation for suggestions on how
-Ant can be installed as a full time program of your system. 
-
-HOW TO USE
-
-So, you really want to use the bootstrap facilities instead of just
-downloading a build from somewhere? Ok. Here's how it works:
-
-  * Make sure that sun.tools.javac.Main is on your classpath. 
-    Sometimes it is, sometimes it isn't -- it depends on the JDK
-    installed on your machine. You can do a quick check using
-    the 'javap sun.tools.javac.Main' command to see if it is.
-
-  * Make sure that you have xml-crimson checked out next to
-    the jakarta-ant workspace so that the Bootstrap can find
-    this necessary code.
-
-  * Compile Bootstrap.java. You should end up with Bootstrap.class
-    and maybe a few other classes (depending).
-    
-  * Execute the Bootstrap class.
-  
-How this will work in practice is:
-
-  % javac Bootstrap.java
-  % java Bootstrap
-
-The Bootstrap class will grind out a preliminary build in the directory
-'temp/' which will be placed in this directory, then use that build to
-build a real copy of Ant into '../Build' using Ant's own makefile. After
-doing this, the Boostrap class will remove the intermediate build in
-the 'temp/' directory.
-
-HISTORICAL NOTE
-
-The Bootstrap class is somewhat the same rough hack as the first sketch
-of Ant itself -- a proof of concept that a Java based build system
-could work out halfway decently. Of course, Ant has expanded much past
-the capabilities of this, but this little start serves as a useful
-tool to bootstrap builds.
\ No newline at end of file
diff --git a/proposal/anteater/source/coretasks/buildtarget/org/apache/ant/buildtarget/BuildTargetTask.java b/proposal/anteater/source/coretasks/buildtarget/org/apache/ant/buildtarget/BuildTargetTask.java
deleted file mode 100644
index cead59f..0000000
--- a/proposal/anteater/source/coretasks/buildtarget/org/apache/ant/buildtarget/BuildTargetTask.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package org.apache.ant.buildtarget;
-
-import org.apache.ant.*;
-
-/**
- * A simple task that builds a target if a property is set to true
- *
- * @author James Duncan Davidson (duncan@apache.org)
- */
-public class BuildTargetTask extends AbstractTask {
-    
-    // -----------------------------------------------------------------
-    // PRIVATE DATA MEMBERS
-    // -----------------------------------------------------------------
-    
-    /**
-     * Data to echo
-     */
-    private String ifProperty;
-    
-    /**
-     * Target to execute
-     */
-    private String targetName;
-    
-    // -----------------------------------------------------------------
-    // PUBLIC METHODS
-    // -----------------------------------------------------------------    
-    
-    /**
-     * Executes this task.
-     */
-    public boolean execute() throws AntException {
-        // XXX should really check internal state before proceeding! Target
-        // has to be set...
-        
-        // XXX oh, and we should really check to see if the target exists
-        // and fail out if it doesn't. :)
-        
-        if (ifProperty != null) {
-            String ifPropertyValue = project.getProperty(ifProperty);
-            if (ifPropertyValue.equals("true")) {
-                project.startBuild(targetName);
-                return true;
-            } else {
-                return true;
-            }
-        } else {
-            project.startBuild(targetName);
-            return true;
-        }
-    } 
-    
-    /**
-     * Sets the property that will be examined
-     */
-    public void setIf(String ifProperty) {
-        this.ifProperty = ifProperty;
-    }
-    
-    /**
-     * Sets the target to be executed
-     */
-    public void setTarget(String targetName) {
-        this.targetName = targetName;
-    }
-}
\ No newline at end of file
diff --git a/proposal/anteater/source/coretasks/buildtarget/taskdef.properties b/proposal/anteater/source/coretasks/buildtarget/taskdef.properties
deleted file mode 100644
index ecc4506..0000000
--- a/proposal/anteater/source/coretasks/buildtarget/taskdef.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-# taskdef.properties for Echo task
-
-tasks=buildtarget
-task.buildtarget.class=org.apache.ant.buildtarget.BuildTargetTask
\ No newline at end of file
diff --git a/proposal/anteater/source/coretasks/echo/org/apache/ant/echo/EchoTask.java b/proposal/anteater/source/coretasks/echo/org/apache/ant/echo/EchoTask.java
deleted file mode 100644
index f4ce40d..0000000
--- a/proposal/anteater/source/coretasks/echo/org/apache/ant/echo/EchoTask.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.apache.ant.echo;
-
-import org.apache.ant.*;
-
-/**
- * A very simple task that takes a bit of text and echos it back out
- * when it is executed. This is useful for troubleshooting properties
- * in buildfiles, letting the user know that something is going to happen
- * and as a very simple example that can be copied to create other tasks.
- *
- * @author James Duncan Davidson (duncan@apache.org)
- */
-public class EchoTask extends AbstractTask {
-    
-    // -----------------------------------------------------------------
-    // PRIVATE DATA MEMBERS
-    // -----------------------------------------------------------------
-    
-    /**
-     * Data to echo
-     */
-    private String text;
-    
-    // -----------------------------------------------------------------
-    // PUBLIC METHODS
-    // -----------------------------------------------------------------    
-    
-    /**
-     * Executes this task.
-     */
-    public boolean execute() throws AntException {
-        project.getFrontEnd().writeMessage(text);
-        return true;
-    } 
-    
-    /**
-     * Sets the text that this task will echo.
-     */
-    public void setText(String text) {
-        this.text = text;
-    }
-}
\ No newline at end of file
diff --git a/proposal/anteater/source/coretasks/echo/taskdef.properties b/proposal/anteater/source/coretasks/echo/taskdef.properties
deleted file mode 100644
index 8949070..0000000
--- a/proposal/anteater/source/coretasks/echo/taskdef.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-# taskdef.properties for Echo task
-
-tasks=echo
-task.echo.class=org.apache.ant.echo.EchoTask
\ No newline at end of file
diff --git a/proposal/anteater/source/main.ant b/proposal/anteater/source/main.ant
deleted file mode 100644
index d56ee63..0000000
--- a/proposal/anteater/source/main.ant
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-
-<!-- Comment outside of project -->
-
-<project name="Ant" default="default">
-
-  <!-- Comment inside of project -->
-
-  <description>Primary buildfile for building Ant itself</description>
-
-  <property name="foo" value="true"/>
-
-  <target name="default" depends="main">
-    <echo text="Default Target is Executing"/>
-    <buildtarget target="main" if="foo"/>
-  </target>
-
-  <target name="main">
-    <echo text="Main Target is Executing"/>
-  </target>
-
-</project>
\ No newline at end of file
diff --git a/proposal/anteater/source/main/org/apache/ant/AbstractTask.java b/proposal/anteater/source/main/org/apache/ant/AbstractTask.java
deleted file mode 100644
index a4cfc2e..0000000
--- a/proposal/anteater/source/main/org/apache/ant/AbstractTask.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package org.apache.ant;
-
-import java.io.*;
-import java.util.*;
-import java.lang.reflect.*;
-import java.beans.*;
-
-/**
- * Superclass of all Tasks. All tasks extend from this.
- *
- * @author James Duncan Davidson (duncan@apache.org)
- */
-public abstract class AbstractTask {
-    
-    // -----------------------------------------------------------------
-    // PROTECTED DATA MEMBERS
-    // -----------------------------------------------------------------
-    
-    /**
-     *
-     */
-    protected Project project;
-    
-    // -----------------------------------------------------------------
-    // ABSTRACT PUBLIC METHODS
-    // -----------------------------------------------------------------     
-    
-    /**
-     *
-     */
-    public abstract boolean execute() throws AntException;
-    
-    // -----------------------------------------------------------------
-    // PUBLIC METHODS
-    // -----------------------------------------------------------------  
-    
-    /**
-     * Used by the system to set the attributes which then get reflected
-     * into the particular implementation class
-     */
-    public void setAttributes(Hashtable attributes) {
-        Class clazz = this.getClass();
-        BeanInfo bi;
-        try {
-            bi = Introspector.getBeanInfo(clazz);
-        } catch (IntrospectionException ie) {
-            System.out.println("Can't reflect on: " + clazz);
-            // XXX exception out
-            return;
-        }
-        PropertyDescriptor[] pda = bi.getPropertyDescriptors();
-        for (int i = 0; i < pda.length; i++) {
-            PropertyDescriptor pd = pda[i];
-            String property = pd.getName();
-            Object o = attributes.get(property);
-            if (o != null) {
-                String value = (String)o;
-                Method setMethod = pd.getWriteMethod();
-                if (setMethod != null) {
-                    Class[] ma = setMethod.getParameterTypes();
-                    if (ma.length == 1) {
-                        Class c = ma[0];
-                        if (c.getName().equals("java.lang.String")) {
-                            try {
-                                setMethod.invoke(this, new String[] {value});
-                            } catch (Exception e) {
-                                // XXX bad bad bad -- narrow to exact exceptions
-                                System.out.println("OUCH: " + e);
-                                // XXX exception out.
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-    
-    /**
-     * Used by system to set the project.
-     */  
-    public void setProject(Project project) {
-        this.project = project;
-    }
-  
-}
\ No newline at end of file
diff --git a/proposal/anteater/source/main/org/apache/ant/AntException.java b/proposal/anteater/source/main/org/apache/ant/AntException.java
deleted file mode 100644
index 16d7a69..0000000
--- a/proposal/anteater/source/main/org/apache/ant/AntException.java
+++ /dev/null
@@ -1,138 +0,0 @@
-// -------------------------------------------------------------------------------
-// Copyright (c)2000 Apache Software Foundation
-// -------------------------------------------------------------------------------
-
-package org.apache.ant;
-
-/**
- * Signals a problem while setting up or executing a build.
- *
- * @author James Duncan Davidson (duncan@apache.org)
- */
-public class AntException extends Exception {
-
-    // -----------------------------------------------------------------
-    // PRIVATE MEMBERS
-    // -----------------------------------------------------------------    
-    
-    /**
-     * The cause of this exception.
-     */
-    private Throwable cause;
-    
-    /**
-     * Project within which this exception occured, if applicable.
-     */
-    private Project project;
-    
-    /**
-     * Target within which this exception occurred, if applicable.
-     */
-    private Target target;
-    
-    /**
-     * Task within which this exception occurred, if applicable.
-     */
-    private Task task;
-
-    // -----------------------------------------------------------------
-    // CONSTRUCTORS
-    // -----------------------------------------------------------------    
-    
-    /**
-     * Constructs a new AntException with no message.
-     */
-    public AntException() {
-        super();
-    }
-    
-    /**
-     * Constructs a new AntException with the given message.
-     */
-    public AntException(String msg) {
-        super(msg);
-    }
-    
-    /**
-     * Constructs a new AntException with the given message and cause.
-     */
-    public AntException(String msg, Throwable cause) {
-        super(msg);
-        this.cause = cause;
-    }
-    
-    /**
-     * Constructs a new AntException with the given cause and a 
-     * detailed message of (cause==null ? null : cause.toString())
-     */
-    public AntException(Throwable cause) {
-        super(cause==null ? null : cause.toString());
-        this.cause = cause;
-    }
-    
-    // -----------------------------------------------------------------
-    // PUBLIC METHODS
-    // -----------------------------------------------------------------    
-    
-    /**
-     * Returns the cause of this exception.
-     */ 
-    public Throwable getCause() {
-        return cause;
-    }
-    
-    /**
-     * Returns the Project within the scope of which this exception occurred,
-     * if applicable. Otherwise null.
-     */
-    public Project getProject() {
-        return project;
-    }
-    
-    /**
-     * Returns the Target within the scope of which this exception occurred,
-     * if applicable. Otherwise null.
-     */
-    public Target getTarget() {
-        return target;
-    }
-     
-    /**
-     * Returns the Task wihtin the scope of which this exception occurred,
-     * if applicable. Otherwise null.
-     */
-    public Task getTask() {
-        return task;
-    }
-     
-    // -----------------------------------------------------------------
-    // PACKAGE METHODS
-    // -----------------------------------------------------------------    
-    
-    /**
-     * Sets the project within the scope of which this exception occurred.
-     * This method is called by the internal error handling mechanism of
-     * Ant before it is propogated out.
-     */
-    void setProject(Project project) {
-        this.project = project;
-    }
-    
-    /**
-     * Sets the target within the scope of which this exception occurred.
-     * This method is called by the internal error handling mechansim of
-     * Ant before it is propogated out.
-     */
-    void setTarget(Target target) {
-        this.target = target;
-    }
-    
-    /**
-     * Sets the task within the scope of which this exception occurred.
-     * This method is called by the internal error handling mechanism of
-     * Ant before it is propogated out.
-     */
-    void setTask(Task task) {
-        this.task = task;
-    }
-}
\ No newline at end of file
diff --git a/proposal/anteater/source/main/org/apache/ant/AntFrontEnd.java b/proposal/anteater/source/main/org/apache/ant/AntFrontEnd.java
deleted file mode 100644
index 9e30814..0000000
--- a/proposal/anteater/source/main/org/apache/ant/AntFrontEnd.java
+++ /dev/null
@@ -1,103 +0,0 @@
-// -------------------------------------------------------------------------------
-// Copyright (c)2000 Apache Software Foundation
-// -------------------------------------------------------------------------------
-
-package org.apache.ant;
-
-/**
- * Abstract class that lets Ant talk to a front end such as a CLI front end,
- * GUI front end, Servlet front end, or some other front end.
- *
- * @author James Duncan Davidson (duncan@apache.org)
- */
-public abstract class AntFrontEnd {
-
-    // -----------------------------------------------------------------
-    // CONSTANTS
-    // -----------------------------------------------------------------    
-    
-    /**
-     * Indicates that an associated message has a low importance.
-     */
-    public static final int MSG_LEVEL_LOW = 1;
-    
-    /**
-     * Indicates that an associated message has a medium importance.
-     */
-    public static final int MSG_LEVEL_MED = 2;
-    
-    /**
-     * Indicates that an associated message has a high importance.
-     */
-    public static final int MSG_LEVEL_HIGH = 3;
-    
-    // -----------------------------------------------------------------
-    // PUBLIC METHODS
-    // -----------------------------------------------------------------    
-
-    /**
-     * Send notification to the FrontEnd that execution has moved into
-     * the scope of a particular project. The default implementation
-     * does nothing. 
-     */
-    public void notifyProjectStart(Project project) {
-    
-    }
-
-    /**
-     * Send notification to the FrontEnd that execution has moved out
-     * of the scope of a particular Project. The default implementation
-     * does nothing.
-     */
-    public void notifyProjectEnd(Project project) {
-    
-    }
-    
-    /**
-     * Send notification to the FrontEnd that execution has moved into
-     * the scope of a particular target. The default implementation does
-     * nothing.
-     */
-    public void notifyTargetStart(Target target) {
-    
-    }
-    
-    /**
-     * Send notification to the FrontEnd that execution has moved out of
-     * the scope of a particular target. The default implementation does
-     * nothing.
-     */
-    public void notifyTargetEnd(Target target) {
-    
-    }
-    
-    /**
-     * Send notification to the FrontEnd that execution has moved into the
-     * scope of a particular task. The default implementation does nothing.
-     */
-    public void notifyTaskStart(Task task) {
-    
-    }
-    
-    /**
-     * Send notification to the FrontEnd that execution has moved out of
-     * the scope of a particular task. The default implementation does
-     * nothing.
-     */
-    public void notifyTaskEnd(Task task) {
-    
-    }
-
-    /**
-     * Writes a message to the front end with a medium importance.
-     */
-    public void writeMessage(String message) {
-        writeMessage(message, MSG_LEVEL_MED);
-    }
-
-    /**
-     * Writes a message to the front end.
-     */
-    public abstract void writeMessage(String message, int level);
-
-}
\ No newline at end of file
diff --git a/proposal/anteater/source/main/org/apache/ant/Project.java b/proposal/anteater/source/main/org/apache/ant/Project.java
deleted file mode 100644
index 63e2d4d..0000000
--- a/proposal/anteater/source/main/org/apache/ant/Project.java
+++ /dev/null
@@ -1,286 +0,0 @@
-// ---------------------------------------------------------------------
-// (c)2000 Apache Software Foundation
-//
-// ---------------------------------------------------------------------
-
-package org.apache.ant;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * In memory container for an Ant project.
- *
- * @author James Duncan Davidson (duncan@apache.org)
- */
-public class Project {
-
-    // -----------------------------------------------------------------
-    // PRIVATE DATA MEMBERS
-    // -----------------------------------------------------------------
-
-    /**
-     *
-     */
-    //private Ant ant;
-    
-    /**
-     * Base directory of this project. Usually this value is the directory
-     * where the project file was found, but can be different.
-     */
-    private File baseDir;
-    
-    /**
-     *
-     */
-    private String defaultTargetName;
-    
-    /**
-     * Short description of the project.
-     */
-    private String description;
-
-    /**
-     * Front end that this project communicates to.
-     */
-    private AntFrontEnd frontEnd;
-
-    /**
-     * Properties of this project.
-     */
-    private Properties properties = new Properties();
-
-    /**
-     * Parent project to this project, if one exists.
-     */
-    private Project parentProject = null;
-
-    /**
-     *
-     */
-    private String name;
-
-    /**
-     * Hashtable containing all of the targets that are part of this
-     * project. Targets are stored in this hashtable using the name
-     * of the target as the key and the Target object for the target
-     * as the value.
-     */
-    private Hashtable targets = new Hashtable();
-    
-    /**
-     * TaskManager for this project.
-     */
-    private TaskManager taskManager;
-
-    // -----------------------------------------------------------------
-    // CONSTRUCTORS
-    // -----------------------------------------------------------------
-
-    /**
-     * Creates a new Project object with the given FrontEnd and TaskManager
-     */
-    public Project(AntFrontEnd frontEnd, TaskManager taskManager) {
-        this.frontEnd = frontEnd;
-        this.taskManager = taskManager;
-    }
-
-    // -----------------------------------------------------------------
-    // PUBLIC  METHODS
-    // -----------------------------------------------------------------
-
-    /**
-     * Adds a target to this project.
-     */
-    public void addTarget(Target target) {
-        // XXX check out for name, if null, reject!
-        targets.put(target.getName(), target);
-    }
-
-    /**
-     * Returns the base directory of this project.
-     */
-    public File getBaseDir() {
-        return baseDir;
-    }
-
-    /**
-     * Returns the default target for this project, if there is one. Otherwise
-     * it returns null.
-     */
-    public String getDefaultTargetName() {
-        return defaultTargetName;
-    }
-
-    /**
-     * Returns a short description of this project, if any. If not, returns 
-     * null.
-     */
-    public String getDescription() {
-        return description;
-    }
-
-    /**
-     * Gets the front end that is running this project.
-     */
-    public AntFrontEnd getFrontEnd() {
-        return frontEnd;
-    }
-
-    /**
-     * Returns the parent Project object to this Project if a parent
-     * project exists. If there is not a parent Project object, null
-     * is returned.
-     */
-    public Project getParent() {
-        return parentProject;
-    }
-
-    /**
-     * Returns the target identified with the given name. If no target
-     * is known by the given name, then null is returned.
-     */
-    public Target getTarget(String name) {
-        return (Target)targets.get(name);
-    }
-    
-    /**
-     * Gets an exumeration of all the targets that are part of this project.
-     */
-    public Enumeration getTargets() {
-        return targets.elements();
-    }
-    
-    /**
-     * Gets the name of this project.
-     */
-    public String getName() {
-        return name;
-    }
-    
-    /**
-     * Returns the value of a property. Returns null if the property does
-     * not exist.
-     */
-    public String getProperty(String propertyName) {
-        return properties.getProperty(propertyName);
-    }
-    
-    /**
-     *
-     */
-    //public void setAnt(Ant ant) {
-    //    this.ant = ant;
-    //}
-    
-    /**
-     * Sets the base dir for this project.
-     */
-    public void setBaseDir(File dir) {
-        // XXX should check this to make sure it's a dir!
-        baseDir = dir;
-    }
-    
-    /**
-     * Sets the default target for this project.
-     */
-    public void setDefaultTargetName(String targetName) {
-        defaultTargetName = targetName;
-    }
-    
-    /**
-     * Sets the description for this project.
-     */
-    public void setDescription(String description) {
-        this.description = description;
-    }
-    
-    /**
-     * Sets the front end for this project.
-     */
-    public void setFrontEnd(AntFrontEnd frontEnd) {
-        this.frontEnd = frontEnd;
-    }
-    
-    /**
-     * Sets the name of this project.
-     */
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    /**
-     * Sets a property on this project. If the property is already
-     * set, this method will override it.
-     */
-    public void setProperty(String propertyName, String propertyValue) {
-        properties.put(propertyName, propertyValue);
-    }
-    
-    /**
-     * Starts a build of this project using the default target if one
-     * is set.
-     */
-    public void startBuild() throws AntException {
-        // XXX need to do something if the default target isn't set..
-        // maybe look for target name 'default', then bail?
-        startBuild(defaultTargetName);
-    }
-    
-    /**
-     * Starts a build of this project with the entry point at the given
-     * target.
-     */
-    public void startBuild(String targetName) throws AntException {
-        
-        // notify AntFrontEnd that we are starting a build on a project
-        
-        frontEnd.notifyProjectStart(this);
-        
-        Target target = getTarget(targetName);
-        
-        frontEnd.notifyTargetStart(target);
-        
-        // XXX don't forget to execute dependancies first!
-        
-        Enumeration enum = target.getTasks().elements();
-        while (enum.hasMoreElements()) {
-            Task task = (Task)enum.nextElement();
-            frontEnd.notifyTaskStart(task);
-            try {
-                AbstractTask aTask = taskManager.getTaskInstance(task.getType());
-                aTask.setProject(this);
-                aTask.setAttributes(task.getAttributes());
-                boolean b = aTask.execute();
-                if (!b) {
-                    String msg = "Task " + task.getType() + " failed";
-                    AntException ae = new AntException(msg);
-                    throw ae;
-                }
-            } catch (Exception e) {
-                AntException ae;
-                if (!(e instanceof AntException)) {
-                    ae = new AntException(e);
-                } else {
-                    ae = (AntException)e;
-                }
-                ae.setProject(this);
-                ae.setTarget(target);
-                ae.setTask(task);
-                throw ae;
-            }
-            frontEnd.notifyTaskEnd(task);
-        }
-        
-        // notify frontEnd that we are done
-        frontEnd.notifyTargetEnd(target);
-        frontEnd.notifyProjectEnd(this);
-    }
-    
-    /**
-     * Givens a string representation of this object. Useful for debugging.
-     */
-    public String toString() {
-        return "Project name=" + name;
-    }
-}
diff --git a/proposal/anteater/source/main/org/apache/ant/ProjectBuilder.java b/proposal/anteater/source/main/org/apache/ant/ProjectBuilder.java
deleted file mode 100644
index ea2eb13..0000000
--- a/proposal/anteater/source/main/org/apache/ant/ProjectBuilder.java
+++ /dev/null
@@ -1,307 +0,0 @@
-// -------------------------------------------------------------------------------
-// Copyright (c)2000 Apache Software Foundation
-// -------------------------------------------------------------------------------
-
-package org.apache.ant;
-
-import java.io.*;
-import java.util.*;
-import javax.xml.parsers.*;
-import org.xml.sax.*;
-
-/**
- * Helper class to build Project object trees.
- *
- * XXX right now this class only deals with the primary levels (project/target/task)
- * and nothing else. Also, it only supports attributes....
- *
- * @author James Duncan Davidson (duncan@apache.org)
- */
-public class ProjectBuilder {
-        
-    // -----------------------------------------------------------------
-    // PRIVATE MEMBERS
-    // -----------------------------------------------------------------
-    
-    /**
-     *
-     */
-    private AntFrontEnd frontEnd;
-    
-    /**
-     *
-     */
-    private SAXParserFactory parserFactory;
-    
-    /**
-     *
-     */
-    private TaskManager taskManager;
-        
-    // -----------------------------------------------------------------
-    // CONSTRUCTORS
-    // -----------------------------------------------------------------
-   
-   
-    /**
-     * Creates a new project builder that will build projects for the given
-     * Ant.
-     */
-    public ProjectBuilder(AntFrontEnd frontEnd) {
-        this.frontEnd = frontEnd;
-        taskManager = new TaskManager(frontEnd);
-        parserFactory = SAXParserFactory.newInstance();
-        parserFactory.setValidating(false);  
-    }
-    
-    // -----------------------------------------------------------------
-    // PUBLIC METHODS
-    // -----------------------------------------------------------------
-    
-    /**
-     * Builds a project from the given file.
-     */
-    public Project buildFromFile(File file) throws AntException {
-        try {
-            SAXParser parser = parserFactory.newSAXParser();
-            BuilderHandlerBase bhb = new BuilderHandlerBase();
-            bhb.setProjectFileLocation(file);
-            parser.parse(file, bhb);
-            Project project = bhb.getProject();
-            project.setFrontEnd(frontEnd);
-            return project;
-        } catch (ParserConfigurationException pce) {
-            throw new AntException(pce);
-        } catch (SAXException se) {
-            Exception e = se.getException();
-            if (e != null && e instanceof AntException) {
-                // it's one of our own thrown from inside the parser to stop it
-                throw (AntException)e;
-            }
-            throw new AntException(se);
-        } catch (IOException ioe) {
-            throw new AntException(ioe);
-        }
-    }
-    
-    /**
-     * Returns the TaskManager associated with this ProjectBuilder and
-     * the projects that it builds
-     */
-    public TaskManager getTaskManager() {
-        return taskManager;
-    }
-    
-    // -----------------------------------------------------------------
-    // INNER CLASSES
-    // -----------------------------------------------------------------    
-    
-    /**
-     * Inner class that implements the needed SAX methods to get all the
-     * data needed out of a build file.
-     */
-    class BuilderHandlerBase extends HandlerBase {
-    
-        private static final int STATE_START = 0;
-        private static final int STATE_PROJECT = 1;
-        private static final int STATE_TARGET = 2;
-        private static final int STATE_TASK = 3;
-        private static final int STATE_DESCRIPTION = 4;
-        private static final int STATE_PROPERTY = 5;
-        private static final int STATE_FINISHED = 99;
-    
-        private int state = STATE_START;
-        
-        private Vector tagCharDataStack = new Vector();
-        
-        private Target currentTarget;
-        private Task currentTask;
-    
-        Project project = new Project(frontEnd, taskManager);
-    
-        Project getProject() {
-            return project;
-        }
-        
-        void setProjectFileLocation(File file) {
-            project.setBaseDir(file.getParentFile());
-        }
-        
-        public void startElement(String name, AttributeList atts) throws SAXException {
-
-            StringBuffer tagCharData = new StringBuffer();
-            tagCharDataStack.insertElementAt(tagCharData, 0);
-            
-            switch (state) {
-            
-              case STATE_START:
-                if (name.equals("project")) {
-                    state = STATE_PROJECT;
-                    String projectName = atts.getValue("name");
-                    if (projectName != null) {
-                        project.setName(projectName);
-                    } else {
-                        String msg = "Project element doesn't contain a name attribute";
-                        AntException ae = new AntException(msg);
-                        throw new SAXException(ae);
-                    }
-                    String defaultTarget = atts.getValue("default");
-                    if (defaultTarget != null) {
-                        project.setDefaultTargetName(defaultTarget);
-                    }
-                    String baseDirName = atts.getValue("basedir");
-                    if (baseDirName != null) {
-                        // XXX need to check to see if base dir exists
-                        project.setBaseDir(new File(baseDirName));
-                    }
-                } else {
-                    String msg = "Project file doesn't contain a project element as " +
-                                 "its root node";
-                    AntException ae = new AntException(msg);
-                    throw new SAXException(ae);
-                }
-                break;
-                
-              case STATE_PROJECT:
-              
-                // valid tags in a project object are: description, property, and target
-              
-                if (name.equals("description")) {
-                    state = STATE_DESCRIPTION;
-                } else if (name.equals("property")) {
-                    state = STATE_PROPERTY;
-                    String propertyName = atts.getValue("name");
-                    String propertyValue = atts.getValue("value");
-                    if (propertyName == null) {
-                        String msg = "Name attribute must be present on property";
-                        AntException ae = new AntException(msg);
-                        throw new SAXException(ae);
-                    } else if (propertyValue == null) {
-                        String msg = "Value attribute must be present on property";
-                        AntException ae = new AntException(msg);
-                        throw new SAXException(ae);
-                    } else {
-                        project.setProperty(propertyName, propertyValue);
-                    }
-                } else if (name.equals("target")) {
-                    state = STATE_TARGET;
-                    String targetName = atts.getValue("name");
-                    if (targetName != null) {
-                        currentTarget = new Target(targetName);
-                        project.addTarget(currentTarget);
-                    } else {
-                        // XXX figure out which target we're talking about! 
-                        // Like a location
-                        String msg = "Target element doesn't contain a name attribute";
-                        AntException ae = new AntException(msg);
-                        throw new SAXException(ae);
-                    }
-                    String depends = atts.getValue("depends");
-                    if (depends != null) {
-                        StringTokenizer tok = new StringTokenizer(depends, ",", false);
-                        while(tok.hasMoreTokens()) {
-                            currentTarget.addDependancy(tok.nextToken().trim());
-                        }
-                    }
-                                            
-                    // XXX add dependency checks
-                } else {
-                    System.out.println("Expecting target, got: " + name);
-                    // XXX exception out
-                }
-                break;
-                
-              case STATE_TARGET:
-              
-                // Valid tags inside target: task
-              
-                state = STATE_TASK;
-                //System.out.println("Getting task: " + name + " for target " + 
-                //                   currentTarget);
-                // XXX need to validate that task type (name) exists in system
-                // else exception out.
-                currentTask = new Task(name);
-                currentTarget.addTask(currentTask);
-                for (int i = 0; i < atts.getLength(); i++) {
-                    String atName = atts.getName(i);
-                    String atValue = atts.getValue(i);
-                    currentTask.addAttribute(atName, atValue);
-                }
-                break;
-                
-              case STATE_TASK:
-              
-                // data in here needs to be reflected into tasks
-                
-                System.out.println("Not yet supporting tags inside of tasks!");
-                System.out.println("The project build will probably bust right here");
-                
-                break;
-                
-              default:
-                System.out.println("I'm not sure, but we're off base here: " + name);
-                // XXX exception out
-            }
-        }
-        
-        public void characters(char ch[], int start, int length) throws SAXException {
-            StringBuffer buf = (StringBuffer)tagCharDataStack.elementAt(0);
-            buf.append(ch, start, length);
-        }
-        
-        public void endElement(String name) throws SAXException {
-            
-            StringBuffer elementData = (StringBuffer)tagCharDataStack.elementAt(0);
-            tagCharDataStack.removeElementAt(0);
-            
-            switch (state) {
-            
-              case STATE_TASK:
-                state = STATE_TARGET;
-                break;
-            
-              case STATE_TARGET:
-                if (name.equals("target")) {
-                    state = STATE_PROJECT;
-                } else {
-                    System.out.println("Expecting to get an end of target, got: " + name);
-                    // XXX exception out.
-                }
-                break;
-            
-              case STATE_DESCRIPTION:
-                if (name.equals("description")) {
-                    state = STATE_PROJECT;
-                    project.setDescription(elementData.toString().trim());
-                } else {
-                    System.out.println("Expecting to get an end of description, got: " +
-                        name);
-                    // XXX exception out.
-                }
-                break;
-            
-              case STATE_PROPERTY:
-                if (name.equals("property")) {
-                    state = STATE_PROJECT;
-                } else {
-                    System.out.println("Expecting to get end of property, got: " + name);
-                    // XXX exception out
-                }
-                break;
-            
-              case STATE_PROJECT:
-                if (name.equals("project")) {
-                    state = STATE_FINISHED;
-                } else {
-                    System.out.println("Expecting to get end of project, got: " + name);
-                    // XXX exception out;
-                }
-                break;
-            
-              default:
-                System.out.println("I'm not sure what we are ending here: " + name);
-                // XXX exception out;
-            }
-        }
-    }
-}
diff --git a/proposal/anteater/source/main/org/apache/ant/Target.java b/proposal/anteater/source/main/org/apache/ant/Target.java
deleted file mode 100644
index 4d5c98a..0000000
--- a/proposal/anteater/source/main/org/apache/ant/Target.java
+++ /dev/null
@@ -1,90 +0,0 @@
-// ---------------------------------------------------------------------
-// (c)2000 Apache Software Foundation
-//
-// ---------------------------------------------------------------------
-
-package org.apache.ant;
-
-import java.util.*;
-
-/**
- * In memory container for an Ant target.
- */
-public class Target {
-
-    // -----------------------------------------------------------------
-    // PRIVATE DATA MEMBERS
-    // -----------------------------------------------------------------
-
-    /**
-     * String containing the name of the target. This name must be
-     * unique withing a project.
-     */
-    private String name;
-
-    /**
-     * Vector containing the names of the targets that this target
-     * depends on.
-     */
-    private Vector dependsList = new Vector();
-
-    /**
-     * Vector containing the tasks that are part of this target.
-     */
-    private Vector tasks = new Vector();
-
-    // -----------------------------------------------------------------
-    // CONSTRUCTORS
-    // -----------------------------------------------------------------
-
-    /**
-     * Constructs a new Target object with the given name.
-     */
-    public Target(String name) {
-        this.name = name;
-    }
-
-    // -----------------------------------------------------------------
-    // PUBLIC ACCESSOR METHODS
-    // -----------------------------------------------------------------
-    
-    /**
-     * Adds a dependancy to this task.
-     */
-    public void addDependancy(String targetName) {
-        dependsList.addElement(targetName);
-    }
-       
-    /**
-     *
-     */
-    public void addTask(Task task) {
-        tasks.addElement(task);
-    }
-    
-    /**
-     * Returns a String containing the name of this Target.
-     */
-    public String getName() {
-        return name;
-    }
-    
-    /**
-     *
-     */
-    public String toString() {
-        return "TARGET: " + name;
-    }
-
-    /**
-     * Returns a Vector of Tasks contained in this Target. 
-     * <p>
-     * Please use caution when using this method. I am not happy
-     * about exposing this data as something other than a 
-     * Collection, but don't want to use 1.1 collections. So, 
-     * this method may change in the future. You have been warned.
-     */
-    public Vector getTasks() {
-        return tasks;
-    }
-}
\ No newline at end of file
diff --git a/proposal/anteater/source/main/org/apache/ant/Task.java b/proposal/anteater/source/main/org/apache/ant/Task.java
deleted file mode 100644
index 363c801..0000000
--- a/proposal/anteater/source/main/org/apache/ant/Task.java
+++ /dev/null
@@ -1,86 +0,0 @@
-// ---------------------------------------------------------------------
-// (c)2000 Apache Software Foundation
-//
-// ---------------------------------------------------------------------
-
-package org.apache.ant;
-
-import java.util.*;
-
-/**
- * In memory container for an Ant target.
- *
- * XXX need a way to query which attributes are valid for this particular
- * task type... Like into Ant object to do this?
- */
-public class Task {
-
-    // -----------------------------------------------------------------
-    // PRIVATE DATA MEMBERS
-    // -----------------------------------------------------------------
-    
-    /**
-     *
-     */
-    private Hashtable attributes = new Hashtable();
-    
-    /**
-     * String containing the type of the task.
-     */
-    private String type;
-
-    // -----------------------------------------------------------------
-    // CONSTRUCTORS
-    // -----------------------------------------------------------------
-
-    /**
-     * Constructs a new Target object with the given name.
-     */
-    public Task(String type) {
-        this.type = type;
-    }
-
-    // -----------------------------------------------------------------
-    // PUBLIC ACCESSOR METHODS
-    // -----------------------------------------------------------------
-    
-    /**
-     *
-     */
-    public void addAttribute(String name, String value) {
-        attributes.put(name, value);
-    }
-    
-    public String getAttribute(String name) {
-        return (String)attributes.get(name);
-    }
-    
-    /**
-     *
-     */
-    public Hashtable getAttributes() {
-        return attributes;
-    }
-    
-    /**
-     *
-     */
-    public Enumeration getAttributeNames() {
-        return attributes.keys();
-    }
-     
-    /**
-     * Returns a String containing the name of this Target.
-     */
-    public String getType() {
-        return type;
-    }
-    
-    /**
-     *
-     */
-    public String toString() {
-        return "TASK: " + type;
-    }
-
-}
\ No newline at end of file
diff --git a/proposal/anteater/source/main/org/apache/ant/TaskManager.java b/proposal/anteater/source/main/org/apache/ant/TaskManager.java
deleted file mode 100644
index 9ffc7e9..0000000
--- a/proposal/anteater/source/main/org/apache/ant/TaskManager.java
+++ /dev/null
@@ -1,268 +0,0 @@
-// -------------------------------------------------------------------------------
-// Copyright (c)2000 Apache Software Foundation
-// -------------------------------------------------------------------------------
-
-package org.apache.ant;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.util.zip.*;
-
-/**
- * Manager of tasks and all things related to tasks. Tasks can be found in a
- * wide number of locations -- and most of these locations require class loading
- * help. As well, new nodes on the task search path may be added at any time.
- * When these are added, new tasks should be scanned for.
- *
- * @author James Duncan Davidson (duncan@apache.org)
- */
-public class TaskManager {
-
-    // -----------------------------------------------------------------
-    // PRIVATE DATA MEMBERS
-    // -----------------------------------------------------------------
-    
-    /**
-     * FrontEnd that this TaskManager can communicate through.
-     */
-    private AntFrontEnd frontEnd;
-    
-    /**
-     * Data structure where all the Class definition for all known tasks are
-     * held.
-     */
-    private Hashtable taskClasses = new Hashtable();
-    
-    /**
-     * Data structure that holds all the nodes where tasks are picked up from.
-     */
-    private Vector taskPathNodes = new Vector();
-
-    // -----------------------------------------------------------------
-    // CONSTRUCTORS
-    // -----------------------------------------------------------------
-    
-    /**
-     * Creates a new TaskManager.
-     */
-    TaskManager(AntFrontEnd frontEnd) {
-        this.frontEnd = frontEnd;
-    }
-    
-    // -----------------------------------------------------------------
-    // PUBLIC METHODS
-    // -----------------------------------------------------------------
- 
-    /**
-     * Adds a node to the task path 
-     */
-    public void addTaskPathNode(File file) throws AntException {
-        taskPathNodes.addElement(file);
-        processTaskPathNode(file);
-    }
-
-    // -----------------------------------------------------------------
-    // PACKAGE METHODS
-    // -----------------------------------------------------------------
-    
-    /**
-     *
-     */
-    AbstractTask getTaskInstance(String taskName) throws AntException {
-        Class clazz = (Class)taskClasses.get(taskName);
-        try {
-            return (AbstractTask)clazz.newInstance();
-        } catch (Exception e) { 
-            String msg = "Can't instantiate task: " + taskName;
-            AntException ae = new AntException(msg, e);
-            throw ae;
-        }
-    }
- 
-    // -----------------------------------------------------------------
-    // PRIVATE METHODS
-    // -----------------------------------------------------------------
-   
-    /**
-     * Returns an enum of the task names that are defined in a given 
-     * properties file.
-     */
-    private Enumeration getTaskNames(Properties props) {
-        Vector v = new Vector();
-        String s = props.getProperty("tasks");
-        StringTokenizer tok = new StringTokenizer(s, ",", false);
-        while (tok.hasMoreTokens()) {
-            String taskName = tok.nextToken().trim();
-            v.addElement(taskName);
-        }
-        return v.elements();
-    }
-   
-    /**
-     * Processes a directory to get class defintions from it
-     */
-    private void processDir(File dir) {
-        frontEnd.writeMessage("Scanning " + dir + " for tasks", 
-                                       AntFrontEnd.MSG_LEVEL_LOW);
-        File file = new File(dir, "taskdef.properties");
-        if (file.exists()) {
-            try {
-                InputStream in = new FileInputStream(file);
-                Properties props = new Properties();
-                props.load(in);
-                in.close();
-                
-                Enumeration enum = getTaskNames(props);
-                while (enum.hasMoreElements()) {
-                    String taskName = (String)enum.nextElement();
-                    String taskClass = props.getProperty("task." + taskName + ".class");
-                    URLClassLoader loader = new URLClassLoader(new URL[] {dir.toURL()});
-                    try {
-                        Class clazz = loader.loadClass(taskClass);
-                        frontEnd.writeMessage("Got Task: " + taskName +
-                                                       clazz, AntFrontEnd.MSG_LEVEL_LOW);
-                        taskClasses.put(taskName, clazz);
-                    } catch (ClassNotFoundException cnfe) {
-                        System.out.println("Couldn't load task: " + taskName);
-                        System.out.println(cnfe);
-                        // XXX error out and stop....
-                    }
-                }
-            } catch (IOException ioe) {
-                System.out.println("Could not work with dir: " + dir);
-                System.out.println(ioe);
-                // XXX error out and stop the build
-            }
-        }
-    }
-   
-    /**
-     * Processes a jar file to get class definitions from it
-     */
-    private void processJar(File file) throws AntException {
-        frontEnd.writeMessage("Scanning " + file + " for tasks", 
-                                       AntFrontEnd.MSG_LEVEL_LOW);
-        try {
-            ZipFile zipFile = new ZipFile(file);
-            ZipEntry zipEntry = zipFile.getEntry("taskdef.properties");
-            if (zipEntry != null) {
-                InputStream in = zipFile.getInputStream(zipEntry);
-                Properties props = new Properties();
-                props.load(in);
-                in.close();
-            
-                Enumeration enum = getTaskNames(props);
-                while (enum.hasMoreElements()) {
-
-                    String taskName = (String)enum.nextElement();
-                    String taskClass = props.getProperty("task." + taskName + ".class");
-                    if (taskClass == null) {
-                        String msg = "No class definition for task " + taskName +
-                                     "in jar file " + file;
-                        throw new AntException(msg);
-                    }
-                    URLClassLoader loader = new URLClassLoader(new URL[] {file.toURL()});
-                    try {
-                        Class clazz = loader.loadClass(taskClass);
-                       	frontEnd.writeMessage("Got Task: " + taskName +
-                                                       clazz, AntFrontEnd.MSG_LEVEL_LOW);
-                        taskClasses.put(taskName, clazz);
-                    } catch (ClassNotFoundException cnfe) {
-                        System.out.println("Couldn't load task: " + taskName);
-                        System.out.println(cnfe);
-                        // XXX error out and stop....
-                    }
-                }
-            }
-            // make sure to not leave resources hanging
-            zipFile.close();
-        } catch (IOException ioe) {
-            System.out.println("Couldn't work with file: " + file);
-            System.out.println(ioe);
-            // XXX need to exception out of here properly to stop things 
-        }
-    }
-   
-    /**
-     * Processes a node of the task path searching for task definitions there
-     * and adding them to the list of known tasks
-     */
-    private void processTaskPathNode(File file) throws AntException {
-    
-        // task path nodes can be any of the following:
-        //     * jar file
-        //     * directory of jar files
-        //     * directory holding class files
-        
-        if(file.isDirectory()) {
-            // first look for all jar files here
-            // second look for a taskdefs.properties here to see if we should
-            // treat the directory as a classpath
-            
-            String[] files = file.list();
-            for (int i = 0; i < files.length; i++) {
-                if (files[i].endsWith(".jar")) {
-                    processJar(new File(file, files[i]));
-                } else if (files[i].equals("taskdef.properties")) {
-                    processDir(file);
-                }
-            }
-        } else if (file.getName().endsWith(".jar")) {
-            processJar(file);
-        }
-    }
-    
-    /**
-     * Sets up the taskpath based on the currently running operating
-     * system. In general, the ordering of the taskpath is: user directory,
-     * system directory, and then installation. This allows users or
-     * system admins to override or add tasks.
-     */
-    private void setUpTaskPath() throws AntException {
-        
-        // 1st, add user's home dir.
-        
-        File f;
-        
-        String userHome = System.getProperty("user.home");
-        
-        // generic unix
-        f = new File(userHome + ".ant", "tasks");
-        if (f.exists() && f.isDirectory()) {
-            addTaskPathNode(f);
-        }
-        
-        // macos x
-        f = new File(userHome + "/Library/Ant", "Tasks");
-        if (f.exists() && f.isDirectory()) {
-            addTaskPathNode(f);
-        }
-        
-        // windows -- todo
-        
-        // 2nd, add system local dir.
-        
-        // generic unix
-        f = new File("/usr/local/ant/tasks");
-        if (f.exists() && f.isDirectory()) {
-            addTaskPathNode(f);
-        }
-        
-        // macos x
-        f = new File("/Library/Ant/Tasks");
-        if (f.exists() && f.isDirectory()) {
-            addTaskPathNode(f);
-        }
-        
-        // windows -- todo
-        
-        // 3rd, add installation local dir.
-        
-        //System.out.println("BASE: " + this.getClass().getResource("/"));
-        
-        // XXX ---- not really sure how the best way of getting this info is...
-        // hafta think about it.
-    }
-
-}
diff --git a/proposal/anteater/source/main/org/apache/ant/cli/CLIFrontEnd.java b/proposal/anteater/source/main/org/apache/ant/cli/CLIFrontEnd.java
deleted file mode 100644
index 91cb8f3..0000000
--- a/proposal/anteater/source/main/org/apache/ant/cli/CLIFrontEnd.java
+++ /dev/null
@@ -1,307 +0,0 @@
-// -------------------------------------------------------------------------------
-// Copyright (c)2000 Apache Software Foundation
-// -------------------------------------------------------------------------------
-
-package org.apache.ant.cli;
-
-import java.io.*;
-import java.util.*;
-import org.apache.ant.*;
-
-/**
- * Front end for the Command Line Interface that gets passed to Ant so that
- * it can communicate information to the CLI.
- *
- * @author James Duncan Davidson (duncan@apache.org)
- */
-public class CLIFrontEnd extends AntFrontEnd {
-
-    // -----------------------------------------------------------------
-    // PRIVATE MEMBERS
-    // -----------------------------------------------------------------
-
-    /**
-     *
-     */
-    private String[] args;
-
-    /**
-     * ProjectBuilder that is associated with this frontEnd. 
-     */
-    private ProjectBuilder projectBuilder;
-
-    /**
-     *
-     */
-    private int msgLevelFilter = MSG_LEVEL_MED;
-    
-    /**
-     * TaskManager instance that we can set taskpaths and such on.
-     */
-    private TaskManager taskManager;
-    
-    // -----------------------------------------------------------------
-    // CONSTRUCTORS
-    // ----------------------------------------------------------------- 
-
-    /**
-     * Creates a new CLIFrontEnd that can drive an Ant build from the Command
-     * Line.
-     */
-    public CLIFrontEnd() {
-        projectBuilder = new ProjectBuilder(this);
-        taskManager = projectBuilder.getTaskManager();
-    }
-
-    // -----------------------------------------------------------------
-    // PUBLIC METHODS
-    // -----------------------------------------------------------------    
-
-    /**
-     * Send notification to the FrontEnd that execution has moved into
-     * the scope of a particular project. The default implementation
-     * does nothing. 
-     */
-    public void notifyProjectStart(Project project) {
-        writeMessage("Project Start: " + project.getName(), MSG_LEVEL_LOW);
-    }
-
-    /**
-     * Send notification to the FrontEnd that execution has moved out
-     * of the scope of a particular Project. The default implementation
-     * does nothing.
-     */
-    public void notifyProjectEnd(Project project) {
-        writeMessage("Project End: " + project.getName(), MSG_LEVEL_LOW);
-    }
-    
-    /**
-     * Send notification to the FrontEnd that execution has moved into
-     * the scope of a particular target. The default implementation does
-     * nothing.
-     */
-    public void notifyTargetStart(Target target) {
-        writeMessage("Target Start: " + target.getName(), MSG_LEVEL_LOW);
-    }
-    
-    /**
-     * Send notification to the FrontEnd that execution has moved out of
-     * the scope of a particular target. The default implementation does
-     * nothing.
-     */
-    public void notifyTargetEnd(Target target) {
-        writeMessage("Target End: " + target.getName(), MSG_LEVEL_LOW); 
-    }
-    
-    /**
-     * Send notification to the FrontEnd that execution has moved into the
-     * scope of a particular task. The default implementation does nothing.
-     */
-    public void notifyTaskStart(Task task) {
-        writeMessage("Task Start: " + task.getType(), MSG_LEVEL_LOW);
-    }
-    
-    /**
-     * Send notification to the FrontEnd that execution has moved out of
-     * the scope of a particular task. The default implementation does
-     * nothing.
-     */
-    public void notifyTaskEnd(Task task) {
-        writeMessage("Task End: " + task.getType(), MSG_LEVEL_LOW);
-    }
-
-    /**
-     *
-     */
-    public void run(String[] args) {
-        this.args = args;
-        String target = "";
-        File buildFile = null;
-        writeMessage("Ant(Eater) -- Proposed Ant 2.0");
-        
-        // process through the args set
-        
-        if (isArg("help")) {
-            printHelp();
-            return;
-        }
-        
-        if (isArg("quiet")) {
-            msgLevelFilter = MSG_LEVEL_HIGH;
-        }
-        
-        if (isArg("verbose")) {
-            msgLevelFilter = MSG_LEVEL_LOW;
-        }
-        
-        String argTaskpath = getArgValue("taskpath");
-        if (argTaskpath != null) {
-            if (argTaskpath.equals("")) {
-                writeMessage("Must give a value for -taskpath");
-                return;
-            } else {
-                // XXX need to separate on path seps so that real paths can be taken
-                try {
-                    taskManager.addTaskPathNode(new File(argTaskpath));
-                } catch (AntException ae) {
-                    System.out.println(ae);
-                    System.out.println(ae.getMessage());
-                    ae.printStackTrace(System.out);
-                    return;
-                }
-            }
-        }
-        
-        String argBuildfile = getArgValue("buildfile");
-        if (argBuildfile != null) {
-            if (argBuildfile.equals("")) {
-                writeMessage("Must give a value for -buildfile");
-                return;
-            } else {
-                //try {
-                buildFile = new File(argBuildfile);
-                    //ant.setBuildfile(new File(argBuildfile));
-                //} catch (AntException ae) {
-                //    writeMessage("Can't set buildfile");
-                //    writeMessage(ae.toString());
-                //    return;
-                //}
-            }
-        }
-        
-        target = getTargetArg();
-                
-        // XXX do something if we dont' have a buildfile set!
-        
-        // XXX really should check to make sure that the target is set to something
-        // like get the default...
-        
-        try {
-            Project project = projectBuilder.buildFromFile(buildFile);
-            
-            project.setFrontEnd(this);
-            project.startBuild(target);
-        } catch (AntException ae) {  
-        
-            //XXX this whole write a string at a time message handling
-            // sucks and needs to be improved...
-                    
-            writeMessage("Build Stopped");
-            writeMessage("    Project: " + ae.getProject().getName());
-            writeMessage("     Target: " + ae.getTarget().getName());
-            writeMessage("  Task Type: " + ae.getTask().getType());
-            writeMessage("Details Follow");
-            writeMessage("");
-            writeMessage(ae.getMessage());
-            ae.printStackTrace(System.out);
-            Throwable t = ae.getCause();
-            if (t != null) {
-                writeMessage("");
-                writeMessage("Cause Exception: " + t.toString());
-                writeMessage(t.getMessage());
-                t.printStackTrace(System.out);
-            }
-        }        
-    }
-
-    /**
-     * Writes a message to the front end.
-     */
-    public void writeMessage(String message, int level) {
-        if (level >= msgLevelFilter) {
-            System.out.println(message);
-        }
-    }
-    
-    // -----------------------------------------------------------------
-    // PRIVATE METHODS
-    // ----------------------------------------------------------------- 
-    
-    /**
-     * Returns the value for a given argument name, null if the argument
-     * name isn't in the argument set, or "" if the argument doesn't have
-     * a value.
-     */
-    private String getArgValue(String argName) {
-        for (int i = 0; i < args.length; i++) {
-            if (args[i].equals("-" + argName)) {
-                if (i != args.length - 1) {
-                    return args[i + 1];
-                } else {
-                    return "";
-                }
-            }
-        }
-        return null;
-    }
-    
-    /**
-     * Returns the target that was requested to be built, if any. If no
-     * target is determined, returns null.
-     */
-    public String getTargetArg() {
-        String possibleTarget = getArgValue("target");
-        if (possibleTarget != null) {
-            if (possibleTarget.equals("")) {
-                writeMessage("Must give a value for -target");
-            } else {
-                return possibleTarget;
-            }
-        } 
-        
-        possibleTarget = args[args.length - 1];
-        if (possibleTarget.startsWith("-")) {
-            return null;
-        }
-        if (args[args.length - 2].startsWith("-")) {
-            // our possible target might be an arg value instead of a target
-            // XXX ugh -- there has to be a better way here. We need to hold
-            // a list of all args that don't have values somewhere.
-            if (args[args.length - 2].equals("-help") ||
-                args[args.length - 2].equals("-verbose") ||
-                args[args.length - 2].equals("-quiet")) {
-                // we're ok, the arg before the possible target doesn't have a value
-                return possibleTarget;
-            } else {
-                return null;
-            }
-        } else {
-            return possibleTarget;
-        }
-    }
-    
-    /**
-     * Indicates whether or not a given argument name exists in the argument
-     * set.
-     */
-    private boolean isArg(String argName) {
-        for (int i = 0; i < args.length; i++) {
-            if (args[i].equals("-" + argName)) {
-                return true;
-            }
-        }
-        return false;
-    }
-    
-    /**
-     * Prints help to System.out
-     */  
-    private void printHelp() {
-    
-        // XXX resource bundle this.
-    
-        String ls = System.getProperty("line.separator");
-        String msg = "Usage: ant [args] [target]" + ls +
-                     "    Arguments can be any of the following:" + ls +
-                     "        -help" + ls +
-                     "        -taskpath [path]" + ls +
-                     "        -buildfile [file]" +ls +
-                     "        -verbose" + ls +
-                     "        -quiet"   + ls + ls +
-                     "    Note that if no buildfile argument is given, Ant will"+ls+
-                     "    try to find one in the current directory. If there are"+ls+
-                     "    two or more buildfiles in the current directory, it" +ls+
-                     "    will bail.";
-        writeMessage(msg);
-    }
-}
diff --git a/proposal/anteater/source/main/org/apache/ant/cli/Main.java b/proposal/anteater/source/main/org/apache/ant/cli/Main.java
deleted file mode 100644
index 7a81b89..0000000
--- a/proposal/anteater/source/main/org/apache/ant/cli/Main.java
+++ /dev/null
Binary files differ
diff --git a/proposal/antfarm/ant.ant b/proposal/antfarm/ant.ant
deleted file mode 100644
index 4c1a242..0000000
--- a/proposal/antfarm/ant.ant
+++ /dev/null
@@ -1,35 +0,0 @@
-<!-- this is a test -->
-<project name="ant" 
-	xmlns:doc="http:/apache.org/ant-2.0.0/doc" 
-	doc:copyright="Copyright (c) 2000 The Apache Software Foundation">
-
-	<import name="java2sdk"/>
-	<import name="jaxp"/>
-
-	<target name="init" depends="java2sdk:init"/>
-
-	<target name="core" abc:aaaa="foo">
-		<javac dest="temp/core" classpath="">
-			<fileset src="core"/>
-		</javac>
-		<jar jarfile="dist/ant.jar" basedir="temp/core" manifest="core/META-INF/manifest.mf"/>
-	</target>
-
-	<target name="xml" depends="core jaxp:init">
-		<javac dest="temp/xml" classpath="dist/ant.jar:{jaxp:ant.base.dir}/jaxp.jar:{jaxp:ant.base.dir}/crimson.jar">
-			<fileset src="xml"/>
-		</javac>
-		<jar jarfile="dist/xml/ant-xml.jar" basedir="temp/xml"/>
-		<copy src="boot/xml/jaxp.jar" dest="dist/xml/jaxp.jar"/>
-		<copy src="boot/xml/crimson.jar" dest="dist/xml/crimson.jar"/>
-	</target>
-
-	<target name="tasks" depends="core">
-		<javac dest="temp/tasks" classpath="dist/ant.jar">
-			<fileset src="tasks"/>
-		</javac>
-		<jar jarfile="dist/tasks/standard.jar" basedir="temp/tasks"/>
-	</target>
-
-	<target name="all" depends="init core xml tasks"/>
-</project>
\ No newline at end of file
diff --git a/proposal/antfarm/bootstrap.bat b/proposal/antfarm/bootstrap.bat
deleted file mode 100755
index e46e815..0000000
--- a/proposal/antfarm/bootstrap.bat
+++ /dev/null
@@ -1,35 +0,0 @@
-@if not exist boot mkdir boot
-@if not exist boot\tasks mkdir boot\tasks
-@if not exist boot\xml mkdir boot\xml
-@if not exist temp mkdir temp
-@if not exist temp\core mkdir temp\core
-@if not exist temp\xml mkdir temp\xml
-@if not exist temp\tasks mkdir temp\tasks
-
-javac -classpath "" -d temp\core core\org\apache\tools\ant\*.java core\org\apache\tools\ant\cmdline\*.java core\*.java 
-@if errorlevel 1 goto end
-
-jar -cfm boot\ant.jar core\META-INF\manifest.mf -C temp\core .
-@if errorlevel 1 goto end
-
-javac -classpath "boot\ant.jar;jaxp\jaxp.jar;jaxp\crimson.jar" -d temp\xml xml\org\apache\tools\ant\xml\*.java
-@if errorlevel 1 goto end
-
-jar -cf boot\xml\ant-xml.jar -C temp\xml .
-@if errorlevel 1 goto end
-
-javac -classpath "boot\ant.jar" -d temp\tasks tasks\org\apache\tools\ant\tasks\*.java
-@if errorlevel 1 goto end
-
-copy tasks\java2sdk.ant temp\tasks\java2sdk.ant
-
-jar -cf boot\tasks\java2sdk.jar -C temp\tasks .
-@if errorlevel 1 goto end
-
-copy jaxp\jaxp.jar boot\xml\jaxp.jar
-copy jaxp\crimson.jar boot\xml\crimson.jar
-
-@rmdir /s /q temp
-
-
-:end
\ No newline at end of file
diff --git a/proposal/antfarm/bootstrap.sh b/proposal/antfarm/bootstrap.sh
deleted file mode 100644
index ede3704..0000000
--- a/proposal/antfarm/bootstrap.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/sh
-
-if ! test -d boot ; then
-    mkdir -p boot/tasks
-    mkdir -p boot/xml
-fi
-
-if ! test -d  temp ; then
-    mkdir -p temp/core
-    mkdir -p temp/xml
-    mkdir -p temp/tasks
-fi
-
-if  test -z "$JAVAC" ; then
-    JAVAC=javac;
-fi
-
-TOOLS=core/org/apache/tools
-
-${JAVAC} -d temp/core ${TOOLS}/ant/*.java \
-                      ${TOOLS}/ant/cmdline/*.java \
-                      core/*.java
-
-jar -cfm boot/ant.jar core/META-INF/manifest.mf -C temp/core .
-
-${JAVAC} -classpath boot/ant.jar:jaxp/jaxp.jar:jaxp/crimson.jar -d temp/xml xml/org/apache/tools/ant/xml/*.java
-
-jar -cf boot/xml/ant-xml.jar -C temp/xml .
-
-${JAVAC} -classpath boot/ant.jar -d temp/tasks tasks/org/apache/tools/ant/tasks/*.java
-
-cp tasks/java2sdk.ant temp/tasks/java2sdk.ant
-
-jar -cf boot/tasks/java2sdk.jar -C temp/tasks .
-
-cp jaxp/jaxp.jar boot/xml/jaxp.jar
-cp jaxp/crimson.jar boot/xml/crimson.jar
-
-#rm -rf temp
diff --git a/proposal/antfarm/build.bat b/proposal/antfarm/build.bat
deleted file mode 100755
index 6f58b83..0000000
--- a/proposal/antfarm/build.bat
+++ /dev/null
@@ -1 +0,0 @@
-java -classpath boot\ant.jar -Dant.project.path=.;jaxp ant ant:all
\ No newline at end of file
diff --git a/proposal/antfarm/build.sh b/proposal/antfarm/build.sh
deleted file mode 100644
index 5ff9eb6..0000000
--- a/proposal/antfarm/build.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-java -classpath boot/ant.jar -Dant.project.path=.:jaxp ant ant:all
diff --git a/proposal/antfarm/clean.bat b/proposal/antfarm/clean.bat
deleted file mode 100755
index 8d85ad7..0000000
--- a/proposal/antfarm/clean.bat
+++ /dev/null
@@ -1,3 +0,0 @@
-if exist boot rmdir /s /q boot
-if exist temp rmdir /s /q temp
-if exist dist rmdir /s /q dist
diff --git a/proposal/antfarm/clean.sh b/proposal/antfarm/clean.sh
deleted file mode 100644
index df0b792..0000000
--- a/proposal/antfarm/clean.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-if test -d boot ; then
-    rm -rf boot
-fi
-
-if test -d temp ; then
-    rm -rf temp
-fi
-
-if test -d dist ; then
-    rm -rf dist
-fi
diff --git a/proposal/antfarm/core/META-INF/manifest.mf b/proposal/antfarm/core/META-INF/manifest.mf
deleted file mode 100644
index 5de3b41..0000000
--- a/proposal/antfarm/core/META-INF/manifest.mf
+++ /dev/null
@@ -1,2 +0,0 @@
-Main-Class: org.apache.tools.ant.cmdline.Main
-
diff --git a/proposal/antfarm/core/ant.java b/proposal/antfarm/core/ant.java
deleted file mode 100644
index 555667b..0000000
--- a/proposal/antfarm/core/ant.java
+++ /dev/null
@@ -1,9 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-import org.apache.tools.ant.cmdline.Main;
-
-public class ant {
-    public static void main(String[] args) throws Exception {
-        Main.main(args);
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/core/org/apache/tools/ant/AntException.java b/proposal/antfarm/core/org/apache/tools/ant/AntException.java
deleted file mode 100644
index 2dcbb00..0000000
--- a/proposal/antfarm/core/org/apache/tools/ant/AntException.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant;
-
-import java.io.*;
-
-/**
- *  This class represents an error within Ant. The end
- *  user should not be able to trigger this exception under
- *  normal circumstances. The BuildException class should
- *  be used instead to indicate that a compile or some other task
- *  has failed.
- *
- *  @author <a href="mailto:mpfoemme@thoughtworks.com">Matthew Foemmel</a>
- */
-public class AntException extends RuntimeException {
-    private Throwable cause;
-
-    public AntException(String msg) {
-        super(msg);
-    }
-
-    public AntException(String msg, Throwable cause) {
-        super(msg);
-
-        this.cause = cause;
-    }
-
-    public Throwable getCause() {
-        return cause;
-    }
-
-    public void printStackTrace() {
-        printStackTrace(System.err);
-    }
-
-    public void printStackTrace(PrintStream out) {
-        super.printStackTrace(out);
-
-        if (cause != null) {
-            cause.printStackTrace(out);
-        }
-    }
-
-    public void printStackTrace(PrintWriter out) {
-        super.printStackTrace(out);
-
-        if (cause != null) {
-            cause.printStackTrace(out);
-        }
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/core/org/apache/tools/ant/AntSecurityManager.java b/proposal/antfarm/core/org/apache/tools/ant/AntSecurityManager.java
deleted file mode 100644
index c337235..0000000
--- a/proposal/antfarm/core/org/apache/tools/ant/AntSecurityManager.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant;
-
-/**
- *  This security manager is installed by the Workspace class
- *  while tasks are being invoked so that System.exit calls can
- *  be intercepted. Any tasks that tries to call System.exit
- *  will cause an ExitException to be thrown instead of terminating
- *  the VM.
- *
- *  @author <a href="mailto:mpfoemme@thoughtworks.com">Matthew Foemmel</a>
- */
-public class AntSecurityManager extends SecurityManager {
-    /**
-     *  Throws an ExitException which should be caught at the task level and handled.
-     */
-    public void checkExit(int status) {
-        throw new ExitException(status);
-    }
-
-    /**
-     *  Allows anything.
-     */
-    public void checkPermission(java.security.Permission p) {
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/core/org/apache/tools/ant/BuildEvent.java b/proposal/antfarm/core/org/apache/tools/ant/BuildEvent.java
deleted file mode 100644
index 5781857..0000000
--- a/proposal/antfarm/core/org/apache/tools/ant/BuildEvent.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant;
-
-import java.util.EventObject;
-
-/**
- *  This class encapsulates information about events that occur during
- *  a build.
- *
- *  @see BuildListener
- *
- *  @author <a href="mailto:mpfoemme@thoughtworks.com">Matthew Foemmel</a>
- */
-public class BuildEvent extends EventObject {
-    public static final int DEBUG = 1;
-    public static final int INFO = 2;
-    public static final int WARN = 3;
-    public static final int ERROR = 4;
-
-    private Workspace workspace;
-    private Project project;
-    private Target target;
-    private Task task;
-    private String message;
-    private int priority;
-    private BuildException exception;
-
-    /**
-     * Construct a BuildEvent for a workspace level event
-     *
-     * @param workspace the workspace that emitted the event.
-     */
-    public BuildEvent(Workspace workspace) {
-        super(workspace);
-        this.workspace = workspace;
-        this.project = null;
-        this.target = null;
-        this.task = null;
-    }
-
-    /**
-     * Construct a BuildEvent for a project level event
-     *
-     * @param project the project that emitted the event.
-     */
-    public BuildEvent(Project project) {
-        super(project);
-        this.workspace = project.getWorkspace();
-        this.project = project;
-        this.target = null;
-        this.task = null;
-    }
-
-    /**
-     * Construct a BuildEvent for a target level event
-     *
-     * @param target the target that emitted the event.
-     */
-    public BuildEvent(Target target) {
-        super(target);
-        this.workspace = target.getProject().getWorkspace();
-        this.project = target.getProject();
-        this.target = target;
-        this.task = null;
-    }
-
-    /**
-     * Construct a BuildEvent for a task level event
-     *
-     * @param task the task that emitted the event.
-     */
-    public BuildEvent(Task task) {
-        super(task);
-        this.workspace = task.getProject().getWorkspace();
-        this.project = task.getProject();
-        this.target = task.getTarget();
-        this.task = task;
-    }
-
-    public void setMessage(String message, int priority) {
-        this.message = message;
-        this.priority = priority;
-    }
-
-    public void setException(BuildException exception) {
-        this.exception = exception;
-    }
-
-    /**
-     *  Returns the project that fired this event.
-     */
-    public Project getProject() {
-        return project;
-    }
-
-    /**
-     *  Returns the target that fired this event.
-     */
-    public Target getTarget() {
-
-        return target;
-    }
-
-    /**
-     *  Returns the task that fired this event.
-     */
-    public Task getTask() {
-        return task;
-    }
-
-    /**
-     *  Returns the logging message. This field will only be set
-     *  for "messageLogged" events.
-     *
-     *  @see BuildListener#messageLogged(BuildEvent)
-     */
-    public String getMessage() {
-        return message;
-    }
-
-    /**
-     *  Returns the priority of the logging message. This field will only
-     *  be set for "messageLogged" events.
-     *
-     *  @see BuildListener#messageLogged(BuildEvent)
-     */
-    public int getPriority(){
-        return priority;
-    }
-
-    /**
-     *  Returns the exception that was thrown, if any. This field will only
-     *  be set for "taskFinished", "targetFinished", and "buildFinished" events.
-     *
-     *  @see BuildListener#taskFinished(BuildEvent)
-     *  @see BuildListener#targetFinished(BuildEvent)
-     *  @see BuildListener#buildFinished(BuildEvent)
-     */
-    public BuildException getException() {
-        return exception;
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/core/org/apache/tools/ant/BuildException.java b/proposal/antfarm/core/org/apache/tools/ant/BuildException.java
deleted file mode 100644
index bf29e8b..0000000
--- a/proposal/antfarm/core/org/apache/tools/ant/BuildException.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant;
-
-/**
- *  Indicates that an error during the build, such as a compiler error,
- *  a typo in a build file, etc. Errors resulting from coding
- *  errors within ant or a misconfigured setup should use
- *  AntException.
- *
- *  @see AntException
- *
- *  @author <a href="mailto:mpfoemme@thoughtworks.com">Matthew Foemmel</a>
- */
-public class BuildException extends Exception {
-    private String location;
-
-    /**
-     *  Constructs a new exception with the specified message.
-     */
-    public BuildException(String message) {
-        super(message);
-    }
-
-    /**
-     *  Constructs a new exception with the specified message and location.
-     */
-    public BuildException(String message, String location) {
-        super(message);
-
-        this.location = location;
-    }
-
-    /**
-     *  Returns the location in the build file where this error.
-     *  occured.
-     */
-    public String getLocation() {
-        return location;
-    }
-
-    /**
-     *  Sets the location in the build file where this error occured.
-     */
-    public void setLocation(String location) {
-        this.location = location;
-    }
-
-    public String toString() {
-        return (location == null) ? getMessage() : (location + ": " + getMessage());
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/core/org/apache/tools/ant/BuildListener.java b/proposal/antfarm/core/org/apache/tools/ant/BuildListener.java
deleted file mode 100644
index e9f16db..0000000
--- a/proposal/antfarm/core/org/apache/tools/ant/BuildListener.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant;
-
-import java.util.EventListener;
-
-/**
- *  Objects that implement this interface can be notified when
- *  things happened during a build.
- *
- *  @see BuildEvent
- *  @see Project#addBuildListener(BuildListener)
- *
- *  @author <a href="mailto:mpfoemme@thoughtworks.com">Matthew Foemmel</a>
- */
-public interface BuildListener extends EventListener {
-
-    /**
-     *  Fired before any targets are started.
-     */
-    public void buildStarted(BuildEvent event);
-
-    /**
-     *  Fired after the last target has finished. This event
-     *  will still be thrown if an error occured during the build.
-     *
-     *  @see BuildEvent#getException()
-     */
-    public void buildFinished(BuildEvent event);
-
-    /**
-     *  Fired before a project file is parsed.
-     */
-    public void importStarted(BuildEvent event);
-
-    /**
-     *  Fired after a project file is parsed.
-     */
-    public void importFinished(BuildEvent event);
-
-    /**
-     *  Fired when a target is started.
-     *
-     *  @see BuildEvent#getTarget()
-     */
-    public void targetStarted(BuildEvent event);
-
-    /**
-     *  Fired when a target has finished. This event will
-     *  still be thrown if an error occured during the build.
-     *
-     *  @see BuildEvent#getException()
-     */
-    public void targetFinished(BuildEvent event);
-
-    /**
-     *  Fired when a task is started.
-     *
-     *  @see BuildEvent#getTask()
-     */
-    public void taskStarted(BuildEvent event);
-
-    /**
-     *  Fired when a task has finished. This event will still
-     *  be throw if an error occured during the build.
-     *
-     *  @see BuildEvent#getException()
-     */
-    public void taskFinished(BuildEvent event);
-
-    /**
-     *  Fired whenever a message is logged.
-     *
-     *  @see BuildEvent#getMessage()
-     *  @see BuildEvent#getPriority()
-     */
-    public void messageLogged(BuildEvent event);
-
-}
\ No newline at end of file
diff --git a/proposal/antfarm/core/org/apache/tools/ant/ExitException.java b/proposal/antfarm/core/org/apache/tools/ant/ExitException.java
deleted file mode 100644
index 414d0b3..0000000
--- a/proposal/antfarm/core/org/apache/tools/ant/ExitException.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant;
-
-/**
- *  Thrown by the AntSecurityManager whenever a task tries
- *  to call System.exit().
- *
- *  @author <a href="mailto:mpfoemme@thoughtworks.com">Matthew Foemmel</a>
- */
-public class ExitException extends RuntimeException {
-    private int status;
-
-    public ExitException(int status) {
-        this.status = status;
-    }
-
-    public int getStatus() {
-        return status;
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/core/org/apache/tools/ant/Import.java b/proposal/antfarm/core/org/apache/tools/ant/Import.java
deleted file mode 100644
index 4ea4f46..0000000
--- a/proposal/antfarm/core/org/apache/tools/ant/Import.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant;
-
-/**
- *  Represents an import statement from a project.
- *
- *  @author <a href="mailto:mpfoemme@thoughtworks.com">Matthew Foemmel</a>
- */
-public class Import {
-    private Project project;
-    private String name;
-    private String location;
-
-    public Import(Project project, String name) {
-        this.project = project;
-        this.name = name;
-        this.location = location;
-    }
-
-    public Project getProject() {
-        return project;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public String getLocation() {
-        return location;
-    }
-
-    public void setLocation(String location) {
-        this.location = location;
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/core/org/apache/tools/ant/Importer.java b/proposal/antfarm/core/org/apache/tools/ant/Importer.java
deleted file mode 100644
index b561a47..0000000
--- a/proposal/antfarm/core/org/apache/tools/ant/Importer.java
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant;
-
-import java.util.*;
-
-/**
- *  Used by a workspace to read project files.
- *
- *  @author <a href="mailto:mpfoemme@thoughtworks.com">Matthew Foemmel</a>
- */
-public interface Importer {
-    public void importProject(Project project) throws BuildException;
-}
\ No newline at end of file
diff --git a/proposal/antfarm/core/org/apache/tools/ant/Load.java b/proposal/antfarm/core/org/apache/tools/ant/Load.java
deleted file mode 100644
index 7825ddc..0000000
--- a/proposal/antfarm/core/org/apache/tools/ant/Load.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant;
-
-import java.net.*;
-
-/**
- *  The only task that gets loaded by default. It can be used
- *  to dynamically load any other required tasks.
- *
- *  @author <a href="mailto:mpfoemme@thoughtworks.com">Matthew Foemmel</a>
- */
-public class Load extends Task {
-    private String name;
-    private String classname;
-
-    public void execute() throws BuildException {
-        try {
-            getWorkspace().debug("Loading " + name);
-            ClassLoader loader = new URLClassLoader(
-                new URL[] { getProject().getBase() },
-                getWorkspace().getClass().getClassLoader());
-
-            getWorkspace().registerTask(name, loader.loadClass(classname));
-        }
-        catch(ClassNotFoundException exc) {
-            throw new BuildException("Class \"" + classname + "\" not found");
-        }
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getClassname() {
-        return classname;
-    }
-
-    public void setClassname(String classname) {
-        this.classname = classname;
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/core/org/apache/tools/ant/Project.java b/proposal/antfarm/core/org/apache/tools/ant/Project.java
deleted file mode 100644
index 622bafc..0000000
--- a/proposal/antfarm/core/org/apache/tools/ant/Project.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-/**
- *  Stores the information for a single project file. Each project
- *  has its own namespace for variable names and target names.
- *
- *  @author <a href="mailto:mpfoemme@thoughtworks.com">Matthew Foemmel</a>
- */
-public class Project {
-    private Workspace workspace;
-    private String name;
-    private URL base;
-    private String location;
-    private List imports;
-    private Map targets;
-    private Map variables;
-
-    /**
-     *  Constructs a new project. Should only be called by the Workspace class.
-     */
-    Project(Workspace workspace, String name) {
-        this.workspace = workspace;
-        this.name = name;
-        this.location = null;
-        this.imports = new ArrayList();
-        this.targets = new HashMap();
-        this.variables = new HashMap();
-    }
-
-    /**
-     *  Returns the workspace that this project belongs to.
-     */
-    public Workspace getWorkspace() {
-        return workspace;
-    }
-
-    /**
-     *  Returns the name of this project.
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     *  The directory or jar file where this project file was located.
-     */
-    public URL getBase() {
-        return base;
-    }
-
-    /**
-     *  The directory where this project file was located.
-     *
-     *  @throws AntException if this project was loaded from a jar and not a directory.
-     */
-    public File getBaseDir() {
-        if (base.getProtocol().equals("file")) {
-            return new File(base.getFile());
-        }
-        else {
-            throw new AntException(base.toString() + " is not a directory");
-        }
-    }
-
-    public void setBase(URL base) {
-        this.base = base;
-
-        if (base.getProtocol().equals("file")) {
-            variables.put("ant.base.dir", base.getFile());
-        }
-    }
-
-    public String getLocation() {
-        return location;
-    }
-
-    public void setLocation(String location) {
-        this.location = location;
-    }
-
-    /**
-     *  Creates an empty target with the specied name.
-     */
-    public Target createTarget(String name) throws BuildException {
-        Target target = new Target(this, name);
-        Target prevTarget = (Target) targets.put(name, target);
-
-        if (prevTarget != null) {
-            String msg = "Target with name \"" + name + "\" already exists";
-            if (prevTarget.getLocation() != null) {
-                msg = msg + " at " + prevTarget.getLocation();
-            }
-            throw new BuildException(msg);
-        }
-
-        return target;
-    }
-
-    /**
-     *  Returns the target with the specified name.
-     *
-     *  @throws AntException if the target doesn't exist.
-     */
-    public Target getTarget(String name) throws BuildException {
-        Target target = (Target) targets.get(name);
-        if (target == null) {
-            throw new BuildException("Target \"" + name + "\" not found");
-        }
-        return target;
-    }
-
-    public Collection getTargets() {
-        return targets.values();
-    }
-
-    /**
-     *  Indicates the this project relies on variables or targets in another project.
-     */
-    public Import createImport(String name) {
-        Import imp = new Import(this, name);
-        imports.add(imp);
-        return imp;
-    }
-
-    /**
-     *  Returns the list of projects that this project imports.
-     */
-    public List getImports() {
-        return imports;
-    }
-
-    /**
-     *  Returns the value of the variable. Variables from other
-     *  projects may be referenced by using the ':' operator.
-     */
-    public String getVariable(String name) throws BuildException {
-        int pos = name.indexOf(Workspace.SCOPE_SEPARATOR);
-        if (pos == -1) {
-            String value = (String) variables.get(name);
-            if (value == null) {
-                throw new BuildException("Variable \"" + name + "\" not defined");
-            }
-            return value;
-        }
-        else {
-            String projectName = name.substring(0, pos);
-            String variableName = name.substring(pos + 1);
-            Project project = workspace.getProject(projectName);
-            return project.getVariable(variableName);
-        }
-    }
-
-    /**
-     *  Sets the value of the variable. Variables from other
-     *  projects may be referenced by using the ':' operator.
-     */
-    public void setVariable(String name, String value) throws BuildException {
-        int pos = name.indexOf(Workspace.SCOPE_SEPARATOR);
-        if (pos == -1) {
-            variables.put(name, value);
-        }
-        else {
-            String projectName = name.substring(0, pos);
-            String variableName = name.substring(pos + 1);
-            Project project = workspace.getProject(projectName);
-            project.setVariable(variableName, value);
-        }
-    }
-
-    public char getPathSeparator() {
-        return ':';
-    }
-}
diff --git a/proposal/antfarm/core/org/apache/tools/ant/Target.java b/proposal/antfarm/core/org/apache/tools/ant/Target.java
deleted file mode 100644
index ddf4a94..0000000
--- a/proposal/antfarm/core/org/apache/tools/ant/Target.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant;
-
-import java.util.*;
-
-/**
- *  Represents a set of actions to be executed, which may or may
- *  not depend on other sets of actions.
- *
- *  @author <a href="mailto:mpfoemme@thoughtworks.com">Matthew Foemmel</a>
- */
-public class Target {
-    private Project project;
-    private String name;
-    private String location;
-    private List tasks;
-    private List depends;
-
-    /**
-     *  Called by the Project class to create new targets.
-     */
-    Target(Project project, String name) {
-        this.project = project;
-        this.name = name;
-        this.location = null;
-        this.tasks = new ArrayList();
-        this.depends = new ArrayList();
-    }
-
-    public Project getProject() {
-        return project;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public String getLocation() {
-        return location;
-    }
-
-    public void setLocation(String location) {
-        this.location = location;
-    }
-
-    public List getTasks() {
-        return tasks;
-    }
-
-    public void addDepend(String depend) {
-        // If no project was specified, use this target's project
-        if (depend.indexOf(Workspace.SCOPE_SEPARATOR) == -1) {
-            depend = getProject().getName() + Workspace.SCOPE_SEPARATOR + depend;
-        }
-        depends.add(depend);
-    }
-
-    public List getDepends() {
-        return depends;
-    }
-
-    /**
-     *  Creates a task proxy for this target. The proxy will
-     *  be converted into an actual task object at build time.
-     */
-    public TaskProxy createTaskProxy(String name) {
-        TaskProxy proxy = new TaskProxy(this, name);
-        tasks.add(proxy);
-        return proxy;
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/core/org/apache/tools/ant/Task.java b/proposal/antfarm/core/org/apache/tools/ant/Task.java
deleted file mode 100644
index cacae8b..0000000
--- a/proposal/antfarm/core/org/apache/tools/ant/Task.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant;
-
-/**
- *  Abstract superclass for all task objects. Any class that
- *  extends this class can be plugged into a workspace by using the "load"
- *  task.
- *
- *  @author <a href="mailto:mpfoemme@thoughtworks.com">Matthew Foemmel</a>
- */
-public abstract class Task {
-    private Workspace workspace;
-    private Project project;
-    private Target target;
-
-    public abstract void execute() throws BuildException;
-
-    public Workspace getWorkspace() {
-        return workspace;
-    }
-
-    void setWorkspace(Workspace workspace) {
-        this.workspace = workspace;
-    }
-
-    public Project getProject() {
-        return project;
-    }
-
-    void setProject(Project project) {
-        this.project = project;
-    }
-
-    public Target getTarget() {
-        return target;
-    }
-
-    void setTarget(Target target) {
-        this.target = target;
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/core/org/apache/tools/ant/TaskData.java b/proposal/antfarm/core/org/apache/tools/ant/TaskData.java
deleted file mode 100644
index 7d49bc4..0000000
--- a/proposal/antfarm/core/org/apache/tools/ant/TaskData.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant;
-
-import java.beans.*;
-import java.lang.reflect.*;
-import java.util.*;
-
-/**
- *  This class stores info about a bean's properties so that
- *  the actual bean can be instantiated at a later time. This data
- *  is used to store info about a task, since the actual
- *  task class might not be loaded until after parsing is completed.
- *
- *  @see TaskProxy
- *
- *  @author <a href="mailto:mpfoemme@thoughtworks.com">Matthew Foemmel</a>
- */
-public class TaskData {
-    private TaskProxy proxy;
-    private String location;
-    private String text;
-    private Map properties;
-
-    /**
-     *  Constructs a new TaskData under the specified task.
-     */
-    public TaskData(TaskProxy proxy) {
-        this.proxy = proxy;
-        this.location = null;
-        this.properties = new HashMap();
-    }
-
-    /**
-     *  Returns the task proxy that this data is associated with.
-     */
-    public TaskProxy getTaskProxy() {
-        return proxy;
-    }
-
-    /**
-     *  Returns the location in the build fiole where this data was defined.
-     */
-    public String getLocation() {
-        return location;
-    }
-
-    /**
-     *  Returns the location in the build fiole where this data was defined.
-     */
-    public void setLocation(String location) {
-        this.location = location;
-    }
-
-    /**
-     *  Sets the text for this bean data, for cases where the bean is a simple
-     *  type like String or int.
-     */
-    public void setText(String text) {
-        this.text = text;
-    }
-
-
-    /**
-     *  Sets the value of a property on the bean. Multiple properties can be
-     *  added with the same name only if the property on the bean is an array.
-     */
-    public TaskData addProperty(String name) {
-        TaskData data = new TaskData(proxy);
-        getProperties(name).add(data);
-        return data;
-    }
-
-    /**
-     *  Returns the list of property values for the specified name.
-     */
-    private List getProperties(String name) {
-        List result = (List) properties.get(name);
-        if (result == null) {
-            result = new ArrayList();
-            properties.put(name, result);
-        }
-        return result;
-    }
-
-    /**
-     *  Creates a new bean instance and initializes its properties.
-     */
-    public Object createBean(Class type) throws BuildException {
-        Object bean = null;
-
-        // See if an editor exists for this type
-        PropertyEditor editor = PropertyEditorManager.findEditor(type);
-
-        if (editor == null) {
-            // We don't know how to handle text for types without editors
-            if (text != null) {
-                throw new BuildException("Unexpected text \"" + text + "\"", location);
-            }
-
-            try {
-                bean = type.newInstance();
-            }
-            catch(InstantiationException exc) {
-                throw new AntException("Unable to instantiate " + type.getName(), exc);
-            }
-            catch(IllegalAccessException exc) {
-                throw new AntException("Unable to access constructor for " + type.getName(), exc);
-            }
-        }
-        else {
-            try {
-                // Let the editor parse the text
-                editor.setAsText(parseVariables(text));
-            }
-            catch(NumberFormatException exc) {
-                throw new BuildException("\"" + text + "\" is not a valid number", location);
-            }
-
-            bean = editor.getValue();
-        }
-
-        // Update the fields on the bean
-        updateProperties(bean);
-
-        return bean;
-    }
-
-    /**
-     *  Sets all of the property values on the bean.
-     */
-    private void updateProperties(Object bean) throws BuildException {
-
-        // Call setProperty for each property that's been defined
-        Iterator itr = properties.entrySet().iterator();
-        while (itr.hasNext()) {
-            Map.Entry entry = (Map.Entry) itr.next();
-            String name = (String) entry.getKey();
-            List values = (List) entry.getValue();
-            setProperty(bean, name, values);
-        }
-    }
-
-    /**
-     *  Finds the PropertyDescriptor for the specifed property and sets it.
-     */
-    private void setProperty(Object bean, String name, List value) throws BuildException {
-        PropertyDescriptor[] descriptors = getPropertyDescriptors(bean.getClass());
-
-        // Search for the property with the matching name
-        for (int i = 0; i < descriptors.length; i++) {
-            if (descriptors[i].getName().equals(name)) {
-                setProperty(bean, descriptors[i], value);
-                return;
-            }
-        }
-
-        throw new BuildException("Unexpected attribute \"" + name + "\"", location);
-    }
-
-    /**
-     *  Sets a single property on a bean.
-     */
-    private static void setProperty(Object obj, PropertyDescriptor descriptor, List values) throws BuildException {
-        Object value = null;
-
-        Class type = descriptor.getPropertyType();
-
-        if (type.isArray()) {
-            value = createBeans(type.getComponentType(), values);
-        }
-        else if (values.size() == 1) {
-            TaskData data = (TaskData) values.get(0);
-            value = data.createBean(type);
-
-        }
-
-        try {
-            descriptor.getWriteMethod().invoke(obj, new Object[] { value });
-        }
-        catch(IllegalAccessException exc) {
-            throw new AntException("Unable to access write method for \"" + descriptor.getName() + "\"", exc);
-        }
-        catch(InvocationTargetException exc) {
-            throw new AntException("Unable to set property \"" + descriptor.getName() + "\"", exc.getTargetException());
-        }
-    }
-
-    /**
-     *  Creates a number of beans with the same type using the list of TaskData's
-     */
-    private static Object[] createBeans(Class type, List values) throws BuildException {
-        Object[] beans = (Object[]) Array.newInstance(type, values.size());
-        int i = 0;
-        Iterator itr = values.iterator();
-        while (itr.hasNext()) {
-            TaskData data = (TaskData) itr.next();
-            beans[i++] = data.createBean(type);
-        }
-        return beans;
-    }
-
-    /**
-     *  Uses the Introspector class to lookup the property descriptors for the class.
-     */
-    private static PropertyDescriptor[] getPropertyDescriptors(Class type) {
-        try {
-            return Introspector.getBeanInfo(type, Object.class).getPropertyDescriptors();
-        }
-        catch(IntrospectionException exc) {
-            throw new AntException("Unable to get bean info for " + type.getName());
-        }
-    }
-
-    /**
-     *  Replaces any variables in the input string with their values.
-     */
-    private String parseVariables(String input) throws BuildException {
-        StringBuffer output = new StringBuffer();
-
-        int start = 0;
-        int end = 0;
-        while ((start = input.indexOf('{', end)) != -1) {
-            output.append(input.substring(end,start));
-            end = input.indexOf('}', start);
-            if (end != -1) {
-                String name = input.substring(++start, end++);
-                String value = proxy.getTarget().getProject().getVariable(name);
-                if (value == null) {
-                    throw new BuildException("The variable \"" + name + "\" has not been defined");
-                }
-                output.append(value);
-            }
-        }
-
-        output.append(input.substring(end));
-
-        return output.toString();
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/core/org/apache/tools/ant/TaskProxy.java b/proposal/antfarm/core/org/apache/tools/ant/TaskProxy.java
deleted file mode 100644
index 13e7f0e..0000000
--- a/proposal/antfarm/core/org/apache/tools/ant/TaskProxy.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant;
-
-/**
- *  This class stores the information needed to
- *  instantiate a task object. It basically consists of
- *  the task name and a TaskData object, which stores the
- *  values of the fields.
- *
- *  @author <a href="mailto:mpfoemme@thoughtworks.com">Matthew Foemmel</a>
- */
-public class TaskProxy {
-    private Target target;
-    private String name;
-    private TaskData data;
-    private String location;
-
-    public TaskProxy(Target target, String name) {
-        this.target = target;
-        this.name = name;
-        this.data = new TaskData(this);
-    }
-
-    public Target getTarget() {
-        return target;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public String getLocation() {
-        return location;
-    }
-
-    public void setLocation(String location) {
-        this.location = location;
-    }
-
-    public TaskData getData() {
-        return data;
-    }
-
-    /**
-     *  Finds the class for this task name, and creates an
-     *  instance of it using TaskData.createBean().
-     */
-    public Task createTask() throws BuildException {
-        Class type = target.getProject().getWorkspace().getTaskClass(name);
-        return (Task) data.createBean(type);
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/core/org/apache/tools/ant/Workspace.java b/proposal/antfarm/core/org/apache/tools/ant/Workspace.java
deleted file mode 100644
index 4cc99c0..0000000
--- a/proposal/antfarm/core/org/apache/tools/ant/Workspace.java
+++ /dev/null
@@ -1,449 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant;
-
-import java.util.*;
-
-/**
- *  The main class in the Ant class hierarchy. A workspace contains
- *  multiple projects, which in turn contain multiple targets, which
- *  in turn contain multiple task proxies. The workspace also handles
- *  the sorting and execution of targets during a build.
- *
- *  @author <a href="mailto:mpfoemme@thoughtworks.com">Matthew Foemmel</a>
- */
-public class Workspace {
-    public static final char SCOPE_SEPARATOR = ':';
-
-    private Importer importer;
-    private Map projects;
-    private Map tasks;
-    private List listeners;
-
-    private Task currentTask = null;
-
-    /**
-     *  Constructs new Ant workspace with no projects. The only
-     *  task that will be registered is the "load" task.
-     *
-     *  The importer is used to handle the actual reading of build files.
-     *  In theory, different importers could be used to read project info from
-     *  DOM trees, serialized objects, databases, etc.
-     */
-    public Workspace(Importer importer) {
-        this.importer = importer;
-        this.projects = new HashMap();
-        this.tasks = new HashMap();
-        this.listeners = new ArrayList();
-
-        registerTask("load", Load.class);
-    }
-
-    /**
-     *  Assigns a task class to a name.
-     */
-    public void registerTask(String name, Class type) {
-        tasks.put(name, type);
-    }
-
-    /**
-     *  Returns the class for a task with the specified name.
-     */
-    public Class getTaskClass(String name) throws BuildException {
-        Class type = (Class) tasks.get(name);
-        if (type == null) {
-            throw new BuildException("No task named \"" + name + "\" has been loaded");
-        }
-        return type;
-    }
-
-    /**
-     *  Creates a project with the specified name. The project initially
-     *  contains no targets.
-     */
-    public Project createProject(String name) {
-        Project project = new Project(this, name);
-        projects.put(name, project);
-        return project;
-    }
-
-    /**
-     *  Returns the project with the specified name, or throws
-     *  an exception if no project exists with that name.
-     */
-    public Project getProject(String name) throws BuildException {
-        Project project = (Project) projects.get(name);
-        if (project == null) {
-            throw new BuildException("Project \"" + name + "\" not found");
-        }
-        return project;
-    }
-
-    /**
-     *  Builds all of the targets in the list. Target names must
-     *  be of the form projectname:targetname.
-     */
-    public boolean build(List fullNames) throws BuildException {
-
-        // This lets the tasks intercept System.exit() calls
-        SecurityManager sm = System.getSecurityManager();
-        System.setSecurityManager(new AntSecurityManager());
-
-        fireBuildStarted();
-
-        try {
-            // Parse the project files...
-            importTargets(fullNames);
-
-            // ...figure out the build order...
-            List toDoList = sortTargets(fullNames);
-
-            // ...and build the targets
-            Iterator itr = toDoList.iterator();
-            while (itr.hasNext()) {
-                Target target = (Target) itr.next();
-                buildTarget(target);
-            }
-            fireBuildFinished(null);
-            return true;
-        }
-        catch(BuildException exc) {
-            fireBuildFinished(exc);
-            return false;
-        }
-        finally {
-            System.setSecurityManager(sm);
-        }
-    }
-
-    /**
-     *  Adds a listener to the workspace.
-     */
-    public void addBuildListener(BuildListener listener) {
-        listeners.add(listener);
-    }
-
-    /**
-     *  Removes a listener to the workspace.
-     */
-    public void removeBuildListener(BuildListener listener) {
-        listeners.remove(listener);
-    }
-
-    /**
-     *  Fires a messageLogged event with DEBUG priority
-     */
-    public void debug(String message) {
-        fireMessageLogged(message, BuildEvent.DEBUG);
-    }
-
-    /**
-     *  Fires a messageLogged event with INFO priority
-     */
-    public void info(String message) {
-        fireMessageLogged(message, BuildEvent.INFO);
-    }
-
-    /**
-     *  Fires a messageLogged event with WARN priority
-     */
-    public void warn(String message) {
-        fireMessageLogged(message, BuildEvent.WARN);
-    }
-
-    /**
-     *  Fires a messageLogged event with ERROR priority
-     */
-    public void error(String message) {
-        fireMessageLogged(message, BuildEvent.ERROR);
-    }
-
-    /**
-     *  Imports into the workspace all of the projects required to
-     *  build a set of targets.
-     */
-    private void importTargets(List fullNames) throws BuildException {
-        Iterator itr = fullNames.iterator();
-        while (itr.hasNext()) {
-            String fullName = (String) itr.next();
-            String projectName = getProjectName(fullName);
-            importProject(projectName);
-        }
-    }
-
-    /**
-     *  Imports the project into the workspace, as well as any others
-     *  that the project depends on.
-     */
-    public Project importProject(String projectName) throws BuildException {
-        Project project = (Project) projects.get(projectName);
-
-        // Don't parse a project file more than once
-        if (project == null) {
-
-            // Parse the project file
-            project = createProject(projectName);
-
-            fireImportStarted(project);
-            try {
-                importer.importProject(project);
-                fireImportFinished(project, null);
-            }
-            catch(BuildException exc) {
-                fireImportFinished(project, exc);
-                throw exc;
-            }
-
-            // Parse any imported projects as well
-            Iterator itr = project.getImports().iterator();
-            while (itr.hasNext()) {
-                Import imp = (Import) itr.next();
-                importProject(imp.getName());
-            }
-        }
-
-        return project;
-    }
-
-
-
-    /**
-     *  Builds a specific target. This assumes that the targets it depends
-     *  on have already been built.
-     */
-    private void buildTarget(Target target) throws BuildException {
-        fireTargetStarted(target);
-
-        try {
-            List tasks = target.getTasks();
-            Iterator itr = tasks.iterator();
-            while (itr.hasNext()) {
-                TaskProxy proxy = (TaskProxy) itr.next();
-                executeTask(target, proxy);
-            }
-
-            fireTargetFinished(target, null);
-        }
-        catch(BuildException exc) {
-            fireTargetFinished(target, null);
-            throw exc;
-        }
-    }
-
-    /**
-     *  Instantiates the task from the proxy and executes.
-     */
-    private void executeTask(Target target, TaskProxy proxy) throws BuildException {
-        Task task = proxy.createTask();
-        task.setWorkspace(this);
-        task.setProject(target.getProject());
-        task.setTarget(target);
-
-        fireTaskStarted(task);
-        currentTask = task;
-        try {
-            task.execute();
-
-            fireTaskFinished(task, null);
-        }
-        catch(BuildException exc) {
-            exc.setLocation(proxy.getLocation());
-            fireTaskFinished(task, exc);
-            throw exc;
-        }
-        finally {
-            currentTask = null;
-        }
-    }
-
-    /**
-     *  Does a topological sort on a list of target names. Returns
-     *  a list of Target objects in the order to be executed.
-     */
-    private List sortTargets(List fullNames) throws BuildException {
-        List results = new ArrayList();
-        sortTargets(results, new Stack(), fullNames);
-        return results;
-    }
-
-    private void sortTargets(List results, Stack visited, List fullNames) throws BuildException {
-        Iterator itr = fullNames.iterator();
-        while (itr.hasNext()) {
-            String fullName = (String) itr.next();
-
-            // Check for cycles
-            if (visited.contains(fullName)) {
-                throwCyclicDependency(visited, fullName);
-            }
-
-            // Check if we're already added this target to the list
-            Target target = getTarget(fullName);
-            if (results.contains(target)) {
-                continue;
-            }
-
-            visited.push(fullName);
-            sortTargets(results, visited, target.getDepends());
-            results.add(target);
-            visited.pop();
-        }
-    }
-
-    /**
-     *  Creates and throws an exception indicating a cyclic dependency.
-     */
-    private void throwCyclicDependency(Stack visited, String fullName) throws BuildException {
-        StringBuffer msg = new StringBuffer("Cyclic dependency: ");
-        for (int i = 0; i < visited.size(); i++) {
-            msg.append((String)visited.get(i));
-            msg.append(" -> ");
-        }
-        msg.append(fullName);
-        throw new BuildException(msg.toString());
-    }
-
-    /**
-     *  Parses the full target name into is project and target components,
-     *  then locates the Target object.
-     */
-    private Target getTarget(String fullName) throws BuildException {
-        String projectName = getProjectName(fullName);
-        String targetName = getTargetName(fullName);
-
-        Project project = (Project) projects.get(projectName);
-        if (project == null) {
-            throw new BuildException("Project \"" + projectName + "\" not found");
-        }
-
-        Target target = project.getTarget(targetName);
-        if (target == null) {
-            throw new BuildException("Target \"" + fullName + "\" not found");
-        }
-
-        return target;
-    }
-
-    /**
-     *  Returns the project portion of a full target name.
-     */
-    public static String getProjectName(String fullName) throws BuildException {
-        int pos = fullName.indexOf(SCOPE_SEPARATOR);
-        if (pos == -1 || pos == 0) {
-            throw new BuildException("\"" + fullName + "\" is not a valid target name");
-        }
-
-        return fullName.substring(0, pos);
-    }
-
-    /**
-     *  Returns the target portion of a full target name.
-     */
-    public static String getTargetName(String fullName) throws BuildException {
-        int pos = fullName.indexOf(SCOPE_SEPARATOR);
-        if (pos == -1 || pos == 0) {
-            throw new BuildException("\"" + fullName + "\" is not a valid target name");
-        }
-
-        return fullName.substring(pos + 1);
-    }
-
-    private void fireMessageLogged(String message, int priority) {
-        BuildEvent event;
-        if (currentTask == null) {
-            event = new BuildEvent(this);
-        }
-        else {
-            event = new BuildEvent(currentTask);
-        }
-        event.setMessage(message, priority);
-
-        Iterator itr = listeners.iterator();
-        while (itr.hasNext()) {
-            BuildListener listener = (BuildListener) itr.next();
-            listener.messageLogged(event);
-        }
-    }
-
-    private void fireBuildStarted() {
-        Iterator itr = listeners.iterator();
-        while (itr.hasNext()) {
-            BuildListener listener = (BuildListener) itr.next();
-            BuildEvent event = new BuildEvent(this);
-            listener.buildStarted(event);
-        }
-    }
-
-    private void fireBuildFinished(BuildException exc) {
-        BuildEvent event = new BuildEvent(this);
-        event.setException(exc);
-
-        Iterator itr = listeners.iterator();
-        while (itr.hasNext()) {
-            BuildListener listener = (BuildListener) itr.next();
-            listener.buildFinished(event);
-        }
-    }
-
-    private void fireImportStarted(Project project) {
-        BuildEvent event = new BuildEvent(project);
-
-        Iterator itr = listeners.iterator();
-        while (itr.hasNext()) {
-            BuildListener listener = (BuildListener) itr.next();
-            listener.importStarted(event);
-        }
-    }
-
-    private void fireImportFinished(Project project, BuildException exc) {
-        BuildEvent event = new BuildEvent(project);
-        event.setException(exc);
-
-        Iterator itr = listeners.iterator();
-        while (itr.hasNext()) {
-            BuildListener listener = (BuildListener) itr.next();
-            listener.importFinished(event);
-        }
-    }
-
-    private void fireTargetStarted(Target target) {
-        BuildEvent event = new BuildEvent(target);
-
-        Iterator itr = listeners.iterator();
-        while (itr.hasNext()) {
-            BuildListener listener = (BuildListener) itr.next();
-            listener.targetStarted(event);
-        }
-    }
-
-    private void fireTargetFinished(Target target, BuildException exc) {
-        BuildEvent event = new BuildEvent(target);
-        event.setException(exc);
-
-        Iterator itr = listeners.iterator();
-        while (itr.hasNext()) {
-            BuildListener listener = (BuildListener) itr.next();
-            listener.targetFinished(event);
-        }
-    }
-
-    private void fireTaskStarted(Task task) {
-        BuildEvent event = new BuildEvent(task);
-
-        Iterator itr = listeners.iterator();
-        while (itr.hasNext()) {
-            BuildListener listener = (BuildListener) itr.next();
-            listener.taskStarted(event);
-        }
-    }
-
-    private void fireTaskFinished(Task task, BuildException exc) {
-        BuildEvent event = new BuildEvent(task);
-        event.setException(exc);
-
-        Iterator itr = listeners.iterator();
-        while (itr.hasNext()) {
-            BuildListener listener = (BuildListener) itr.next();
-            listener.taskFinished(event);
-        }
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/core/org/apache/tools/ant/cmdline/DefaultLogger.java b/proposal/antfarm/core/org/apache/tools/ant/cmdline/DefaultLogger.java
deleted file mode 100644
index 893351f..0000000
--- a/proposal/antfarm/core/org/apache/tools/ant/cmdline/DefaultLogger.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant.cmdline;
-
-import java.io.*;
-import org.apache.tools.ant.*;
-
-/**
- *  @author <a href="mailto:mpfoemme@thoughtworks.com">Matthew Foemmel</a>
- */
-public class DefaultLogger implements BuildListener {
-    private PrintStream out;
-
-    public DefaultLogger(PrintStream out) {
-        this.out = out;
-    }
-
-    public void buildStarted(BuildEvent event) {
-    }
-
-    public void buildFinished(BuildEvent event) {
-        BuildException exc = event.getException();
-        out.println();
-        if (exc == null) {
-            out.println("BUILD SUCCESSFUL");
-        }
-        else {
-            out.println("BUILD FAILED");
-            out.println();
-            out.println(exc);
-        }
-    }
-
-    public void importStarted(BuildEvent event) {
-        out.println("Importing: " + event.getProject().getName());
-    }
-
-    public void importFinished(BuildEvent event) {
-    }
-
-    public void targetStarted(BuildEvent event) {
-        out.println("\n[" + event.getProject().getName() + ":" + event.getTarget().getName() + "]");
-    }
-
-    public void targetFinished(BuildEvent event) {
-    }
-
-    public void taskStarted(BuildEvent event) {
-    }
-
-    public void taskFinished(BuildEvent event) {
-    }
-
-    public void messageLogged(BuildEvent event) {
-        out.println("    " + event.getMessage());
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/core/org/apache/tools/ant/cmdline/Main.java b/proposal/antfarm/core/org/apache/tools/ant/cmdline/Main.java
deleted file mode 100644
index 5f26e6b..0000000
--- a/proposal/antfarm/core/org/apache/tools/ant/cmdline/Main.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant.cmdline;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import org.apache.tools.ant.*;
-
-/**
- *  Runs the command line version of ant. Takes a list of
- *  fully qualified targets and builds them.
- *  Any jars in the "tasks" directory will be automatically added
- *  to the project path.
- *
- *  @author <a href="mailto:mpfoemme@thoughtworks.com">Matthew Foemmel</a>
- */
-public class Main {
-
-    /**
-     *  Builds the specified targets.
-     */
-    public static void main(String[] args) {
-        File installDir = findInstallDir();
-        setupProjectPath(installDir);
-        Importer importer = loadImporter(installDir);
-
-        Workspace workspace = new Workspace(importer);
-        workspace.addBuildListener(new DefaultLogger(System.out));
-
-        List targets = Arrays.asList(args);
-
-        try {
-            if (workspace.build(targets)) {
-                System.exit(0);
-            }
-            else {
-                System.exit(1);
-            }
-        }
-        catch(Exception exc) {
-            exc.printStackTrace();
-            System.exit(2);
-        }
-    }
-
-    /**
-     *  Finds the ant.jar file in the classpath.
-     */
-    private static File findInstallDir() {
-        StringTokenizer itr = new StringTokenizer(
-            System.getProperty("java.class.path"),
-            System.getProperty("path.separator"));
-
-        while (itr.hasMoreTokens()) {
-            File file = new File(itr.nextToken());
-            if (file.getName().equals("ant.jar")) {
-                // Found it
-                File dir = file.getParentFile();
-                if (dir == null) {
-                    dir = new File(".");
-                }
-                return dir;
-            }
-        }
-
-        System.err.println("Unable to locate ant.jar");
-        System.exit(1);
-        return null;
-    }
-
-    /**
-     *  Locates the "tasks" directory relative to the ant.jar file.
-     */
-    private static void setupProjectPath(File installDir) {
-        StringBuffer path = new StringBuffer(System.getProperty("ant.project.path", "."));
-
-        File taskDir = new File(installDir, "tasks");
-        if (taskDir.exists()) {
-            File[] taskjars = taskDir.listFiles();
-            for (int i = 0; i < taskjars.length; i++) {
-                path.append(System.getProperty("path.separator"));
-                path.append(taskjars[i].getPath());
-            }
-        }
-
-        System.setProperty("ant.project.path", path.toString());
-        System.out.println(path.toString());
-    }
-
-    /**
-     *  Creates a class loader using the jars from the "xml" directory, and
-     *  loads the XmlImporter class.
-     */
-    private static Importer loadImporter(File installDir) {
-        File xmlDir = new File(installDir, "xml");
-        if (xmlDir.exists()) {
-            File[] xmlJars = xmlDir.listFiles();
-            URL[] urls = new URL[xmlJars.length];
-            for (int i = 0; i < xmlJars.length; i++) {
-                try {
-                    urls[i] = xmlJars[i].toURL();
-                }
-                catch(MalformedURLException exc) {
-                    exc.printStackTrace();
-                }
-            }
-
-            try {
-                URLClassLoader loader = new URLClassLoader(urls);
-                return (Importer) loader.loadClass("org.apache.tools.ant.xml.XmlImporter").newInstance();
-            }
-            catch(Exception exc) {
-                exc.printStackTrace();
-                System.exit(1);
-            }
-        }
-        else {
-            System.err.println("Unable to find xml directory");
-            System.exit(1);
-        }
-
-        return null;
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/readme.txt b/proposal/antfarm/readme.txt
deleted file mode 100644
index 36789bb..0000000
--- a/proposal/antfarm/readme.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-*** Installing ***
-
-To get things started you'll need to run the bootstrap.bat file, which will manually compile a version of ant into the "boot" directory. From then on you can use Ant to build Ant by running the build.bat file. (There aren't any unix scripts yet, unfortunately. Any help here would be appreciated!)
-
-To "install" ant, you just need to have the ant.jar file in your classpath. Ant will figure out the rest. To run it, type:
-
-java ant project:target
-
-When ant is run, the Main class scans the classpath to find the ant.jar file, and can figure out from there where the rest of the files are. In particular, the jars in the "tasks" directory get added to the project path automatically. And the jars in the "xml" directory get loaded using a separate class loader, so that they don't conflict with the xml parsers that various tasks might be using.
-
-
-*** Running ***
-
-For now, the targets specified con the command line must be in the form project:target. For example, if you want to build target "all" in file "foo.ant", the target name would be "foo:all". In the future there will be a way to specify the default project, so that only the target name would need to be specified. 
-
-Ant searches along the "project path" to find projects specified on the command line or in "import" statements. The project path defaults to ".", ie the current directory, but can be overridden by setting the "ant.project.path" system property. Variables and targets from other projects can be accessed by prefixing them with the project name and a colon.
-
-
-*** Concepts ***
-
-The main thing I'd like people to check out is the whole workspace concept, ie the ability to pull multiple ant files into a single build. I personally think this will make it easier to reuse ant files from other projects, and avoid recursive make syndrome at the same time. Plus, I think this model lends itself to CJAN implementation quite nicely.
-
-I've also tried to make the tasks more compliant with the javabean spec. As a result of this, the word "property" became so overloaded that I decided to use the term "variable" for values defined in ant projects. If anyone feels strongly about it I'll change it back.
-
-The depends attribute on targets uses a whitespace delimited list of target names, instead of comma separated. This is more consistent with the "list" datatype in the xml schema spec.
-
-The parser is namespace aware, and attributes for any namespace other than the default namespace are ignored.
-
-The code relies heavily on JDK 1.2 features. Making it JDK 1.1 compatible would be a lot of work, but is definitely doable.
-
-There's obviously a lot of stuff missing from this prototype, such as datatypes, real tasks, a way to access system properties, default targets, etc. If enough people like the basic design I'll start tackling those next...
-
diff --git a/proposal/antfarm/tasks/java2sdk.ant b/proposal/antfarm/tasks/java2sdk.ant
deleted file mode 100644
index fa6b451..0000000
--- a/proposal/antfarm/tasks/java2sdk.ant
+++ /dev/null
@@ -1,10 +0,0 @@
-<project name="java2sdk">
-	<target name="init">
-		<load name="echo" classname="org.apache.tools.ant.tasks.Echo"/>
-		<load name="javacloader" classname="org.apache.tools.ant.tasks.JavacLoader"/>
-		<javacloader/>
-		<load name="jar" classname="org.apache.tools.ant.tasks.Jar"/>
-		<load name="set" classname="org.apache.tools.ant.tasks.SetVariable"/>
-		<load name="copy" classname="org.apache.tools.ant.tasks.Copy"/>
-	</target>
-</project>
\ No newline at end of file
diff --git a/proposal/antfarm/tasks/org/apache/tools/ant/tasks/Copy.java b/proposal/antfarm/tasks/org/apache/tools/ant/tasks/Copy.java
deleted file mode 100644
index 2e89172..0000000
--- a/proposal/antfarm/tasks/org/apache/tools/ant/tasks/Copy.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant.tasks;
-
-import java.io.*;
-import org.apache.tools.ant.*;
-
-public class Copy extends Task {
-    private String src;
-    private String dest;
-
-    public void execute() throws BuildException {
-        try {
-            FileInputStream in = new FileInputStream(src);
-            FileOutputStream out = new FileOutputStream(dest);
-
-            byte[] buf = new byte[4096];
-            int len = 0;
-            while ((len = in.read(buf)) != -1) {
-                out.write(buf, 0, len);
-            }
-        }
-        catch(FileNotFoundException exc) {
-            throw new BuildException("File not found");
-        }
-        catch(IOException exc) {
-            throw new AntException("Error copying files", exc);
-        }
-    }
-
-    public String getSrc() {
-        return src;
-    }
-
-    public void setSrc(String src) {
-        this.src = src;
-    }
-
-    public String getDest() {
-        return dest;
-    }
-
-    public void setDest(String dest) {
-        this.dest = dest;
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/tasks/org/apache/tools/ant/tasks/Echo.java b/proposal/antfarm/tasks/org/apache/tools/ant/tasks/Echo.java
deleted file mode 100644
index 06cebfc..0000000
--- a/proposal/antfarm/tasks/org/apache/tools/ant/tasks/Echo.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant.tasks;
-
-import org.apache.tools.ant.*;
-
-public class Echo extends Task {
-    private String message;
-
-    public void execute() throws BuildException {
-        System.out.println(message);
-    }
-
-    public String getMessage() {
-        return message;
-    }
-
-    public void setMessage(String message) {
-        this.message = message;
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/tasks/org/apache/tools/ant/tasks/Fileset.java b/proposal/antfarm/tasks/org/apache/tools/ant/tasks/Fileset.java
deleted file mode 100644
index d6da3b2..0000000
--- a/proposal/antfarm/tasks/org/apache/tools/ant/tasks/Fileset.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant.tasks;
-
-import java.io.*;
-import java.util.*;
-import org.apache.tools.ant.*;
-
-public class Fileset {
-    private String src;
-
-    public String getSrc() {
-        return src;
-    }
-
-    public void setSrc(String src) {
-        this.src = src;
-    }
-
-    public void getFiles(List results) throws BuildException {
-        if (src == null) {
-            throw new BuildException("Missing property \"src\"", null); //LOCATION
-        }
-
-        File dir = new File(src);
-        if (!dir.exists()) {
-            throw new BuildException(src + " does not exist", null); // LOCATION!!!
-        }
-        getFiles(dir, results);
-    }
-
-    private void getFiles(File file, List results) {
-        if (file.isDirectory()) {
-            File[] files = file.listFiles();
-            for (int i = 0; i < files.length; i++) {
-                getFiles(files[i], results);
-            }
-        }
-        else if (file.getPath().endsWith(".java")) {
-            results.add(file.getPath());
-        }
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/tasks/org/apache/tools/ant/tasks/Jar.java b/proposal/antfarm/tasks/org/apache/tools/ant/tasks/Jar.java
deleted file mode 100644
index 315e91c..0000000
--- a/proposal/antfarm/tasks/org/apache/tools/ant/tasks/Jar.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant.tasks;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.*;
-import org.apache.tools.ant.*;
-
-public class Jar extends Task {
-    private String jarfile;
-    private String basedir;
-    private String manifest;
-
-    public String getJarfile() {
-        return jarfile;
-    }
-
-    public void setJarfile(String jarfile) {
-        this.jarfile = jarfile;
-    }
-
-    public String getBasedir() {
-        return basedir;
-    }
-
-    public void setBasedir(String basedir) {
-        this.basedir = basedir;
-    }
-
-    public String getManifest() {
-        return manifest;
-    }
-
-    public void setManifest(String manifest) {
-        this.manifest = manifest;
-    }
-
-    public void execute() throws BuildException {
-        File dir = new File(jarfile).getParentFile();
-        if (dir != null) {
-            dir.mkdirs();
-        }
-        List argList = new ArrayList();
-        if (manifest == null) {
-            argList.add("-cf");
-        }
-        else {
-            argList.add("-cmf");
-            argList.add(manifest);
-        }
-        argList.add(jarfile);
-        argList.add("-C");
-        argList.add(basedir);
-        argList.add(".");
-
-        String[] args = (String[]) argList.toArray(new String[argList.size()]);
-
-        try {
-            Class type = getClass().getClassLoader().loadClass("sun.tools.jar.Main");
-            Method method = type.getMethod("main", new Class[] { args.getClass() });
-
-            getWorkspace().info("Running jar...");
-
-            method.invoke(null, new Object[] { args });
-        }
-        catch(InvocationTargetException exc) {
-            Throwable cause = exc.getTargetException();
-            if (cause instanceof ExitException) {
-                if (((ExitException)cause).getStatus() != 0) {
-                    throw new BuildException("Build failed");
-                }
-            }
-            else {
-                throw new AntException("Error running jar", exc);
-            }
-        }
-        catch(ClassNotFoundException exc) {
-            throw new AntException("Jar class not found. Makes sure tools.jar is in your classpath");
-        }
-        catch(Exception exc) {
-            throw new AntException("Error running jar", exc);
-        }
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/tasks/org/apache/tools/ant/tasks/Javac.java b/proposal/antfarm/tasks/org/apache/tools/ant/tasks/Javac.java
deleted file mode 100644
index eaed496..0000000
--- a/proposal/antfarm/tasks/org/apache/tools/ant/tasks/Javac.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant.tasks;
-
-import java.lang.reflect.*;
-import java.io.*;
-import java.util.*;
-import org.apache.tools.ant.*;
-
-public class Javac extends Task {
-    private Fileset[] fileset;
-    private String dest;
-    private String classpath;
-    private String compilerclass = null;
-
-    public void execute() throws BuildException {
-        if (compilerclass == null) {
-            compilerclass = "com.sun.tools.javac.Main";
-        }
-
-        List argList = new ArrayList();
-        argList.add("-d");
-        argList.add(dest);
-
-        if (classpath != null) {
-            argList.add("-classpath");
-
-            // Replace the project's path separator with the system's path separator
-            argList.add(classpath.replace(getProject().getPathSeparator(), File.pathSeparatorChar));
-        }
-
-        for (int i = 0; i < fileset.length; i++) {
-            fileset[i].getFiles(argList);
-        }
-
-        String[] args = (String[]) argList.toArray(new String[argList.size()]);
-
-        try {
-            new File(dest).mkdirs();
-
-            Class type = getClass().getClassLoader().loadClass(compilerclass);
-            Method method = type.getMethod("main", new Class[] { args.getClass() });
-
-            getWorkspace().info("Running javac...");
-
-            method.invoke(null, new Object[] { args });
-        }
-        catch(InvocationTargetException exc) {
-            Throwable cause = exc.getTargetException();
-            if (cause instanceof ExitException) {
-                if (((ExitException)cause).getStatus() != 0) {
-                    throw new BuildException("Compile failed");
-                }
-            }
-            else {
-                throw new AntException("Error running compiler", exc);
-            }
-        }
-        catch(ClassNotFoundException exc) {
-            throw new BuildException("Compiler class not found. Makes sure tools.jar is in your classpath");
-        }
-        catch(IllegalAccessException exc) {
-            throw new AntException("Unable to access compiler class", exc);
-        }
-        catch(NoSuchMethodException exc) {
-            throw new AntException("Unable to find main method on compiler class", exc);
-        }
-    }
-
-    public String getDest() {
-        return dest;
-    }
-
-    public void setDest(String dest) {
-        this.dest = dest;
-    }
-
-    public String getClasspath() {
-        return classpath;
-    }
-
-    public void setClasspath(String classpath) {
-        this.classpath = classpath;
-    }
-
-    public Fileset[] getFileset() {
-        return fileset;
-    }
-
-    public void setFileset(Fileset[] fileset) {
-        this.fileset = fileset;
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/tasks/org/apache/tools/ant/tasks/JavacLoader.java b/proposal/antfarm/tasks/org/apache/tools/ant/tasks/JavacLoader.java
deleted file mode 100644
index 7c7d0fc..0000000
--- a/proposal/antfarm/tasks/org/apache/tools/ant/tasks/JavacLoader.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant.tasks;
-
-import java.io.*;
-import java.net.*;
-import org.apache.tools.ant.*;
-
-public class JavacLoader extends Task {
-    public void execute() throws BuildException {
-        try {
-            URL toolsJar = findToolsJar();
-            ClassLoader loader = new URLClassLoader(
-                new URL[] { getProject().getBase(), toolsJar },
-                getWorkspace().getClass().getClassLoader());
-
-            getWorkspace().registerTask("javac", loader.loadClass("org.apache.tools.ant.tasks.Javac"));
-        }
-        catch(MalformedURLException exc) {
-            throw new AntException("Bad URL", exc);
-        }
-        catch(ClassNotFoundException exc) {
-            throw new BuildException("Class not found");
-        }
-    }
-
-    private URL findToolsJar() throws MalformedURLException {
-        // I assume this won't work everywhere...
-        return new File(new File(System.getProperty("java.home")), "../lib/tools.jar").toURL();
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/tasks/org/apache/tools/ant/tasks/SetVariable.java b/proposal/antfarm/tasks/org/apache/tools/ant/tasks/SetVariable.java
deleted file mode 100644
index e1f6a8f..0000000
--- a/proposal/antfarm/tasks/org/apache/tools/ant/tasks/SetVariable.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant.tasks;
-
-import org.apache.tools.ant.*;
-
-public class SetVariable extends Task {
-    private String name;
-    private String value;
-
-    public void execute() throws BuildException {
-        getProject().setVariable(name, value);
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setValue(String value) {
-        this.value = value;
-    }
-
-    public String getValue() {
-        return value;
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/xml/org/apache/tools/ant/xml/ProjectHandler.java b/proposal/antfarm/xml/org/apache/tools/ant/xml/ProjectHandler.java
deleted file mode 100644
index ef561d7..0000000
--- a/proposal/antfarm/xml/org/apache/tools/ant/xml/ProjectHandler.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant.xml;
-
-import java.io.*;
-import java.util.*;
-import javax.xml.parsers.*;
-import org.apache.tools.ant.*;
-import org.xml.sax.*;
-import org.xml.sax.ext.*;
-import org.xml.sax.helpers.*;
-
-/**
- *  This class populates a Project object via SAX events.
- */
-public class ProjectHandler extends DefaultHandler /* implements LexicalHandler */ {
-    private Workspace workspace;
-    private Project project;
-    private Locator locator;
-
-    /**
-     *  The top of this stack represents the "current" event handler.
-     */
-    private Stack handlers;
-
-    /**
-     * Constructs a SAX handler for the specified project.
-     */
-    public ProjectHandler(Project project) {
-        this.project = project;
-        this.workspace = project.getWorkspace();
-        this.handlers = new Stack();
-        this.handlers.push(new RootHandler());
-    }
-
-    public Project getProject() {
-        return project;
-    }
-
-    public void setDocumentLocator(Locator locator) {
-        this.locator = locator;
-    }
-
-    protected String getLocation() {
-        return locator.getPublicId() + ":" + locator.getLineNumber();
-    }
-
-    public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {
-        // Delegate to the current handler
-        ((ContentHandler)handlers.peek()).startElement(namespaceURI, localName, qName, atts);
-    }
-
-    public void endElement(String namespaceURI, String localName, String qName) throws SAXException {
-        // Delegate to the current handler
-        ((ContentHandler)handlers.peek()).endElement(namespaceURI, localName, qName);
-    }
-
-    public void characters(char[] ch, int start, int length) {
-        //XXX need to implement text content
-    }
-
-    public void processingInstruction(String target, String data) {
-        System.out.println("@" + target + "@" + data + "@");
-    }
-
-    /*
-    public void comment(char[] ch, int start, int length) {)
-    public void endCDATA() {}
-    public void endDTD() {}
-    public void endEntity(java.lang.String name) {}
-    public void startCDATA() {}
-    public void startDTD(String name, String publicId, String systemId) {}
-    public void startEntity(java.lang.String name)  {}
-    */
-
-    /**
-     * This class handles any top level SAX events.
-     */
-    private class RootHandler extends DefaultHandler {
-        public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {
-            if (isAntNamespace(namespaceURI) && localName.equals("project")) {
-                handlers.push(new ProjectElemHandler(qName, atts));
-            }
-            else {
-                throw new SAXParseException("Unexpected element \"" + qName + "\"", locator);
-            }
-        }
-
-        public void endElement(String namespaceURI, String localName, String qName) throws SAXException {
-            handlers.pop();
-        }
-    }
-
-    /**
-     *  This class handles events that occur with a "project" element.
-     */
-    private class ProjectElemHandler extends DefaultHandler {
-        public ProjectElemHandler(String qName, Attributes atts) throws SAXException {
-            String projectName = null;
-
-            for (int i = 0; i < atts.getLength(); i++) {
-                if (!isAntNamespace(atts.getURI(i))) {
-                    continue;
-                }
-
-                String name = atts.getQName(i);
-                String value = atts.getValue(i);
-                if (name.equals("name")) {
-                    projectName = value;
-                }
-                else {
-                    throw new SAXParseException("Unexpected attribute \"" + name + "\"", locator);
-                }
-            }
-
-            if (projectName == null) {
-                throw new SAXParseException("Missing attribute \"name\"", locator);
-            }
-
-            if (!projectName.equals(project.getName())) {
-                throw new SAXParseException("A project named \"" + projectName + "\" must be located in a file called \"" + projectName + ".ant\"", locator);
-            }
-        }
-
-        public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {
-            if (isAntNamespace(namespaceURI) && localName.equals("target")) {
-                handlers.push(new TargetElemHandler(project, qName, atts));
-            }
-            else if (isAntNamespace(namespaceURI) && localName.equals("import")) {
-                handlers.push(new ImportElemHandler(project, qName, atts));
-            }
-            else {
-                throw new SAXParseException("Unexpected element \"" + qName + "\"", locator);
-            }
-        }
-
-        public void endElement(String namespaceURI, String localName, String qName) throws SAXException {
-            handlers.pop();
-        }
-    }
-
-    /**
-     *  This class handles events that occur with a "target" element.
-     */
-    private class TargetElemHandler extends DefaultHandler {
-        private Target target;
-
-        public TargetElemHandler(Project project, String qName, Attributes atts) throws SAXException {
-            String targetName = null;
-            String dependencies = "";
-
-            for (int i = 0; i < atts.getLength(); i++) {
-                if (!isAntNamespace(atts.getURI(i))) {
-                    continue;
-                }
-
-                String name = atts.getQName(i);
-                String value = atts.getValue(i);
-                if (name.equals("name")) {
-                    targetName = value;
-                }
-                else if (name.equals("depends")) {
-                    dependencies = value;
-                }
-                else {
-                    throw new SAXParseException("Unexpected attribute \"" + name + "\"", locator);
-                }
-            }
-
-            if (targetName == null) {
-                throw new SAXParseException("Missing attribute \"name\"", locator);
-            }
-
-            try {
-                target = project.createTarget(targetName);
-                target.setLocation(getLocation());
-                parseDepends(dependencies);
-            }
-            catch(BuildException exc) {
-                throw new SAXException(exc);
-            }
-        }
-
-        /**
-         *  Parses the list of space-separated project names.
-         */
-        private void parseDepends(String depends) {
-            StringTokenizer tokenizer = new StringTokenizer(depends);
-            while (tokenizer.hasMoreTokens()) {
-                String targetName = tokenizer.nextToken();
-                target.addDepend(targetName);
-            }
-        }
-
-        public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {
-            if (!isAntNamespace(namespaceURI)) {
-                throw new SAXParseException("Unexpected attribute \"" + qName + "\"", locator);
-            }
-
-            TaskProxy proxy = target.createTaskProxy(qName);
-            proxy.setLocation(getLocation());
-            handlers.push(new TaskElemHandler(proxy.getData(), qName, atts));
-        }
-
-        public void endElement(String namespaceURI, String localName, String qName) throws SAXException {
-            handlers.pop();
-        }
-    }
-
-    /**
-     *  This class handles events that occur with a "import" element.
-     */
-    private class ImportElemHandler extends DefaultHandler {
-        public ImportElemHandler(Project project, String qName, Attributes atts) throws SAXException {
-            String importName = null;
-
-            for (int i = 0; i < atts.getLength(); i++) {
-                if (!isAntNamespace(atts.getURI(i))) {
-                    continue;
-                }
-
-                String name = atts.getQName(i);
-                String value = atts.getValue(i);
-                if (name.equals("name")) {
-                    importName = value;
-                }
-                else {
-                    throw new SAXParseException("Unexpected attribute \"" + name + "\"", locator);
-                }
-            }
-
-            if (importName == null) {
-                throw new SAXParseException("Missing attribute \"name\"",  locator);
-            }
-
-            Import imp = project.createImport(importName);
-            imp.setLocation(getLocation());
-        }
-
-        public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {
-            throw new SAXParseException("Unexpected element \"" + qName + "\"", locator);
-        }
-
-        public void endElement(String namespaceURI, String localName, String qName) throws SAXException {
-            handlers.pop();
-        }
-    }
-
-    /**
-     *  This class handles events that occur with a task element.
-     */
-    private class TaskElemHandler extends DefaultHandler {
-        private TaskData data;
-
-        public TaskElemHandler(TaskData data, String qName, Attributes atts) throws SAXException {
-            this.data = data;
-
-            for (int i = 0; i < atts.getLength(); i++) {
-                if (!isAntNamespace(atts.getURI(i))) {
-                    continue;
-                }
-
-                String name = atts.getQName(i);
-                String value = atts.getValue(i);
-                TaskData child = data.addProperty(name);
-                child.setLocation(getLocation());
-                child.setText(value);
-            }
-        }
-
-        public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {
-            if (!isAntNamespace(namespaceURI)) {
-                throw new SAXParseException("Unexpected element \"" + qName + "\"", locator);
-            }
-
-            TaskData child = data.addProperty(qName);
-            child.setLocation(getLocation());
-            handlers.push(new TaskElemHandler(child, qName, atts));
-        }
-
-        public void endElement(String namespaceURI, String localName, String qName) throws SAXException {
-            handlers.pop();
-        }
-    }
-
-    private static boolean isAntNamespace(String uri) {
-        return uri == null ? false : uri.equals("");
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/xml/org/apache/tools/ant/xml/XmlExporter.java b/proposal/antfarm/xml/org/apache/tools/ant/xml/XmlExporter.java
deleted file mode 100644
index 1a4f12d..0000000
--- a/proposal/antfarm/xml/org/apache/tools/ant/xml/XmlExporter.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.apache.tools.ant.xml;
-
-import java.io.*;
-import java.util.*;
-import org.apache.tools.ant.*;
-
-public class XmlExporter {
-    public void exportProject(Project project, Writer out) throws IOException {
-        out.write("<project name=\"" + project.getName() + "\">\n");
-
-        Iterator itr = project.getTargets().iterator();
-        while (itr.hasNext()) {
-            Target target = (Target) itr.next();
-            writeTarget(target, out);
-        }
-
-        out.write("</project>\n");
-    }
-
-    private void writeTarget(Target target, Writer out) throws IOException {
-        out.write("\t<target name=\"" + target.getName() + "\" depends=\"" + concat(target.getDepends()) + ">\n");
-        out.write("\t</target>\n");
-    }
-
-    public String concat(List depends) throws IOException {
-        StringBuffer buf = new StringBuffer();
-        Iterator itr = depends.iterator();
-        while (itr.hasNext()) {
-            String depend = (String) itr.next();
-            buf.append(depend);
-            if (itr.hasNext()) {
-                buf.append(" ");
-            }
-        }
-        return buf.toString();
-    }
-
-    public static void main(String[] args) throws Exception {
-        Workspace workspace = new Workspace(new XmlImporter());
-        Project project = workspace.importProject("ant");
-        Writer out = new OutputStreamWriter(System.out);
-        new XmlExporter().exportProject(project, out);
-        out.flush();
-    }
-}
\ No newline at end of file
diff --git a/proposal/antfarm/xml/org/apache/tools/ant/xml/XmlImporter.java b/proposal/antfarm/xml/org/apache/tools/ant/xml/XmlImporter.java
deleted file mode 100644
index 5db0ccf..0000000
--- a/proposal/antfarm/xml/org/apache/tools/ant/xml/XmlImporter.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/* Copyright (c) 2000 The Apache Software Foundation */
-
-package org.apache.tools.ant.xml;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import javax.xml.parsers.*;
-import org.apache.tools.ant.*;
-import org.xml.sax.*;
-
-/**
- *  This class knows how to locate xml project files
- *  and import them into the workspace.
- */
-public class XmlImporter implements Importer {
-    private URL[] path;
-
-    /**
-     *  Constructs an importer for a workspace.
-     */
-    public XmlImporter() {
-        this.path = getProjectPath();
-    }
-
-    /**
-     *  Imports the project with the specified name.
-     */
-    public void importProject(Project project) throws BuildException {
-        // Locate the project file
-        URLConnection conn = findProjectFile(project);
-
-        // Parse the xml
-        parseProjectFile(project, conn);
-    }
-
-    /**
-     *  Find the .ant file for this project. Searches each directory and
-     *  jar in the project path.
-     */
-    private URLConnection findProjectFile(Project project) throws BuildException {
-        String fileName = project.getName() + ".ant";
-        for (int i = 0; i < path.length; i++) {
-            try {
-                URL url = new URL(path[i], fileName);
-                URLConnection conn = url.openConnection();
-                conn.connect();
-                project.setBase(path[i]);
-                project.setLocation(url.toString());
-                return conn;
-            }
-            catch(FileNotFoundException exc) {
-                // The file ins't in this directory/jar, keep looking
-            }
-            catch(IOException exc) {
-                // Not sure what to do here...
-                exc.printStackTrace();
-            }
-        }
-
-        throw new BuildException("Project \"" + project.getName() + "\" not found");
-    }
-
-    /**
-     *  Parse the xml file.
-     */
-    private void parseProjectFile(Project project, URLConnection conn) throws BuildException {
-        ProjectHandler handler = new ProjectHandler(project);
-
-        try {
-            InputSource source = new InputSource(conn.getInputStream());
-            source.setPublicId(conn.getURL().toString());
-            SAXParser parser = parserFactory.newSAXParser();
-            /* parser.getXMLReader().setProperty("http://xml.org/sax/properties/lexical-handler", handler);  */
-            parser.parse(source, handler);
-        }
-        catch(SAXParseException exc) {
-            if (exc.getException() instanceof BuildException) {
-                throw (BuildException) exc.getException();
-            }
-
-            throw new BuildException(exc.getMessage(), exc.getPublicId() + ":" + exc.getLineNumber());
-        }
-        catch(SAXException exc) {
-            if (exc.getException() instanceof BuildException) {
-                throw (BuildException) exc.getException();
-            }
-            else {
-                throw new AntException("Parse error", exc);
-            }
-        }
-        catch(ParserConfigurationException exc) {
-            throw new AntException("Parser configuration error", exc);
-        }
-        catch(FileNotFoundException exc) {
-            // This should never happen, since conn.connect()
-            // has already been called successfully
-            throw new AntException("Project file not found", exc);
-        }
-        catch(IOException exc) {
-            throw new AntException("Error reading project file", exc);
-        }
-
-        return;
-    }
-
-    /**
-     *  Parses the project path (specified using the "ant.project.path"
-     *  system propertyinto URL objects.
-     */
-    private static URL[] getProjectPath() {
-        String s = System.getProperty("ant.project.path", ".");
-
-        StringTokenizer tokens = new StringTokenizer(s, System.getProperty("path.separator"));
-        int i = 0;
-        URL[] path = new URL[tokens.countTokens()];
-        while (tokens.hasMoreTokens()) {
-            String token = tokens.nextToken();
-
-            try {
-                if (token.endsWith(".jar")) {
-                    path[i] = new URL("jar:file:" + token + "!/");
-                }
-                else if (token.endsWith("/")) {
-                    path[i] = new URL("file:" + token);
-                }
-                else {
-                    path[i] = new URL("file:" + token + "/");
-                }
-            }
-            catch(MalformedURLException exc) {
-                exc.printStackTrace();
-            }
-
-            i++;
-        }
-
-        return path;
-    }
-
-
-    /**
-     * JAXP stuff.
-     */
-    private static SAXParserFactory parserFactory;
-
-    static {
-        parserFactory = SAXParserFactory.newInstance();
-        parserFactory.setValidating(false);
-        parserFactory.setNamespaceAware(true);
-    }
-}
diff --git a/proposal/frantic/build.bat b/proposal/frantic/build.bat
deleted file mode 100755
index da96ae4..0000000
--- a/proposal/frantic/build.bat
+++ /dev/null
@@ -1,55 +0,0 @@
-@echo off
-rem --------------------------------------------------------------------------
-rem build.bat - Build Script for Frantic (lifted from Tomcat...thx guys)
-rem
-rem Environment Variable Prerequisites:
-rem
-rem   JAVA_HOME        Must point at your Java Development Kit [REQUIRED]
-rem
-rem ---------------------------------------------------------------------------
-
-
-rem ----- Save Environment Variables ------------------------------------------
-
-set _CLASSPATH=%CLASSPATH%
-set _CLASSES=%CLASSES%
-
-rem ----- Verify and Set Required Environment Variables -----------------------
-
-if not "%JAVA_HOME%" == "" goto gotJavaHome
-echo You must set JAVA_HOME to point at your Java Development Kit installation
-goto cleanup
-:gotJavaHome
-
-rem ----- Set Up The Runtime Classpath ----------------------------------------
-
-if not "%CLASSPATH%" == "" set CLASSPATH=%CLASSPATH%;
-set CLASSPATH=%CLASSPATH%;./src
-
-rem ----- Execute The Requested Build -----------------------------------------
-
-if not exist dist mkdir dist
-if not exist dist\lib mkdir dist\lib
-if not exist dist\lib\classes mkdir dist\lib\classes
-if not exist dist\doc mkdir dist\doc
-if not exist dist\doc\api mkdir dist\doc\api
-
-set CLASSES=dist\lib\classes
-
-%JAVA_HOME%\bin\javac -d %CLASSES% src/org/apache/ant/test/*.java
-%JAVA_HOME%\bin\jar cvf dist\lib\frantic.jar -C dist\lib\classes .
-
-xcopy website\*.html dist\doc /s /y
-xcopy website\*.gif dist\doc /s /y
-
-%JAVA_HOME%\bin\javadoc -protected -sourcepath src -d dist\doc\api -author org.apache.ant org.apache.ant.engine org.apache.ant.tasks org.apache.ant.tasks.build org.apache.ant.tasks.util
-
-rem ----- Restore Environment Variables ---------------------------------------
-:cleanup
-set CLASSPATH=%_CLASSPATH%
-set CLASSES=%_CLASSES%
-set _CLASSPATH=
-set _CLASSES=
-
-:finish
-
diff --git a/proposal/frantic/src/org/apache/ant/AntException.java b/proposal/frantic/src/org/apache/ant/AntException.java
deleted file mode 100644
index 17763b1..0000000
--- a/proposal/frantic/src/org/apache/ant/AntException.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999, 2000 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 "The Jakarta Project", "Tomcat", 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.ant;
-
-public class AntException extends Exception {
-    
-    public AntException() {
-        super();
-    }
-    
-    public AntException(String message) {
-        super(message);
-    }
-}
diff --git a/proposal/frantic/src/org/apache/ant/engine/AntEngineListener.java b/proposal/frantic/src/org/apache/ant/engine/AntEngineListener.java
deleted file mode 100644
index 7839d64..0000000
--- a/proposal/frantic/src/org/apache/ant/engine/AntEngineListener.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999, 2000 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 "The Jakarta Project", "Tomcat", 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.ant.engine;
-
-
-import java.util.*;
-import org.apache.ant.AntException;
-import org.apache.ant.tasks.Task;
-
-public interface AntEngineListener extends EventListener {
-    
-    void engineStart(AntEvent e);
-    void engineFinish(AntEvent e);
-    
-    void taskStart(AntEvent e);
-    void taskExecute(AntEvent e);
-    void taskFinish(AntEvent e);
-    void taskMessage(AntEvent e, String message);
-    void taskException(AntEvent e, AntException exception);
-    
-}
diff --git a/proposal/frantic/src/org/apache/ant/engine/AntEvent.java b/proposal/frantic/src/org/apache/ant/engine/AntEvent.java
deleted file mode 100644
index f14d1f7..0000000
--- a/proposal/frantic/src/org/apache/ant/engine/AntEvent.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999, 2000 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 "The Jakarta Project", "Tomcat", 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.ant.engine;
-
-
-import java.util.EventObject;
-import org.apache.ant.tasks.Task;
-
-public class AntEvent extends EventObject {
-    
-    Task task;
-    
-    public AntEvent(Object source) {
-        this(source, null);
-    }
-    
-    public AntEvent(Object source, Task task) {
-        super(source);
-        this.task = task;
-    }
-    
-    public Task getTask() {
-        return task;
-    }
-    
-    public void setTask(Task task) {
-        this.task = task;
-    }
-}
diff --git a/proposal/frantic/src/org/apache/ant/engine/DefaultEngineListener.java b/proposal/frantic/src/org/apache/ant/engine/DefaultEngineListener.java
deleted file mode 100644
index 6ccda43..0000000
--- a/proposal/frantic/src/org/apache/ant/engine/DefaultEngineListener.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999, 2000 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 "The Jakarta Project", "Tomcat", 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.ant.engine;
-
-
-import java.io.*;
-import java.text.*;
-import java.util.*;
-import org.apache.ant.AntException;
-import org.apache.ant.tasks.Task;
-
-public class DefaultEngineListener implements AntEngineListener {
-    
-    protected PrintStream       outputStream;
-    protected long              startTime;
-    
-    protected StringBuffer      sb              = new StringBuffer();
-    protected int               indentSpaces    = 4;
-    protected boolean           indent          = true;
-    protected int               curIndent       = 0;
-    
-    protected SimpleDateFormat  timestamp       = new SimpleDateFormat("HH:mm:ss:SSS");
-    
-    public DefaultEngineListener() {
-        this(System.out);
-    }
-    
-    public DefaultEngineListener(PrintStream outputStream) {
-        this.outputStream = outputStream;
-    }
-    
-    public void setIndentSpaces(int spaces) {
-        this.indentSpaces = spaces;
-    }
-    
-    public int getIndentSpaces() {
-        return indentSpaces;
-    }
-    
-    public void setIndent(boolean on) {
-        this.indent = on;
-    }
-    
-    public boolean isIndent() {
-        return indent;
-    }
-    
-    protected String padLeft(String s, int length) {
-        sb.setLength(0);
-        sb.append(s);
-        while (sb.length() < length) {
-            sb.insert(0, ' ');
-        }
-        return sb.toString();
-    }
-    
-    protected void output(String message) {
-        if (!indent) {
-            outputStream.println(message);
-            return;
-        }
-        
-        // shouldn't happen, but let's be on the safe side
-        if (curIndent < 0) {
-            curIndent = 0;
-        }
-        
-        outputStream.println(
-                             padLeft(message, message.length() + (indentSpaces * curIndent)));
-    }
-    
-    ////////////////////////////////////////////////////////////////////////////
-    //                     AntEngineListener Implementation                   //
-    ////////////////////////////////////////////////////////////////////////////
-    
-    public void engineStart(AntEvent e) {
-        Date now = new Date();
-        output("Engine Started: " + timestamp.format(now));
-        startTime = now.getTime();
-    }
-    
-    public void engineFinish(AntEvent e) {
-        Date now = new Date();
-        long elapsed = System.currentTimeMillis() - startTime;
-        
-        output("Engine Finished: " + timestamp.format(now));
-        output("Elapsed Time: " + (elapsed / 1000F) + " seconds");
-    }
-    
-    public void taskStart(AntEvent e) {
-        output("Task Started: " + e.getTask().getFullyQualifiedName());
-        curIndent++;
-    }
-    
-    public void taskExecute(AntEvent e){
-        output("Task Execution: " + e.getTask().getFullyQualifiedName());
-    }
-    
-    public void taskFinish(AntEvent e){
-        curIndent--;
-        output("Task Finished: " + e.getTask().getFullyQualifiedName());
-    }
-    
-    public void taskMessage(AntEvent e, String message){
-        curIndent++;
-        output("Task Message: " + e.getTask().getFullyQualifiedName() + ": " +
-               message);
-        curIndent--;
-    }
-    
-    public void taskException(AntEvent e, AntException exception){
-        output("Task Exception: " + e.getTask().getFullyQualifiedName() + ": " +
-               exception.getMessage());
-    }
-}
diff --git a/proposal/frantic/src/org/apache/ant/engine/HierarchicalHashtable.java b/proposal/frantic/src/org/apache/ant/engine/HierarchicalHashtable.java
deleted file mode 100644
index 5876af3..0000000
--- a/proposal/frantic/src/org/apache/ant/engine/HierarchicalHashtable.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package org.apache.ant.engine;
-
-import java.util.*;
-
-public class HierarchicalHashtable extends Hashtable {
-    
-    private HierarchicalHashtable parent;
-    
-    public HierarchicalHashtable() {
-        this(null);
-    }
-    
-    public HierarchicalHashtable(HierarchicalHashtable parent) {
-        super();
-        this.parent = parent;
-    }
-    
-    public HierarchicalHashtable getParent() {
-        return parent;
-    }
-    
-    public void setParent(HierarchicalHashtable parent) {
-        this.parent = parent;
-    }
-    
-    public List getPropertyNames() {
-        ArrayList list = new ArrayList();
-        
-        Enumeration e = keys();
-        while (e.hasMoreElements()) {
-            list.add(e.nextElement());
-        }
-        
-        if (getParent() != null) {
-            list.addAll(getParent().getPropertyNames());
-        }
-        
-        return list;
-    }
-    
-    public Object getPropertyValue(String name) {
-        Object value = get(name);
-        if (value == null && getParent() != null) {
-            return getParent().getPropertyValue(name);
-        }
-        return value;
-    }
-    
-    public void setPropertyValue(String name, Object value) {
-        put(name, value);
-    }
-    
-    public void removePropertyValue(String name) {
-        Object value = get(name);
-        if (value == null && getParent() != null) {
-            getParent().removePropertyValue(name);
-        }
-        if (value != null) {
-            remove(name);
-        }
-    }
-}
diff --git a/proposal/frantic/src/org/apache/ant/engine/TaskEngine.java b/proposal/frantic/src/org/apache/ant/engine/TaskEngine.java
deleted file mode 100644
index 6e35fce..0000000
--- a/proposal/frantic/src/org/apache/ant/engine/TaskEngine.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999, 2000 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 "The Jakarta Project", "Tomcat", 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.ant.engine;
-
-
-import java.util.*;
-import org.apache.ant.AntException;
-import org.apache.ant.tasks.Task;
-
-/**
- * The TaskEngine interface defines the methods that a TaskEngine are required
- * to implement. This interface is also passed to each Task in order for them to
- * get access to some utility functions like inserting a new Task during a run,
- * or forcing the execution path of Tasks to be modified.
- */
-public interface TaskEngine {
-    
-    void addAntEngineListener(AntEngineListener listener);
-    
-    void removeAntEngineListener(AntEngineListener listener);
-    
-    void execute(Task task) throws AntException;
-    
-    void execute(Task root, Task task) throws AntException;
-    
-    void message(Task task, String message);
-    
-    Task getNextExecuteTask();
-    
-    /**
-     * Returns a list of all property names that the current task stack is aware
-     * of. This is a recursive list of all property names.
-     */
-    List getPropertyNames();
-    
-    /**
-     * May be called to obtain property values that have been defined. Property
-     * values are maintained in a hierarchical manner as each task is executed.
-     * When a property is requested, if the current execution level does not
-     * contain the property, the execution parent is then queried. This
-     * continues until there is no where else to go!
-     * <p></p>
-     * Maybe this should be a Hashtable implementation and be able to return
-     * Object? Is that a little overkill considering these values will usually
-     * be Strings? Perhaps someone will have a farfetched idea of storing a
-     * Task in a property?
-     */
-    Object getPropertyValue(String name);
-    
-    /**
-     * Adds the name-value pair to this execution stack property list. If the
-     * property is declared in parent tasks, I don't really see a reason for not
-     * adding it again to this execution list. This would achieve a nice scoped
-     * parameter list that is dictated by nesting levels.
-     * <p></p>
-     * This is against the current Ant (1.2) specification, but I'm not sure why
-     * that restriction was there. It would be simple to implement here if it
-     * again required.
-     */
-    void setPropertyValue(String name, Object value);
-    
-    /**
-     * Removes the given property from the property list. I haven't thought too
-     * much about the rules behind this method. My current thinking is that the
-     * property is removed no matter what level of the execution stack the
-     * property was defined in. I think this should be good in most cases. If it
-     * ever surfaces that the property should just be unavailable for this stack
-     * level (and other's below it), then the implementation can be modified to
-     * keep a list of these "unavailable" properties.
-     */
-    void removePropertyValue(String name);
-    
-}
diff --git a/proposal/frantic/src/org/apache/ant/engine/TaskEngineImpl.java b/proposal/frantic/src/org/apache/ant/engine/TaskEngineImpl.java
deleted file mode 100644
index d1f5749..0000000
--- a/proposal/frantic/src/org/apache/ant/engine/TaskEngineImpl.java
+++ /dev/null
@@ -1,397 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999, 2000 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 "The Jakarta Project", "Tomcat", 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.ant.engine;
-
-
-import java.util.*;
-import org.apache.ant.AntException;
-import org.apache.ant.tasks.Task;
-
-/**
- * The engine that actually invokes each Task. In addition to specifying a Task
- * to execute, it may be desirable to specify the root Task that will define
- * an execution cycle.
- */
-public class TaskEngineImpl implements TaskEngine {
-    
-    /**
-     * Analagous to a call stack, but with Tasks.
-     */
-    protected Stack taskStack       = new Stack();;
-    
-    /**
-     * As the task stack is built, a mirror representation will also be
-     * contructed that will hold property values.
-     */
-    protected Stack propertyStack   = new Stack();
-    
-    /**
-     * Keeps track of AntEngineListeners. We don't have to use Vector because we
-     * take care of synchronization on the add, remove, and iteration operations.
-     */
-    protected ArrayList listenerList = new ArrayList();
-    
-    private int engineLevel = 0;
-    
-    /**
-     * Constructor is private so it cannot be instantiated. Users of this class
-     * will get an instance by using the getTaskEngine() method. This will allow
-     * us to have a simple Factory implementation. We may use a Singleton
-     * implementation, or a collection pool. The choice is up to us.
-     */
-    private TaskEngineImpl() {
-        super();
-    }
-    
-    /**
-     * Return a usable instance of a TaskEngine to the requestor. Nothing
-     * sophisticated yet, simple doles out a new instance each time.
-     */
-    public static TaskEngine getTaskEngine() {
-        return new TaskEngineImpl();
-    }
-    
-    /**
-     * Walk the list of Tasks backwards until the root is reached. Keep track of
-     * the Tasks along the way in a Stack. Return null if the root Task is not a
-     * parent of the provided Task.
-     */
-    protected Stack getTaskStack(Task root, Task task) {
-        Stack stack = new Stack();
-        while (task != null) {
-            stack.push(task);
-            if (task == root) {
-                return stack;
-            }
-            task = task.getParent();
-        }
-        return null;
-    }
-    
-    /**
-     * Returns the next Task to be executed from the taskStack. The task is not
-     * removed from the Stack.
-     */
-    public Task getNextExecuteTask() {
-        try {
-            return (Task)taskStack.peek();
-        } catch (EmptyStackException esx) {
-            return null;
-        }
-    }
-    
-    /**
-     * If no root is specified, we will assume that the user wants to execute
-     * the Task with no root. This is accomplished by using the Task parameter
-     * as its own root.
-     */
-    public void execute(Task task) throws AntException {
-        execute(task, task);
-    }
-    
-    /**
-     * This is the workhorse, however it has been made to be very simple. Given
-     * the ability to specify a path between root and the target Task, we build
-     * a trail of Tasks to connect the two. Next we execute each Task on the way
-     * between the two Tasks. Once we arrive at the Task to execute, we execute
-     * all of its chlidren.
-     */
-    public void execute(Task root, Task task) throws AntException {
-        fireEngineStart();
-        try {
-            taskStack = getTaskStack(root, task);;
-            if (taskStack == null) {
-                throw new AntException(
-                                       "The execution root Task is not an ancestor of the execution Task.");
-            }
-            
-            // Pop thru the stack and execute each Task we come across.
-            while (!taskStack.isEmpty()) {
-                executeTask(taskStack);
-            }
-        } finally {
-            fireEngineFinish();
-        }
-    }
-    
-    /**
-     * A recursive routine that allows all Tasks in the stack to be executed. At
-     * the same time, the stack may grow to include new Tasks.
-     */
-    protected void executeTask(Stack taskStack) throws AntException {
-        Task task = (Task)taskStack.pop();
-        
-        fireTaskStart(task);
-        try {
-            // Add a new property holder for this task to the property stack. Note
-            // that the parent of the new holder is the current stack head.
-            if (task.isPropertyContainer()) {
-                if (propertyStack.isEmpty()) {
-                    propertyStack.push(new HierarchicalHashtable());
-                } else {
-                    propertyStack.push(new HierarchicalHashtable(
-                                                                 (HierarchicalHashtable)propertyStack.peek()));
-                }
-                
-            }
-            
-            // Allow Task to do whatever it may need to do before touching its
-            // children.
-            task.init(this);
-            
-            // Iterate the Task's children and execute any priority Tasks.
-            Task[] tasks = task.getChildren();
-            for (int i = 0, c = tasks.length; i < c; i++) {
-                if (tasks[i].getExecutionMode() == Task.EXECUTION_MODE_PRIORITY) {
-                    taskStack.push(tasks[i]);
-                    executeTask(taskStack);
-                }
-            }
-            
-            // Allow the Task to validate.
-            task.validate();
-            
-            // Finally, execute the Task.
-            fireTaskExecute(task);
-            task.execute(this);
-            
-            // We can discard the no londer needed property holder.
-            if (task.isPropertyContainer()) {
-                propertyStack.pop();
-            }
-            
-        } catch (AntException ax) {
-            fireTaskException(task, ax);
-        } finally {
-            fireTaskFinish(task);
-        }
-    }
-    
-    /**
-     * Causes an AntEvent to be generated and fired to all listeners.
-     */
-    public void message(Task task, String message) {
-        fireTaskMessage(task, message);
-    }
-    
-    ////////////////////////////////////////////////////////////////////////////
-    //                            Listener Support                            //
-    ////////////////////////////////////////////////////////////////////////////
-    
-    public synchronized void addAntEngineListener(AntEngineListener listener) {
-        if (!listenerList.contains(listener)) {
-            listenerList.add(listener);
-        }
-    }
-    
-    public synchronized void removeAntEngineListener(AntEngineListener listener) {
-        if (listenerList.contains(listener)) {
-            listenerList.remove(listener);
-        }
-    }
-    
-    protected synchronized void fireEngineStart() {
-        if (engineLevel++ > 0) return;
-        AntEvent e = new AntEvent(this);
-        for (int i = 0; i < listenerList.size(); i++) {
-            ((AntEngineListener)listenerList.get(i)).engineStart(e);
-        }
-        
-    }
-    
-    protected synchronized void fireEngineFinish() {
-        if (--engineLevel > 0) return;
-        AntEvent e = new AntEvent(this);
-        for (int i = 0; i < listenerList.size(); i++) {
-            ((AntEngineListener)listenerList.get(i)).engineFinish(e);
-        }
-        
-    }
-    
-    protected synchronized void fireTaskStart(Task task) {
-        AntEvent e = new AntEvent(this, task);
-        for (int i = 0; i < listenerList.size(); i++) {
-            ((AntEngineListener)listenerList.get(i)).taskStart(e);
-        }
-        
-    }
-    
-    protected synchronized void fireTaskExecute(Task task) {
-        AntEvent e = new AntEvent(this, task);
-        for (int i = 0; i < listenerList.size(); i++) {
-            ((AntEngineListener)listenerList.get(i)).taskExecute(e);
-        }
-        
-    }
-    
-    protected synchronized void fireTaskFinish(Task task) {
-        AntEvent e = new AntEvent(this, task);
-        for (int i = 0; i < listenerList.size(); i++) {
-            ((AntEngineListener)listenerList.get(i)).taskFinish(e);
-        }
-        
-    }
-    
-    protected synchronized void fireTaskMessage(Task task, String message) {
-        AntEvent e = new AntEvent(this, task);
-        for (int i = 0; i < listenerList.size(); i++) {
-            ((AntEngineListener)listenerList.get(i)).taskMessage(e, message);
-        }
-        
-    }
-    
-    protected synchronized void fireTaskException(Task task, AntException exception) {
-        AntEvent e = new AntEvent(this, task);
-        for (int i = 0; i < listenerList.size(); i++) {
-            ((AntEngineListener)listenerList.get(i)).taskException(e, exception);
-        }
-        
-    }
-    
-    ////////////////////////////////////////////////////////////////////////////
-    //                        Property Support Methods                        //
-    ////////////////////////////////////////////////////////////////////////////
-    
-    /**
-     * This is the routine that will perform key substitution. Phrase will come
-     * in as "src/${someparam}" and be converted to the appropriate "normalized"
-     * string. I suppose while I'm doing this we should support phrases with
-     * nested keys, such as "src/${build${token}}". Also, we should properly
-     * handle cases where ${someparam} will evaluate to ${anotherparam}.
-     * <p></p>
-     * One thing that will be different from the Ant 1.2 mechanismoccurs when a
-     * parameter value is not found. The substitution routine inserts it back in
-     * the phrase unchanged. I have opted to insert a zero-length string
-     * instead.
-     * <p></p>
-     * I should add a switch to the engine that will give the user the ability
-     * to throw an exception if a key is not found. Pretty easy, except this
-     * method is a strange place for an AntException to be thrown. Perhaps I
-     * should use a RuntimeException instead...
-     * <p></p>
-     * A brief rundown on the logic here:
-     *     I check for the first instances of a key prefix.
-     *     If none found we return the phrase as is.
-     *     If key prefix is found get location of next key prefix and suffix.
-     *     If suffix is found first, we have found a key.
-     *     If there is no suffix, we return the phrase.
-     */
-    static final String KEY_PREFIX = "${";
-    static final String KEY_SUFFIX = "}";
-    protected String substitute(String phrase) {
-        StringBuffer sb = new StringBuffer(phrase);
-        int startPoint = 0;
-        while (startPoint >= 0 && startPoint < phrase.length()) {
-            int pre1 = startPoint + phrase.substring(startPoint).indexOf(KEY_PREFIX);
-            if (pre1 < 0) break;
-            int suf1 = phrase.substring(pre1 + KEY_PREFIX.length()).indexOf(KEY_SUFFIX);
-            if (suf1 < 0) break;
-            suf1 = suf1 + pre1 + KEY_PREFIX.length();
-            int pre2 = phrase.substring(pre1 + KEY_PREFIX.length()).indexOf(KEY_PREFIX);
-            if (pre2 < 0) {
-                pre2 = phrase.length() + 1;
-            } else {
-                pre2 = pre2 + pre1 + KEY_PREFIX.length();
-            }
-            
-            if (suf1 < pre2) {
-                // we have found a token
-                String key = sb.substring(pre1 + KEY_PREFIX.length(), suf1);
-                sb.delete(pre1, suf1 + 1);
-                Object value = getPropertyValueNoSubstitution(key);
-                if (value != null) {
-                    sb.insert(pre1, value.toString());
-                }
-                return substitute(sb.toString());
-            }
-            startPoint = pre2;
-        }
-        return sb.toString();
-    }
-    
-    public List getPropertyNames() {
-        if (propertyStack.isEmpty()) return new ArrayList();
-        HierarchicalHashtable hash = (HierarchicalHashtable)propertyStack.peek();
-        return hash.getPropertyNames();
-    }
-    
-    public Object getPropertyValue(String name) {
-        if (propertyStack.isEmpty()) return null;
-        HierarchicalHashtable hash = (HierarchicalHashtable)propertyStack.peek();
-        Object result = hash.getPropertyValue(name);
-        if (result instanceof String) {
-            return substitute((String)result);
-        } else {
-            return result;
-        }
-    }
-    
-    protected Object getPropertyValueNoSubstitution(String name) {
-        if (propertyStack.isEmpty()) return null;
-        HierarchicalHashtable hash = (HierarchicalHashtable)propertyStack.peek();
-        return hash.getPropertyValue(name);
-    }
-    
-    public void setPropertyValue(String name, Object value) {
-        if (propertyStack.isEmpty()) return;
-        HierarchicalHashtable hash = (HierarchicalHashtable)propertyStack.peek();
-        hash.setPropertyValue(name, value);
-    }
-    
-    public void removePropertyValue(String name) {
-        if (propertyStack.isEmpty()) return;
-        HierarchicalHashtable hash = (HierarchicalHashtable)propertyStack.peek();
-        hash.remove(name);
-    }
-}
diff --git a/proposal/frantic/src/org/apache/ant/tasks/BaseTask.java b/proposal/frantic/src/org/apache/ant/tasks/BaseTask.java
deleted file mode 100644
index 3cf4a2a..0000000
--- a/proposal/frantic/src/org/apache/ant/tasks/BaseTask.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999, 2000 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 "The Jakarta Project", "Tomcat", 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.ant.tasks;
-
-
-
-import java.util.*;
-import org.apache.ant.AntException;
-import org.apache.ant.engine.TaskEngine;
-import org.apache.ant.tasks.Task;
-
-public abstract class BaseTask implements Task {
-    
-    protected Task parent;
-    protected ArrayList children = new ArrayList();
-    protected String taskName;
-    protected Properties properties = new Properties();
-    
-    public BaseTask() {
-        super();
-    }
-    
-    public void init(TaskEngine engine) throws AntException {
-    }
-    
-    public void execute(TaskEngine engine) throws AntException {
-    }
-    
-//    abstract public String getTaskTag();
-    
-    public void validate() throws AntException {}
-    
-    public String getFullyQualifiedName() {
-        if (getParent() == null) return Task.NAME_SEPARATOR + taskName;
-        return getParent().getFullyQualifiedName() + Task.NAME_SEPARATOR + taskName;
-    }
-    
-    public int hashCode() {
-        return getFullyQualifiedName().hashCode();
-    }
-    
-    public String getTaskName() {
-        return taskName;
-    }
-    
-    public void setTaskName(String taskName) {
-        this.taskName = taskName;
-    }
-    
-    public int getExecutionMode() {
-        return Task.EXECUTION_MODE_PRIORITY;
-    }
-    
-    public String getAttributeValue(String name) {
-        /**@todo: Implement this org.apache.ant.Task method*/
-        throw new java.lang.UnsupportedOperationException("Method getAttributeValue() not yet implemented.");
-    }
-    
-    public Task getParent() {
-        return parent;
-    }
-    
-    /**
-     * We have to trust the developers to not screw up the hierarchy by changing
-     * the parent of a Task when it is a child of another.
-     */
-    public void setParent(Task parent) {
-        this.parent = parent;
-    }
-    
-    public Task[] getChildren() {
-        return (Task[])children.toArray(new Task[children.size()]);
-    }
-    
-    public void addChild(Task task) {
-        children.add(task);
-        task.setParent(this);
-    }
-    
-    public void removeChild(Task task) {
-        children.remove(task);
-    }
-    
-    public Task getRootTask() {
-        if (getParent() != null) {
-            return getParent().getRootTask();
-        }
-        return this;
-    }
-    
-    protected Task getTaskByName(String taskName) {
-        Task[] tasks = getChildren();
-        for (int i = 0, c = tasks.length; i < c; i++) {
-            if (tasks[i].getTaskName().equals(taskName)) {
-                return tasks[i];
-            }
-        }
-        return null;
-    }
-    
-    public Task getTask(String taskPath) {
-        taskPath = taskPath.trim();
-        int slashPos = taskPath.indexOf("/");
-        
-        // starts with '/'
-        if (slashPos == 0) {
-            return getRootTask().getTask(taskPath.substring(slashPos + 1));
-        } else
-            
-            // starts with '../'
-            if (taskPath.startsWith("../") || taskPath.equals("..")) {
-                return getParent().getTask(taskPath.substring(3));
-            } else
-                
-                // starts with './'
-                if (taskPath.startsWith("./") || taskPath.equals(".")) {
-                    return getTask(taskPath.substring(2));
-                } else
-                    
-                    // starts with 'some_level/'
-                    if (slashPos > 0) {
-                        String levelName = taskPath.substring(0, slashPos);
-                        return getTaskByName(levelName).getTask(taskPath.substring(slashPos + 1));
-                    }
-        
-        // there are no more directories; what remains is the name of the task
-        if (slashPos < 0) {
-            if (taskPath.length() == 0) return this;
-            return getTaskByName(taskPath);
-        }
-        return null;
-    }
-    
-    public boolean isPropertyContainer() {
-        return false;
-    }
-    
-}
diff --git a/proposal/frantic/src/org/apache/ant/tasks/Task.java b/proposal/frantic/src/org/apache/ant/tasks/Task.java
deleted file mode 100644
index 4c96c7a..0000000
--- a/proposal/frantic/src/org/apache/ant/tasks/Task.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999, 2000 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 "The Jakarta Project", "Tomcat", 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.ant.tasks;
-
-
-import java.util.*;
-import org.apache.ant.AntException;
-import org.apache.ant.engine.TaskEngine;
-
-/**
- * Task is the core interface for all structures that will be processed by the
- * TaskEngine.
- */
-public interface Task {
-    
-    public static final int EXECUTION_MODE_IMPLICIT = 0;
-    public static final int EXECUTION_MODE_EXPLICIT = 1;
-    public static final int EXECUTION_MODE_PRIORITY = 2;
-    
-    public static final char NAME_SEPARATOR = '/';
-    
-    /**
-     * Causes the existing Task implementation to execute.
-     */
-    void execute(TaskEngine engine) throws AntException;
-    
-    /**
-     * Called when the Task first gets "noticed" by the TaskEngine.
-     */
-    void init(TaskEngine engine) throws AntException;
-    
-    /**
-     * Each Task should have the ability to validate its state. This would be
-     * invoked by the TaskEngine prior to commencing an execution cycle.
-     */
-    void validate() throws AntException;
-    
-    /**
-     * Just a simple name used to identify a Task. This name is only sufficient
-     * for simple debugging and GUI output. It does not uniquely identify a
-     * Task.
-     *
-     * @see #getFullyQualifiedName
-     */
-    String getTaskName();
-    
-    /**
-     * Although this method seems to tie the concept of XML "tags", it is not
-     * necessarily so. The tag name will serve as a general description of the
-     * type of tag represented by this class instance. It is primarily used by
-     * Tasks with sub-Tasks that are not assigned to a specific class
-     * implementation.
-     *
-     * @see org.apache.ant.tasks.UnknownTask
-     */
-//    String getTaskTag();
-    
-    /**
-     * A mechanism for locating a task relative to the current task. This
-     * navigation sceme will mimic a typical OS system. '..' will move back
-     * a level in the Task tree. If taskPath begins with '/' then the root node
-     * will be used as a starting point.
-     * <p></p>
-     * Returns null of no task is found at this location.
-     */
-    Task getTask(String taskPath);
-    
-    /**
-     * Proceed backwards through the nodes until we come across the first Task
-     * in the tree. This is the root Task.
-     */
-    Task getRootTask();
-    
-    /**
-     * The "fully-qualified" name of a Task is the Task's name, prepended by its
-     * parent's name, prepended by its parent's name, etc. This method may be
-     * used by the Task's hashCode() method to calculate a hash that will
-     * uniquely identify a Task.
-     */
-    String getFullyQualifiedName();
-    
-    /**
-     * Determines whether this Task is executed whenever its parent is executed,
-     * or if its execution must be specifically requested.
-     * <p></p>
-     * <dl><dt>EXECUTION_MODE_EXPLICIT</dt>
-     * <dd>Requires interaction by the TaskEngine in order to execute.</dd>
-     * <dt>EXECUTION_MODE_IMPLICIT</dt>
-     * <dd>This Task is automatically executed when its parent is
-     * executed.</dd>
-     * <dt>EXECUTION_MODE_PRIORITY</dt>
-     * <dd>These Tasks are executed prior to its parent's execution</dd></dl>
-     * <p></p>
-     * The default mode should probably be EXECUTION_MODE_IMPLICIT. In the
-     * build domain of Ant, every Task below a Task will normally be executed.
-     * The major exception to this is the Target. When a Project Task is
-     * executed, all Target Tasks do <i>not</i> automatically fire, however all
-     * Property Tasks <i>do</i> execute.
-     */
-    int getExecutionMode();
-    
-    /**
-     * Determines whether a Task is suitable for holding property values.
-     */
-    boolean isPropertyContainer();
-    
-    /**
-     * Each Task will hold its attributes in some manner. This method will allow
-     * the Task implementation to return the value of its attribute.
-     */
-    String getAttributeValue(String name);
-    
-    /**
-     * Returns this Task's parent Task. If this Task is the root Task, then this
-     * method will return null.
-     */
-    Task getParent();
-    
-    /**
-     * Sets the Task's parent.
-     */
-    void setParent(Task parent);
-    
-    /**
-     * Returns the an array of Task objects that are subordinate to this Task.
-     */
-    Task[] getChildren();
-}
diff --git a/proposal/frantic/src/org/apache/ant/tasks/build/Project.java b/proposal/frantic/src/org/apache/ant/tasks/build/Project.java
deleted file mode 100644
index bb28904..0000000
--- a/proposal/frantic/src/org/apache/ant/tasks/build/Project.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999, 2000 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 "The Jakarta Project", "Tomcat", 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.ant.tasks.build;
-
-
-import org.apache.ant.AntException;
-import org.apache.ant.engine.TaskEngine;
-import org.apache.ant.tasks.BaseTask;
-import org.apache.ant.tasks.Task;
-
-public class Project extends BaseTask {
-    
-    private String def;
-    private String basedir;
-    
-    public Project() {
-        super();
-    }
-    
-    public String getDefault() {
-        return def;
-    }
-    
-    public void setDefault(String newDefault) {
-        def = newDefault;
-    }
-    
-    public void setBasedir(String newBasedir) {
-        basedir = newBasedir;
-    }
-    
-    public String getBasedir() {
-        return basedir;
-    }
-    
-    ////////////////////////////////////////////////////////////////////////////
-    //                        BaseTask Implementation                         //
-    ////////////////////////////////////////////////////////////////////////////
-    
-    public void init(TaskEngine engine) throws AntException {
-    }
-    
-    /**
-     * Here is where we check and see if there are any Targets specified. We do
-     * this by peeking into the known taskStack and checking to see if a Target
-     * is next to be executed. If not, we add our default Target to the list.
-     */
-    public void execute(TaskEngine engine) throws AntException {
-        // see if it is necessary to invoke the default task
-        Task task = engine.getNextExecuteTask();
-        if (task == null && getDefault() != null) {
-            Task defaultTask = getTask(getDefault());
-            if (defaultTask != null) {
-                engine.execute(defaultTask);
-            }
-        }
-    }
-    
-    public boolean isPropertyContainer() {
-        return true;
-    }
-}
diff --git a/proposal/frantic/src/org/apache/ant/tasks/build/Target.java b/proposal/frantic/src/org/apache/ant/tasks/build/Target.java
deleted file mode 100644
index c9e3dc6..0000000
--- a/proposal/frantic/src/org/apache/ant/tasks/build/Target.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999, 2000 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 "The Jakarta Project", "Tomcat", 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.ant.tasks.build;
-
-
-
-import org.apache.ant.AntException;
-import org.apache.ant.engine.TaskEngine;
-import org.apache.ant.tasks.BaseTask;
-import org.apache.ant.tasks.Task;
-
-public class Target extends BaseTask {
-    
-    private String depends;
-    private String ifCond;
-    private String unlessCond;
-    
-    public Target() {
-        super();
-    }
-    
-    public String getIf() {
-        return ifCond;
-    }
-    
-    public void setIf(String condition) {
-        this.ifCond = condition;
-    }
-    
-    public String getUnless() {
-        return unlessCond;
-    }
-    
-    public void setUnless(String condition) {
-        this.unlessCond = condition;
-    }
-    
-    public void setDepends(String newDepends) {
-        this.depends = newDepends;
-    }
-    
-    public String getDepends() {
-        return depends;
-    }
-    
-    ////////////////////////////////////////////////////////////////////////////
-    //                        BaseTask Implementation                         //
-    ////////////////////////////////////////////////////////////////////////////
-    
-    public int getExecutionMode() {
-        return Task.EXECUTION_MODE_EXPLICIT;
-    }
-    
-    /**
-     * Note that dependencies are executed before the task at hand.
-     */
-    public void execute(TaskEngine engine) throws AntException {
-        if (getDepends() != null && getDepends().length() > 0) {
-            Task dependencyTask = getTask(getDepends());
-            if (dependencyTask == null) {
-                throw new AntException(
-                                       "Cannot find dependency, " + getDepends() + " from Task.");
-            }
-            
-            engine.execute(dependencyTask);
-        }
-    }
-    
-    public boolean isPropertyContainer() {
-        return true;
-    }
-}
diff --git a/proposal/frantic/src/org/apache/ant/tasks/util/Property.java b/proposal/frantic/src/org/apache/ant/tasks/util/Property.java
deleted file mode 100644
index 559c837..0000000
--- a/proposal/frantic/src/org/apache/ant/tasks/util/Property.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999, 2000 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 "The Jakarta Project", "Tomcat", 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.ant.tasks.util;
-
-
-
-import org.apache.ant.AntException;
-import org.apache.ant.engine.TaskEngine;
-import org.apache.ant.tasks.BaseTask;
-
-public class Property extends BaseTask {
-    
-    private String value;
-    private String name;
-    
-    public Property() {
-        super();
-    }
-    
-    public String getValue() {
-        return value;
-    }
-    
-    public void setValue(String value) {
-        this.value = value;
-    }
-    
-    public void setName(String name) {
-        this.name = name;
-    }
-    
-    public String getName() {
-        return name;
-    }
-    
-    ////////////////////////////////////////////////////////////////////////////
-    //                        BaseTask Implementation                         //
-    ////////////////////////////////////////////////////////////////////////////
-    
-    public void execute(TaskEngine engine) throws AntException {
-        if (getParent() == null) {
-            throw new AntException("A Property Task must have a parent Task.");
-        }
-        engine.setPropertyValue(getName(), getValue());
-    }
-}
diff --git a/proposal/frantic/src/org/apache/ant/tasks/util/PropertyDump.java b/proposal/frantic/src/org/apache/ant/tasks/util/PropertyDump.java
deleted file mode 100644
index 66c3dd7..0000000
--- a/proposal/frantic/src/org/apache/ant/tasks/util/PropertyDump.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999, 2000 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 "The Jakarta Project", "Tomcat", 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.ant.tasks.util;
-
-
-
-import java.util.*;
-import org.apache.ant.AntException;
-import org.apache.ant.engine.TaskEngine;
-import org.apache.ant.tasks.BaseTask;
-
-public class PropertyDump extends BaseTask {
-    
-    public PropertyDump() {
-        super();
-    }
-    
-    ////////////////////////////////////////////////////////////////////////////
-    //                        BaseTask Implementation                         //
-    ////////////////////////////////////////////////////////////////////////////
-    
-    public void execute(TaskEngine engine) throws AntException {
-        List propNames = engine.getPropertyNames();
-        for (Iterator i = propNames.iterator(); i.hasNext();) {
-            String name = (String)i.next();
-            String value = engine.getPropertyValue(name).toString();
-            engine.message(this, name + " = " + value);
-        }
-    }
-}
diff --git a/proposal/frantic/src/org/apache/ant/test/SimpleTest.java b/proposal/frantic/src/org/apache/ant/test/SimpleTest.java
deleted file mode 100644
index 3abe5c4..0000000
--- a/proposal/frantic/src/org/apache/ant/test/SimpleTest.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999, 2000 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 "The Jakarta Project", "Tomcat", 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.ant.test;
-
-
-
-
-import org.apache.ant.AntException;
-import org.apache.ant.engine.DefaultEngineListener;
-import org.apache.ant.engine.TaskEngine;
-import org.apache.ant.engine.TaskEngineImpl;
-import org.apache.ant.tasks.Task;
-import org.apache.ant.tasks.build.Project;
-import org.apache.ant.tasks.build.Target;
-import org.apache.ant.tasks.util.Property;
-import org.apache.ant.tasks.util.PropertyDump;
-
-public class SimpleTest {
-    
-    Task target;
-    
-    public SimpleTest() {
-        try {
-            Task rootTask = buildProject();
-            TaskEngine engine = TaskEngineImpl.getTaskEngine();
-            engine.addAntEngineListener(new DefaultEngineListener());
-            engine.execute(rootTask, target);
-        } catch (AntException ax) {
-            ax.printStackTrace(System.err);
-        }
-    }
-    
-    protected Task buildProject() {
-        Project project = new Project();
-        project.setTaskName("project");
-        project.setBasedir("somedir");
-        project.setDefault("build");
-        
-        Property property1 = new Property();
-        property1.setTaskName("prop1");
-        property1.setName("basedir");
-        property1.setValue("/org/apache");
-        project.addChild(property1);
-        
-        Property property2 = new Property();
-        property2.setTaskName("prop2");
-        property2.setName("dir1");
-        property2.setValue("${basedir}/ant");
-        project.addChild(property2);
-        
-        Target target1 = new Target();
-        target1.setTaskName("clean");
-        project.addChild(target1);
-        
-        PropertyDump pd = new PropertyDump();
-        pd.setTaskName("dump");
-        target1.addChild(pd);
-        
-        Target target2 = new Target();
-        target2.setTaskName("prepare");
-        target2.setDepends("../clean");
-        project.addChild(target2);
-        
-        Property property3 = new Property();
-        property3.setTaskName("prop3");
-        property3.setName("dir2");
-        property3.setValue("${dir1}/tasks");
-        target2.addChild(property3);
-        
-        Target target3 = new Target();
-        target3.setTaskName("build");
-        target3.setDepends("../prepare");
-        project.addChild(target3);
-        
-        Property property4 = new Property();
-        property4.setTaskName("prop4");
-        property4.setName("dir3");
-        property4.setValue("r2}");
-        target3.addChild(property4);
-        
-        Property property5 = new Property();
-        property5.setTaskName("prop5");
-        property5.setName("dir4");
-        property5.setValue("${di${dir3}");
-        target3.addChild(property5);
-        
-        target = target2;
-        
-        return project;
-    }
-    
-    public static void main(String[] args) {
-        SimpleTest simpleTest1 = new SimpleTest();
-    }
-}
diff --git a/proposal/frantic/website/Task.html b/proposal/frantic/website/Task.html
deleted file mode 100644
index 73c808f..0000000
--- a/proposal/frantic/website/Task.html
+++ /dev/null
@@ -1,471 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Sat Dec 16 22:19:46 EST 2000 -->
-<TITLE>
-: Interface  Task
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
-&nbsp;NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Task.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: &nbsp;INNER&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: &nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-org.apache.ant.tasks</FONT>
-<BR>
-Interface  Task</H2>
-<HR>
-<DL>
-<DT>public interface <B>Task</B></DL>
-
-<P>
-Task is the core interface for all structures that will be processed by the
- TaskEngine.
-<P>
-<HR>
-
-<P>
-<!-- ======== INNER CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../org/apache/ant/tasks/Task.html#EXECUTION_MODE_EXPLICIT">EXECUTION_MODE_EXPLICIT</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../org/apache/ant/tasks/Task.html#EXECUTION_MODE_IMPLICIT">EXECUTION_MODE_IMPLICIT</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../org/apache/ant/tasks/Task.html#EXECUTION_MODE_PRIORITY">EXECUTION_MODE_PRIORITY</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;char</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../org/apache/ant/tasks/Task.html#NAME_SEPARATOR">NAME_SEPARATOR</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../org/apache/ant/tasks/Task.html#execute(org.apache.ant.engine.TaskEngine)">execute</A></B>(org.apache.ant.engine.TaskEngine&nbsp;engine)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Causes the existing Task implementation to execute.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../org/apache/ant/tasks/Task.html#getAttributeValue(java.lang.String)">getAttributeValue</A></B>(java.lang.String&nbsp;name)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Each Task will hold its attributes in some manner.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../../../org/apache/ant/tasks/Task.html">Task</A>[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../org/apache/ant/tasks/Task.html#getChildren()">getChildren</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the an array of Task objects that are subordinate to this Task.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../org/apache/ant/tasks/Task.html#getExecutionMode()">getExecutionMode</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determines whether this Task is executed whenever its parent is executed,
- or if its execution must be specifically requested.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../org/apache/ant/tasks/Task.html#getFullyQualifiedName()">getFullyQualifiedName</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The "fully-qualified" name of a Task is the Task's name, prepended by its
- parent's name, prepended by its parent's name, etc.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../../../org/apache/ant/tasks/Task.html">Task</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../org/apache/ant/tasks/Task.html#getParent()">getParent</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns this Task's parent Task.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../../../org/apache/ant/tasks/Task.html">Task</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../org/apache/ant/tasks/Task.html#getRootTask()">getRootTask</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Proceed backwards through the nodes until we come across the first Task
- in the tree.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="../../../../org/apache/ant/tasks/Task.html">Task</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../org/apache/ant/tasks/Task.html#getTask(java.lang.String)">getTask</A></B>(java.lang.String&nbsp;taskPath)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A mechanism for locating a task relative to the current task.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../org/apache/ant/tasks/Task.html#getTaskName()">getTaskName</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Just a simple name used to identify a Task.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../org/apache/ant/tasks/Task.html#init(org.apache.ant.engine.TaskEngine)">init</A></B>(org.apache.ant.engine.TaskEngine&nbsp;engine)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when the Task first gets "noticed" by the TaskEngine.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../org/apache/ant/tasks/Task.html#isPropertyContainer()">isPropertyContainer</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determines whether a Task is suitable for holding property values.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../org/apache/ant/tasks/Task.html#setParent(org.apache.ant.tasks.Task)">setParent</A></B>(<A HREF="../../../../org/apache/ant/tasks/Task.html">Task</A>&nbsp;parent)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the Task's parent.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../org/apache/ant/tasks/Task.html#validate()">validate</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Each Task should have the ability to validate its state.</TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="EXECUTION_MODE_IMPLICIT"><!-- --></A><H3>
-EXECUTION_MODE_IMPLICIT</H3>
-<PRE>
-public static final int <B>EXECUTION_MODE_IMPLICIT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="EXECUTION_MODE_EXPLICIT"><!-- --></A><H3>
-EXECUTION_MODE_EXPLICIT</H3>
-<PRE>
-public static final int <B>EXECUTION_MODE_EXPLICIT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="EXECUTION_MODE_PRIORITY"><!-- --></A><H3>
-EXECUTION_MODE_PRIORITY</H3>
-<PRE>
-public static final int <B>EXECUTION_MODE_PRIORITY</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="NAME_SEPARATOR"><!-- --></A><H3>
-NAME_SEPARATOR</H3>
-<PRE>
-public static final char <B>NAME_SEPARATOR</B></PRE>
-<DL>
-</DL>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="execute(org.apache.ant.engine.TaskEngine)"><!-- --></A><H3>
-execute</H3>
-<PRE>
-public void <B>execute</B>(org.apache.ant.engine.TaskEngine&nbsp;engine)
-             throws org.apache.ant.AntException</PRE>
-<DL>
-<DD>Causes the existing Task implementation to execute.</DL>
-<HR>
-
-<A NAME="init(org.apache.ant.engine.TaskEngine)"><!-- --></A><H3>
-init</H3>
-<PRE>
-public void <B>init</B>(org.apache.ant.engine.TaskEngine&nbsp;engine)
-          throws org.apache.ant.AntException</PRE>
-<DL>
-<DD>Called when the Task first gets "noticed" by the TaskEngine.</DL>
-<HR>
-
-<A NAME="validate()"><!-- --></A><H3>
-validate</H3>
-<PRE>
-public void <B>validate</B>()
-              throws org.apache.ant.AntException</PRE>
-<DL>
-<DD>Each Task should have the ability to validate its state. This would be
- invoked by the TaskEngine prior to commencing an execution cycle.</DL>
-<HR>
-
-<A NAME="getTaskName()"><!-- --></A><H3>
-getTaskName</H3>
-<PRE>
-public java.lang.String <B>getTaskName</B>()</PRE>
-<DL>
-<DD>Just a simple name used to identify a Task. This name is only sufficient
- for simple debugging and GUI output. It does not uniquely identify a
- Task.<DD><DL>
-<DT><B>See Also: </B><DD><A HREF="../../../../org/apache/ant/tasks/Task.html#getFullyQualifiedName()"><CODE>getFullyQualifiedName()</CODE></A></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getTask(java.lang.String)"><!-- --></A><H3>
-getTask</H3>
-<PRE>
-public <A HREF="../../../../org/apache/ant/tasks/Task.html">Task</A> <B>getTask</B>(java.lang.String&nbsp;taskPath)</PRE>
-<DL>
-<DD>A mechanism for locating a task relative to the current task. This
- navigation sceme will mimic a typical OS system. '..' will move back
- a level in the Task tree. If taskPath begins with '/' then the root node
- will be used as a starting point.
- <p></p>
- Returns null of no task is found at this location.</DL>
-<HR>
-
-<A NAME="getRootTask()"><!-- --></A><H3>
-getRootTask</H3>
-<PRE>
-public <A HREF="../../../../org/apache/ant/tasks/Task.html">Task</A> <B>getRootTask</B>()</PRE>
-<DL>
-<DD>Proceed backwards through the nodes until we come across the first Task
- in the tree. This is the root Task.</DL>
-<HR>
-
-<A NAME="getFullyQualifiedName()"><!-- --></A><H3>
-getFullyQualifiedName</H3>
-<PRE>
-public java.lang.String <B>getFullyQualifiedName</B>()</PRE>
-<DL>
-<DD>The "fully-qualified" name of a Task is the Task's name, prepended by its
- parent's name, prepended by its parent's name, etc. This method may be
- used by the Task's hashCode() method to calculate a hash that will
- uniquely identify a Task.</DL>
-<HR>
-
-<A NAME="getExecutionMode()"><!-- --></A><H3>
-getExecutionMode</H3>
-<PRE>
-public int <B>getExecutionMode</B>()</PRE>
-<DL>
-<DD>Determines whether this Task is executed whenever its parent is executed,
- or if its execution must be specifically requested.
- <p></p>
- <dl><dt>EXECUTION_MODE_EXPLICIT</dt>
- <dd>Requires interaction by the TaskEngine in order to execute.</dd>
- <dt>EXECUTION_MODE_IMPLICIT</dt>
- <dd>This Task is automatically executed when its parent is
- executed.</dd>
- <dt>EXECUTION_MODE_PRIORITY</dt>
- <dd>These Tasks are executed prior to its parent's execution</dd></dl>
- <p></p>
- The default mode should probably be EXECUTION_MODE_IMPLICIT. In the
- build domain of Ant, every Task below a Task will normally be executed.
- The major exception to this is the Target. When a Project Task is
- executed, all Target Tasks do <i>not</i> automatically fire, however all
- Property Tasks <i>do</i> execute.</DL>
-<HR>
-
-<A NAME="isPropertyContainer()"><!-- --></A><H3>
-isPropertyContainer</H3>
-<PRE>
-public boolean <B>isPropertyContainer</B>()</PRE>
-<DL>
-<DD>Determines whether a Task is suitable for holding property values.</DL>
-<HR>
-
-<A NAME="getAttributeValue(java.lang.String)"><!-- --></A><H3>
-getAttributeValue</H3>
-<PRE>
-public java.lang.String <B>getAttributeValue</B>(java.lang.String&nbsp;name)</PRE>
-<DL>
-<DD>Each Task will hold its attributes in some manner. This method will allow
- the Task implementation to return the value of its attribute.</DL>
-<HR>
-
-<A NAME="getParent()"><!-- --></A><H3>
-getParent</H3>
-<PRE>
-public <A HREF="../../../../org/apache/ant/tasks/Task.html">Task</A> <B>getParent</B>()</PRE>
-<DL>
-<DD>Returns this Task's parent Task. If this Task is the root Task, then this
- method will return null.</DL>
-<HR>
-
-<A NAME="setParent(org.apache.ant.tasks.Task)"><!-- --></A><H3>
-setParent</H3>
-<PRE>
-public void <B>setParent</B>(<A HREF="../../../../org/apache/ant/tasks/Task.html">Task</A>&nbsp;parent)</PRE>
-<DL>
-<DD>Sets the Task's parent.</DL>
-<HR>
-
-<A NAME="getChildren()"><!-- --></A><H3>
-getChildren</H3>
-<PRE>
-public <A HREF="../../../../org/apache/ant/tasks/Task.html">Task</A>[] <B>getChildren</B>()</PRE>
-<DL>
-<DD>Returns the an array of Task objects that are subordinate to this Task.</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
-&nbsp;NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../../../index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="Task.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY: &nbsp;INNER&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: &nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-
-</BODY>
-</HTML>
diff --git a/proposal/frantic/website/images/frantic_logo.gif b/proposal/frantic/website/images/frantic_logo.gif
deleted file mode 100644
index fe40da4..0000000
--- a/proposal/frantic/website/images/frantic_logo.gif
+++ /dev/null
Binary files differ
diff --git a/proposal/frantic/website/images/task_hierarchy.gif b/proposal/frantic/website/images/task_hierarchy.gif
deleted file mode 100644
index ff8db94..0000000
--- a/proposal/frantic/website/images/task_hierarchy.gif
+++ /dev/null
Binary files differ
diff --git a/proposal/frantic/website/index.html b/proposal/frantic/website/index.html
deleted file mode 100644
index 1491dfe..0000000
--- a/proposal/frantic/website/index.html
+++ /dev/null
@@ -1,217 +0,0 @@
-<html>
-<head>
-<title>Ant Proposal - Frantic</title>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<style type="text/css">
-<!--
-.quote {  font-family: "Times New Roman", Times, serif; font-size: 24pt}
-p {  font-family: Verdana, Arial, Helvetica, sans-serif}
-h1 {  font-family: "Times New Roman", Times, serif; color: #330099; font-weight: bold}
-h2 {  font-family: Verdana, Arial, Helvetica, sans-serif; color: #3300CC}
-h3 {  font-family: Arial, Helvetica, sans-serif; font-weight: bold; color: #3300CC}
-a {  text-decoration: none; color: #9900FF}
-a:hover {  text-decoration: underline}
-h5 {  font-family: Verdana, Arial, Helvetica, sans-serif}
--->
-</style>
-</head>
-
-<body bgcolor="#FFFFFF">
-<h1 align="center"><img src="images/frantic_logo.gif" width="250" height="264" align="left">Ant 
-  2.0 Proposal</h1>
-<h2 align="center">Code Name - Frantic</h2>
-<p>Frantic hardly describes the proposal process...more like my coding and design 
-  efforts! I am relatively new to Ant and the mail list, and I have posted several 
-  emails recently regarding the use of DOM in the future of Ant. Once I discovered 
-  the mail archive (thanks Simeon), I had a chance to notice that many of my questions 
-  were asked before. My extemporaneous emails were not without consequence it 
-  seems. After writing one of them it set some wheels in motion for what I hope 
-  is a useful addition to the current (and growing) number of proposals for Ant 
-  2.0.</p>
-<center>
-<table width="50%" border="0" bgcolor="#9933FF" cellpadding="1" cellspacing="0">
-  <tr>
-    <td>
-      <table width="100%" border="0" cellpadding="4">
-          <tr bgcolor="#CCCCFF" align="center"> 
-            <td> 
-              <p>I think the concept behind Ant should be changed to be a "Task 
-                Execution Engine", and the concept of Project and Target can be 
-                generalized into a specific form of a Task.</p>
-            </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-</center>
-<p>&nbsp;</p>
-<p>The email list has received some requests from developers to extend Ant to 
-  support different problem domains. Peter Donald has latched onto this issue 
-  and I understand that he has incorporated some of these ideas into his Ant proposal. 
-  I also have seen some very impressive DOM support integrated into Antidote, 
-  an elegant basis for a GUI editor crafted by Simeon Fitch. Sim achieves a great 
-  deal of flexibility by using the W3C DOM as a superclass to his Project/Target/Task 
-  objects. He has, in effect, abstracted each of these &quot;core&quot; Ant objects 
-  until they are simply DOM nodes.</p>
-<p>Peter's and Sim's ideas struck a chord and I thought that Peter's desire to 
-  allow Ant to break free from the Build domain and into Install domains by extending 
-  Ant, could be achieved by looking at the problem from a different point of view. 
-  As I stated in my email, we can achieve a much higher degree of flexibility 
-  in Ant by generalizing more.</p>
-<h3>Design Proposal</h3>
-<p>I believe that Ant 2.0 should be re-termed a <b><i>Task Execution Engine</i></b>, 
-  and the core of Ant becomes the Engine and the Task. This seems a little radical 
-  considering that the Project/Target/Task object model has served us so well 
-  in Ant 1.x, however it is very clear that Project and Target are simple another 
-  type of Task.</p>
-<p>An enormous amount of code has been added to maintain Project and Target as 
-  separate classes with distinct, hard-coded behaviors. From the proof-of-concept 
-  code that I have been developing, I am inspired by how much more elegant the 
-  code becomes when this simplified model is realized. </p>
-
-<p>Having a base Task interface that all Tasks implement will also offer a generalized 
-  approach that benefits GUI's in much the same manner that the DOM has helped 
-  Antidote. Also, by making Task an interface instead of a class, we can finally 
-  free ourselves of implementation specifics.</p>
-<p>As I was writing the concept code, it struck me that I was too worried about 
-  the XML. Simeon Fitch mentioned in an email in early December, the possibility 
-  of storing build scripts in a database. I think this, along with various comments 
-  about DOM dependencies from Peter Donald, Jose Alberto Fernandez, and Stefan 
-  Bodewig made me realize that Core Ant shouldn't care where the build script 
-  lives or in which format it is stored. It is the object model that is primarily 
-  important.</p>
-<h3>The Task</h3>
-<p>The cornerstone of this proposal hinges on the <a href="Task.html" target="new">Task</a> 
-  Interface. It is the only type of external object that the Execution Engine 
-  knows how to handle. It is in this simplicity that the most powerful Ant can 
-  be realized.</p>
-<p>The Task is an object that is aware of it's place in ahierarchy. To this end 
-  it is aware of its parent and its children. Please note that this is a runtime 
-  dependency and a scripting language (or the Task itself) can dynamically change 
-  the relationship of Tasks.</p>
-<table border="0" align="left">
-  <tr> 
-    <td><img src="images/task_hierarchy.gif" width="200" height="140"></td>
-  </tr>
-  <tr align="center"> 
-    <td> 
-      <h5><i>Figure 1</i></h5>
-    </td>
-  </tr>
-</table>
-<p>Key to being able to manipulate Tasks at runtime is some sort of naming conventions. 
-  Currently in the Frantic design is the concept of a Task name. Tasks, being 
-  hierarchical, can be thought of as a directory structure (see figure 1). If 
-  each Task is assigned a name that is unique among its siblings, we can then 
-  have a powerful means of locating and referencing a particular Task anywhere 
-  in the hierarchy. </p>
-<p>For example, the Property Task below the Target named &quot;build&quot; has 
-  a name of &quot;prop3&quot;, however its &quot;fully-qualified&quot; name is 
-  /root/build/prop3. The root of a Task execution list is &quot;/&quot; and the 
-  tag name, in our example /root. In the concept source code I use this principal 
-  of hierarchical naming to support dependencies. Currently, I am treating these 
-  Task names as directories and not as files. This should perhaps change slightly 
-  to the filename approach. In the directory-based approach, a sibling is named 
-  &quot;../sibling&quot;. It would be more convenient to not require the &quot;../&quot;. 
-  In fact, I think I have convinced myself of this.</p>
-<h3> Task Discovery</h3>
-<p>I haven't coded this portion, however I plan on basing it on Duncan's idea 
-  of using the Jar manifests to locate and identify tasks on the classpath. I 
-  was first exposed to this technique in the OpenTools API of Borland's JBuilder 
-  IDE, and I have since used it on a large project for a consulting customer.</p>
-<p>The classpath is scanned at runtime to locate all directories and jar files. 
-  These directories and jar files will have a manifest file that will contain 
-  manifest entries that serve to tie a string token to the Task implementation 
-  class responsible for that token. Directories cannot have manifests per se, 
-  but we will utilize a file, one-level up from the directory, with a name &quot;directory-name.mf&quot;. 
-  This file will be in the format of a manifest file. This will allow developers 
-  to create and test new Tasks without the burden of having to make a Jar archive 
-  every time.</p>
-<h3>Attribute Validation</h3>
-<p>Brett McLaughlin introduced a very interesting techique to perform object validation 
-  using XML Schema in a series of <a href="http://www.javaworld.com/javaworld/jw-09-2000/jw-0908-validation.html">JavaWorld 
-  articles</a>. I can see this technique applied to Tasks as well. The user could 
-  include a schema with a special name in the jar file that accompanies the Tasks. 
-  This schema could be used at runtime to validate a Task's attributes.</p>
-<p>I would imagine that this feature would be outside of what is considered &quot;core&quot; 
-  Ant.</p>
-<h3>The Execution Engine</h3>
-<p>The engine only knows how to process Task objects, and that is what makes it 
-  extremely efficient. It is modeled after how I believe a compiler, or command 
-  interpreter would function. It contains a call stack which I call a <i><b>task 
-  stack</b></i>, and this task stack is under complete control of the engine. 
-  This is not to say that Tasks cannot manipulate the task stack at runtime, because 
-  they do. However, all of this access takes place under the watchful eye of the 
-  execution engine. </p>
-<h3>Properties</h3>
-<p>Keeping track of properties is closely tied to the execution engine, and I 
-  modeled it in a manner consistent with how I believe compilers must work. I 
-  use the concept of a hierarchical series of hashtables that support the concept 
-  of scope in property lists.</p>
-<p>I had originally put the concept of a property into a Task and completely implemented 
-  the bugger. It turned out during testing that my logic was flawed. It seemed 
-  to work well at first...a property defined in a Task would be available to all 
-  child Tasks, but unavailable to any ancestors. When a Task requested the latest 
-  data on a property, it would look in its property list. If it wasn't found there, 
-  it would look in its parent's list, and so on. Instant scope.</p>
-<p>However, it became quickly apparent that properties are a &quot;runtime&quot; 
-  consideration. This is something that Jose Alberto Fernandez will not let any 
-  of us forget for long. :-) What I needed was to move this hierarchical chain 
-  of property lists into the engine. For each new Task executed, a new property 
-  list is created and also pushed onto the stack. It seems to work like a champ.</p>
-<p>I also coded up key substitution into the getParameterValue() events. They 
-  seem to work fine, although I haven't worked up enough test cases to be sure.</p>
-<p>One additional cool feature is that parameters need not only hold Strings. 
-  I thought that there would be occasions where properties will hold Tasks as 
-  well. I believe this will turn out to be a prime mechanism for creating reference 
-  id Tasks like the current FileSet objects and referring to them in other Tasks 
-  just as you would any property value.</p>
-<h3>Attributes</h3>
-<p>I haven't spent any time addresing what is currently referred to a Task's attributes 
-  in Ant 1.x. I still need to think about this concept some more, but as I dwell 
-  on what an attribute is, I keep coming back to the properties. Just like a property 
-  functions as a scoped variable, an attribute is the same thing. Albeit, its 
-  scope is limited to the Task that uses it, but so what.</p>
-<h3>Execution Events</h3>
-<p>The execution engine also supports a few key events that can occur during the 
-  execution lifecycle. Currently events exist for execution start/finish, task 
-  start/execute/finish, exceptions, and simple messaging. The messaging event 
-  allows Tasks to communicate in a standard way that will leverage the engine's 
-  event system to allow various front-ends to intelligently and appropriately 
-  process the output.</p>
-<h3>Scripting</h3>
-<p>I have no experience with incorporating a scripting engine into an engine, 
-  but I do know that this proposal should address the primary issues that surround 
-  such an integration. I think that two features which are absolutely essential 
-  are:</p>
-<p> Provide some sort of naming convention such that a particular Task can be 
-  found given an absolute name or a name relative to another Task. This is complete 
-  and working in the concept code.</p>
-<p>Leave all decisions regarding property evaluation and Task's knowledge of these 
-  properties until the last possible moment.</p>
-<h3>Recursive Tasks</h3>
-<p>I realize that Ant 1.x spent some clock cycles dedicated to resolving circular 
-  references in the Task definitions. I didn't spend any time on that intentionally. 
-  I am not so sure that the elimination of circular references is a good idea. 
-  Especially moving forward, with the incorporation of a scripting language, I 
-  can envision Tasks the assembler wants to execute repeatedly, perhaps even recursively. 
-  I think we should treat this the same way that any modern computer language 
-  would &#151; <i>caveat emptor</i>.</p>
-<h3>Summary</h3>
-<p>There is a lot more to do with this proposal and the concept code. It has been 
-  an exciting weekend getting these thoughts down and trying to back them up. 
-  I look forward to collaborating with others on the list if they wish to help 
-  me, even though I am in proposal phase. I certainly don't know much about XML 
-  parsing and I could use some ideas on how to further my starting model. I would 
-  love to show the Ant core model built in a Builder agnostic manner. Basically, 
-  I want XML to be an option, not a requirement.</p>
-<p>I would also be interested in perhaps building an adapter task that will allow 
-  Ant 1.x tasks to be reused unchanged in the Frantic proposal. The concept of 
-  a Task hasn't changed much, so perhaps this is a possibility.</p>
-<p>As always, your feedback is welcome. I expect that I have missed some major 
-  holes and I would like the opportunity to work with others to plug them up!</p>
-<p><a href="mailto:jimcook@visualxs.com">Jim Cook</a><br>
-  <a href="http://www.visualxs.com/">Visual XS</a></p>
-</body>
-</html>
diff --git a/proposal/mutant/build.xml b/proposal/mutant/build.xml
deleted file mode 100644
index b10c42a..0000000
--- a/proposal/mutant/build.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-<project default="jars">
-    <property name="src.dir" value="src/main"/>
-    <property name="component.src.dir" value="${src.dir}/org/apache/ant/component"/>
-    <property name="build.dir" value="build"/>
-    <property name="build.classes" value="build/classes"/>
-    <property name="component.classes.dir" value="org/apache/ant/component"/>
-    <property name="build.javadocs" value="build/javadocs"/>
-    <property name="build.lib" value="${build.dir}/lib"/>
-    <property name="frontend.manifest" value="${src.dir}/org/apache/ant/frontend/manifest.mf"/>
-    <property name="egg.manifest" value="${src.dir}/org/apache/ant/frontend/eggmanifest.mf"/>
-    
-    <target name="compile">
-        <mkdir dir="${build.classes}"/>
-        <depend srcdir="${src.dir}"
-                destdir="${build.classes}" closure="yes" 
-                cache="${build.dir}/depcache"/>
-        <javac srcdir="${src.dir}"
-               destdir="${build.classes}"
-               deprecation="true"
-               debug="true"/>
-    </target>
-
-    <target name="build-task">
-        <echo message="building Task jar from ${component.classes.dir}/${taskset}/**/*.class"/>
-        <jar jarfile="${build.lib}/task/${taskset}.tsk" 
-             basedir="${build.classes}">
-            <zipfileset dir="${component.src.dir}/${taskset}" 
-                        prefix="ANT-INF" 
-                        includes="antlib.xml"/>
-            <include name="${component.classes.dir}/${taskset}/**/*.class" />
-        </jar>
-    </target>
-
-    
-    <target name="jars" depends="compile">
-        <mkdir dir="${build.lib}"/>
-        <mkdir dir="${build.lib}/task"/>
-        <jar jarfile="${build.lib}/frontend.jar" 
-             basedir="${build.classes}"
-             manifest="${frontend.manifest}">
-            <include name="org/apache/ant/frontend/*.class" />
-        </jar>
-        <jar jarfile="${build.lib}/egg.jar" 
-             basedir="${build.classes}"
-             manifest="${egg.manifest}">
-            <include name="org/apache/ant/frontend/RemoteLauncher.class" />
-            <include name="org/apache/ant/core/support/AntClassLoader.class" />
-        </jar>
-        <jar jarfile="${build.lib}/core.jar" 
-             basedir="${build.classes}">
-            <include name="org/apache/ant/core/**/*.class" />
-        </jar>
-        <antcall target="build-task">
-            <param name="taskset" value="core"/>
-        </antcall>
-        <antcall target="build-task">
-            <param name="taskset" value="file"/>
-        </antcall>
-        <antcall target="build-task">
-            <param name="taskset" value="thread"/>
-        </antcall>
-        <copy todir="${build.lib}">
-          <fileset dir="lib"/>
-        </copy>
-    </target>
-    
-    <target name="clean">
-        <delete dir="${build.dir}"/>
-    </target>
-    
-    <target name="javadoc">
-        <mkdir dir="${build.javadocs}"/>
-        <javadoc packagenames="org.apache.*"
-                 sourcepath="${src.dir}"
-                 destdir="${build.javadocs}"
-                 author="true"
-                 version="true"
-                 windowtitle="Ant 2.0 API"
-                 doctitle="Ant 2.0"
-                 private="true"
-                 bottom="Copyright &#169; 2001 Apache Software Foundation. All Rights Reserved.">
-          <group title="Ant Core" packages="org.apache.ant.core*" />
-          <group title="Front End" packages="org.apache.ant.frontend*" />
-          <group title="XML Parsing" packages="org.apache.ant.xml*" />
-        </javadoc>
-    </target>
-</project>
\ No newline at end of file
diff --git a/proposal/mutant/src/bootstrap/org/apache/ant/bootstrap/BootstrapLoader.java b/proposal/mutant/src/bootstrap/org/apache/ant/bootstrap/BootstrapLoader.java
deleted file mode 100644
index d743218..0000000
--- a/proposal/mutant/src/bootstrap/org/apache/ant/bootstrap/BootstrapLoader.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.bootstrap;
-
-import java.io.*;
-import java.util.*;
-import java.util.zip.*;
-import java.lang.reflect.*;
-
-/**
- * Bootstrap class to build the rest of ant with a minimum of user intervention
- *
- * The bootstrap class is able to act as a class loader to load new classes/jars
- * into the VM in which it is running.
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */
-public class BootstrapLoader extends ClassLoader {
-    static public final String RECURSION_GUARD = "ant.bootstrap.recursionGuard";
-    static private final int BUFFER_SIZE = 1024;
-    
-    private String[] classpathElements;
-    
-    public BootstrapLoader(String classpath) {
-        StringTokenizer tokenizer = new StringTokenizer(classpath, File.pathSeparator);
-        classpathElements = new String[tokenizer.countTokens()];
-        
-        for (int i = 0; tokenizer.hasMoreTokens(); ++i) {
-            classpathElements[i] = tokenizer.nextToken();
-        }
-    }
-    
-    protected Class findClass(String name)
-                   throws ClassNotFoundException {
-        String resourceName = name.replace('.', '/') + ".class";
-        InputStream classStream = getResourceStream(resourceName);
-        
-        if (classStream == null) {
-            throw new ClassNotFoundException();
-        }
-        
-        try {            
-            return getClassFromStream(classStream, name);
-        }
-        catch (IOException ioe) {
-            ioe.printStackTrace();
-            throw new ClassNotFoundException();
-        }
-    }
-
-    /**
-     * Get a stream to read the requested resource name.
-     *
-     * @param name the name of the resource for which a stream is required.
-     *
-     * @return a stream to the required resource or null if the resource cannot be
-     * found on the loader's classpath.
-     */
-    private InputStream getResourceStream(String name) {
-        // we need to search the components of the path to see if we can find the 
-        // class we want. 
-        InputStream stream = null;
- 
-        for (int i = 0; i < classpathElements.length && stream == null; ++i) {
-            File pathComponent = new File(classpathElements[i]);
-            stream = getResourceStream(pathComponent, name);
-        }
-
-        return stream;
-    }
-    
-
-                   
-    /**
-     * Get a stream to read the requested resource name.
-     *
-     * @param name the name of the resource for which a stream is required.
-     *
-     * @return a stream to the required resource or null if the resource cannot be
-     * found on the loader's classpath.
-     */
-    public InputStream getResourceAsStream(String name) {
-        return getResourceStream(name);
-    }
-    
-    protected Class loadClass(String name,
-                              boolean resolve)
-                   throws ClassNotFoundException {
-        Class requestedClass = findLoadedClass(name);
-        try {
-            if (requestedClass == null) {
-                requestedClass = findClass(name);
-                if (resolve) {
-                    resolveClass(requestedClass);
-                }
-            }
-            return requestedClass;
-        }
-        catch (ClassNotFoundException cnfe) {
-            return super.loadClass(name, resolve);
-        }
-    }                    
-
-    /**
-     * Get an inputstream to a given resource in the given file which may
-     * either be a directory or a zip file.
-     *
-     * @param file the file (directory or jar) in which to search for the resource.
-     * @param resourceName the name of the resource for which a stream is required.
-     *
-     * @return a stream to the required resource or null if the resource cannot be
-     * found in the given file object
-     */
-    private InputStream getResourceStream(File file, String resourceName) {
-        try {
-            if (!file.exists()) {
-                return null;
-            }
-            
-            if (file.isDirectory()) {
-                File resource = new File(file, resourceName); 
-                
-                if (resource.exists()) {   
-                    return new FileInputStream(resource);
-                }
-            }
-            else {
-                ZipFile zipFile = null;
-                try {
-                    zipFile = new ZipFile(file);
-        
-                    ZipEntry entry = zipFile.getEntry(resourceName);
-                    if (entry != null) {
-                        // we need to read the entry out of the zip file into
-                        // a baos and then 
-                        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-                        byte[] buffer = new byte[BUFFER_SIZE];
-                        int bytesRead;
-                        InputStream stream = zipFile.getInputStream(entry);
-                        while ((bytesRead = stream.read(buffer, 0, BUFFER_SIZE)) != -1) {
-                            baos.write(buffer, 0, bytesRead);
-                        }
-                        return new ByteArrayInputStream(baos.toByteArray());   
-                    }
-                }
-                finally {
-                    if (zipFile != null) {
-                        zipFile.close();
-                    }
-                }
-            }
-        }
-        catch (Exception e) {
-            e.printStackTrace();
-        }
-        
-        return null;   
-    }
-
-    /**
-     * Read a class definition from a stream.
-     *
-     * @param stream the stream from which the class is to be read.
-     * @param classname the class name of the class in the stream.
-     *
-     * @return the Class object read from the stream.
-     *
-     * @throws IOException if there is a problem reading the class from the
-     * stream.
-     */
-    private Class getClassFromStream(InputStream stream, String classname) 
-                throws IOException {
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        int bytesRead = -1;
-        byte[] buffer = new byte[1024];
-        
-        while ((bytesRead = stream.read(buffer, 0, 1024)) != -1) {
-            baos.write(buffer, 0, bytesRead);
-        }
-        
-        byte[] classData = baos.toByteArray();
-
-        return defineClass(classname, classData, 0, classData.length); 
-    }
-
-
-    static private void buildAnt() {
-        System.out.println("Bootstrapping Ant ...");
-        
-    }
-
-    static private void runWithToolsJar(String[] args) {
-        try {
-            
-            String javaHome = System.getProperty("java.home");
-            if (javaHome.endsWith("jre")) {
-                javaHome = javaHome.substring(0, javaHome.length() - 4);
-            }
-            File toolsjar = new File(javaHome + "/lib/tools.jar");
-            if (!toolsjar.exists()) {
-                System.out.println("Unable to locate tools.jar. expected it to be in " +
-                                           toolsjar.getPath());
-                return;                                           
-            }                                            
-            String newclasspath = toolsjar.getPath() + File.pathSeparator + 
-                                  System.getProperty("java.class.path");
-            
-            System.out.println("New Classpath is " + newclasspath);
-            
-            BootstrapLoader loader = new BootstrapLoader(newclasspath);
-            
-            Class newBootClass = loader.loadClass("org.apache.ant.bootstrap.BootstrapLoader",
-                                                  true);
-            final Class[] param = { Class.forName("[Ljava.lang.String;") };
-            final Method main = newBootClass.getMethod("main", param);
-            final Object[] argument = { args };
-            main.invoke(null, argument);
-        }
-        catch (Exception e) {
-            e.printStackTrace();
-            throw new RuntimeException("Unable to run boot with tools.jar");
-        }
-    }
-    
-    static public void main(String[] args) {
-        // check whether the tools.jar is already in the classpath.
-        try {
-            Class compilerClass = Class.forName("sun.tools.javac.Main");
-            System.out.println("Compiler is available");
-        } catch (ClassNotFoundException cnfe) {
-            if (System.getProperty(RECURSION_GUARD) != null) {
-                cnfe.printStackTrace();
-                System.out.println("Unable to load compiler");
-                return;
-            }
-            System.setProperty(RECURSION_GUARD, "yes");
-            System.out.println("Compiler is not on classpath - locating ...");
-            runWithToolsJar(args);
-            return;                                                           
-        }
-        
-        buildAnt();
-    }
-}
-
-
diff --git a/proposal/mutant/src/main/org/apache/ant/component/core/AntAspectHandler.java b/proposal/mutant/src/main/org/apache/ant/component/core/AntAspectHandler.java
deleted file mode 100644
index 1b69174..0000000
--- a/proposal/mutant/src/main/org/apache/ant/component/core/AntAspectHandler.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000 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 "The Jakarta Project", "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.ant.component.core;
-
-import java.io.File;
-import java.net.*;
-import org.apache.ant.core.execution.*;
-
-/**
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */
-public class AntAspectHandler extends AbstractAspectHandler {
-    private String id;
-    
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public void afterConfigElement(Object element) throws ExecutionException {
-        getAspectContext().setDataValue(id, element);
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/component/core/Echo.java b/proposal/mutant/src/main/org/apache/ant/component/core/Echo.java
deleted file mode 100644
index a2305c9..0000000
--- a/proposal/mutant/src/main/org/apache/ant/component/core/Echo.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.component.core;
-
-import org.apache.ant.core.execution.*;
-import org.apache.ant.core.types.*;
-import java.io.*;
-
-/**
- * Echo
- *
- * @author costin@dnt.ro
- */
-public class Echo extends AbstractTask {
-    protected String message = ""; // required
-    protected File file = null;
-    protected boolean append = false;
-    
-    // by default, messages are always displayed
-    protected int logLevel = BuildEvent.MSG_WARN;   
-    
-    /**
-     * Does the work.
-     *
-     * @throws ExecutionException if someting goes wrong with the build
-     */
-    public void execute() throws ExecutionException {
-        if (file == null) {
-            log(message, logLevel);
-        } else {
-            FileWriter out = null;
-            try {
-                out = new FileWriter(file.getAbsolutePath(), append);
-                out.write(message, 0, message.length());
-            } catch (IOException ioe) {
-                throw new ExecutionException(ioe);
-            } finally {
-                if (out != null) {
-                    try {
-                        out.close();
-                    } catch (IOException ioex) {}
-                }
-            }
-        }
-    }
-
-    /**
-     * Sets the message variable.
-     *
-     * @param msg Sets the value for the message variable.
-     */
-    public void setMessage(String msg) {
-        this.message = msg;
-    }
-
-    /**
-     * Sets the file attribute.
-     */
-    public void setFile(File file) {
-        this.file = file;
-    }
-
-    /**
-     * Shall we append to an existing file?
-     */
-    public void setAppend(boolean append) {
-        this.append = append;
-    }
-
-    /**
-     * Set a multiline message.
-     */
-    public void addText(String msg) {
-        message += msg;
-    }
-
-    /**
-     * Set the logging level to one of
-     * <ul>
-     *  <li>error</li>
-     *  <li>warning</li>
-     *  <li>info</li>
-     *  <li>verbose</li>
-     *  <li>debug</li>
-     * <ul>
-     * <p>The default is &quot;warning&quot; to ensure that messages are
-     * displayed by default when using the -quiet command line option.</p>
-     */
-    public void setLevel(EchoLevel echoLevel) {
-        String option = echoLevel.getValue();
-        if (option.equals("error")) {
-            logLevel = BuildEvent.MSG_ERR;
-        } else if (option.equals("warning")) {
-            logLevel = BuildEvent.MSG_WARN;
-        } else if (option.equals("info")) {
-            logLevel = BuildEvent.MSG_INFO;
-        } else if (option.equals("verbose")) {
-            logLevel = BuildEvent.MSG_VERBOSE;
-        } else {
-            // must be "debug"
-            logLevel = BuildEvent.MSG_DEBUG;
-        }
-    }
-
-    public static class EchoLevel extends EnumeratedAttribute {
-        public String[] getValues() {
-            return new String[] {"error", "warning", "info", "verbose", "debug"};
-        }
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/component/core/EnumeratedAttributeConverter.java b/proposal/mutant/src/main/org/apache/ant/component/core/EnumeratedAttributeConverter.java
deleted file mode 100644
index 3380906..0000000
--- a/proposal/mutant/src/main/org/apache/ant/component/core/EnumeratedAttributeConverter.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000 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 "The Jakarta Project", "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.ant.component.core;
-
-import org.apache.ant.core.execution.*;
-import org.apache.ant.core.types.EnumeratedAttribute;
-
-/**
- * Convert between a string and an enumeration
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */
-public class EnumeratedAttributeConverter implements AntConverter {
-    private ExecutionFrame frame;
-    
-    public void init(ExecutionFrame frame) {
-        this.frame = frame;
-    }
-    
-    public Object convert(String value, Class type) throws ConversionException {
-        // The string represents a value
-        // get the frame's URL
-        try {
-            Object instance = type.newInstance();
-            if (!(instance instanceof EnumeratedAttribute)) {
-                throw new ConversionException("The type " + type.getName() 
-                                             + " is not a subclass of EnumeratedAttribute");
-            }
-            EnumeratedAttribute enum = (EnumeratedAttribute)instance;
-            enum.setValue(value.trim());
-            return enum;
-        }
-        catch (InstantiationException e) {
-            throw new ConversionException("Unable to instantiate the enumerated type "
-                                          + type.getName());
-        }
-        catch (IllegalAccessException e) {
-            throw new ConversionException("Illegale access when instantiation enumerated type "
-                                          + type.getName());
-        }
-        catch (ExecutionException e) {
-            throw new ConversionException("Unable to set the value of the enumerated type "
-                                          + type.getName() + ": " + e.getMessage());
-        }                                                      
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/component/core/FileConverter.java b/proposal/mutant/src/main/org/apache/ant/component/core/FileConverter.java
deleted file mode 100644
index 0352d6d..0000000
--- a/proposal/mutant/src/main/org/apache/ant/component/core/FileConverter.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000 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 "The Jakarta Project", "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.ant.component.core;
-
-import java.io.File;
-import java.net.*;
-import org.apache.ant.core.execution.*;
-
-/**
- * Convert between a string and a data type
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */
-public class FileConverter implements AntConverter {
-    private ExecutionFrame frame;
-    
-    public void init(ExecutionFrame frame) {
-        this.frame = frame;
-    }
-    
-    public Object convert(String value, Class type) throws ConversionException {
-        // The string represents a value
-        // get the frame's URL
-        try {
-            URL url = new URL(frame.getBaseURL(), value);
-            if (url.getProtocol().equals("file")) {
-                return new File(url.getFile());
-            }
-        }
-        catch (MalformedURLException e) {
-            // ignore and return as a file.
-        }
-        return new File(value);
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/component/core/Property.java b/proposal/mutant/src/main/org/apache/ant/component/core/Property.java
deleted file mode 100644
index 0e964d3..0000000
--- a/proposal/mutant/src/main/org/apache/ant/component/core/Property.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.component.core;
-
-import java.util.*;
-import java.io.*;
-import org.apache.ant.core.execution.*;
-import java.net.*;
-
-/**
- * 
- */ 
-public class Property extends AbstractTask {
-    private String name;
-    private String value;
-    private URL file;
-    private String resource;
-//    private Path classpath;
-    private String env;
-//    private Reference ref = null;
-    
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setValue(String value) {
-        this.value = value;
-    }
-
-    public String getValue() {
-        return value;
-    }
-
-    public void setFile(URL file) {
-        this.file = file;
-    }
-
-    public URL getFile() {
-        return file;
-    }
-
-    public void setLocation(File location) {
-        setValue(location.getAbsolutePath());
-    }
-
-//    public void setRefid(Reference ref) {
-//        this.ref = ref;
-//    }
-//
-//    public Reference getRefid() {
-//        return ref;
-//    }
-//
-    public void setResource(String resource) {
-        this.resource = resource;
-    }
-
-    public String getResource() {
-        return resource;
-    }
-
-    public void setEnvironment(String env) {
-        this.env = env;
-    }
-
-    public String getEnvironment() {
-        return env;
-    }
-
-//    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(project);
-//        }
-//        return this.classpath.createPath();
-//    }
-//    
-//    public void setClasspathRef(Reference r) {
-//        createClasspath().setRefid(r);
-//    }
-//
-
-    public void execute() throws ExecutionException {
-        if ((name != null) && (value != null)) {
-            getTaskContext().setDataValue(name, value);
-        }
-
-        if (file != null) {
-            loadFile(file);
-        }
-
-//        if (resource != null) loadResource(resource);
-//
-//        if (env != null) loadEnvironment(env);
-//
-//        if ((name != null) && (ref != null)) {
-//            Object obj = ref.getReferencedObject(getProject());
-//            if (obj != null) {
-//                addProperty(name, obj.toString());
-//            }
-//        }
-    }
-
-    protected void loadFile (URL url) throws ExecutionException {
-        Properties props = new Properties();
-        log("Loading " + url, BuildEvent.MSG_VERBOSE);
-        try {
-            InputStream stream = null;
-            if (url.getProtocol().equals("file")) {
-                File file = new File(url.getFile());
-            
-                if (file.exists()) {
-                    stream = new FileInputStream(file);
-                } 
-            }
-            else {
-                stream = url.openStream();
-            }
-            
-            if (stream != null) {
-                try { 
-                    props.load(stream);
-                    resolveAllProperties(props);
-                    addProperties(props);
-                } finally {
-                    stream.close();
-                }
-            }
-        } catch (IOException e) {
-            throw new ExecutionException("Unable to load property file: " + url, e);
-        }
-    }
-
-    protected void addProperties(Properties properties) throws ExecutionException {
-        for (Iterator i = properties.keySet().iterator(); i.hasNext();) {
-            String propertyName = (String)i.next();
-            String propertyValue = properties.getProperty(propertyName);
-            getTaskContext().setDataValue(propertyName, 
-                                          getTaskContext().replacePropertyRefs(propertyValue));
-        }
-    }
-
-    private void resolveAllProperties(Properties props) throws ExecutionException {
-        for (Iterator propIterator = props.keySet().iterator(); propIterator.hasNext();) {
-            String name = (String)propIterator.next();
-            String value = props.getProperty(name);
-
-            boolean resolved = false;
-            while (!resolved) {
-                List fragments = new ArrayList();
-                List propertyRefs = new ArrayList();
-                ExecutionFrame.parsePropertyString(value, fragments, propertyRefs);
-                
-                resolved = true;
-                if (propertyRefs.size() != 0) {
-                    StringBuffer sb = new StringBuffer();
-                    Iterator i = fragments.iterator();
-                    Iterator j = propertyRefs.iterator();
-                    while (i.hasNext()) {
-                        String fragment = (String)i.next();
-                        if (fragment == null) {
-                            String propertyName = (String)j.next();
-                            if (propertyName.equals(name)) {
-                                throw new ExecutionException("Property " + name 
-                                                             + " from " + file 
-                                                             + " was circularly defined.");
-                            }
-                            if (props.containsKey(propertyName)) {
-                                fragment = props.getProperty(propertyName);
-                                resolved = false;
-                            }
-                            else {
-                                fragment = "${" + propertyName + "}";
-                            }
-                        }
-                        sb.append(fragment);
-                    }
-                    value = sb.toString();
-                    props.put(name, value);
-                }
-            }
-        }
-    }    
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/component/core/URLConverter.java b/proposal/mutant/src/main/org/apache/ant/component/core/URLConverter.java
deleted file mode 100644
index 94029db..0000000
--- a/proposal/mutant/src/main/org/apache/ant/component/core/URLConverter.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000 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 "The Jakarta Project", "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.ant.component.core;
-
-import org.apache.ant.core.execution.*;
-
-import java.net.*;
-import java.io.File;
-
-/**
- * Convert between a string and a URL, resolved to the ExecutionFrame's base
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */
-public class URLConverter implements AntConverter {
-    private ExecutionFrame frame;
-    
-    public void init(ExecutionFrame frame) {
-        this.frame = frame;
-    }
-    
-    public Object convert(String value, Class type) throws ConversionException {
-        // The string represents a value
-        // get the frame's URL
-        try {
-            URL url = new URL(frame.getBaseURL(), value);
-            return url;
-        }
-        catch (MalformedURLException e) {
-            //try a local file
-            try {
-                File file = new File(value);
-                return file.toURL();
-            }
-            catch (MalformedURLException e2) {
-                throw new ConversionException("Unable to convert " + value 
-                                              + " into a URL relative to the project's base");
-            }                                              
-        }
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/component/core/antlib.xml b/proposal/mutant/src/main/org/apache/ant/component/core/antlib.xml
deleted file mode 100644
index f3ef4d7..0000000
--- a/proposal/mutant/src/main/org/apache/ant/component/core/antlib.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<antlib>
-   <!-- Tasks -->
-   <taskdef name="property" classname="org.apache.ant.component.core.Property"/>
-   <taskdef name="echo" classname="org.apache.ant.component.core.Echo"/>
-   
-   <!-- Data Types -->
-   <taskdef name="patternset" classname="org.apache.ant.core.types.PatternSet"/>
-   <taskdef name="fileset" classname="org.apache.ant.core.types.FileSet"/>
-   
-   <!-- Converters -->
-   <converter target="java.io.File" classname="org.apache.ant.component.core.FileConverter"/>
-   <converter target="java.net.URL" classname="org.apache.ant.component.core.URLConverter"/>
-   <converter target="org.apache.ant.core.types.EnumeratedAttribute" 
-              classname="org.apache.ant.component.core.EnumeratedAttributeConverter"/>
-              
-   <!-- Aspect Handlers -->
-   <aspect prefix="ant" classname="org.apache.ant.component.core.AntAspectHandler"/>              
-</antlib>
\ No newline at end of file
diff --git a/proposal/mutant/src/main/org/apache/ant/component/file/antlib.xml b/proposal/mutant/src/main/org/apache/ant/component/file/antlib.xml
deleted file mode 100644
index df7f87c..0000000
--- a/proposal/mutant/src/main/org/apache/ant/component/file/antlib.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<antlib>
-</antlib>
\ No newline at end of file
diff --git a/proposal/mutant/src/main/org/apache/ant/component/thread/Parallel.java b/proposal/mutant/src/main/org/apache/ant/component/thread/Parallel.java
deleted file mode 100644
index eb5e226..0000000
--- a/proposal/mutant/src/main/org/apache/ant/component/thread/Parallel.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.component.thread;
-
-import org.apache.ant.core.execution.*;
-import java.io.*;
-import java.util.*;
-
-/**
- * Parallel execution of contained tasks.
- *
- */
-public class Parallel extends AbstractTask implements TaskContainer {
-    private List tasks = new ArrayList();
-    
-    public void addTask(Task nestedTask) {
-        tasks.add(nestedTask);
-    }
-
-    public void execute() throws ExecutionException {
-        for (Iterator i = tasks.iterator(); i.hasNext(); ) {
-            Task nestedTask = (Task)i.next();
-            nestedTask.execute();
-        }
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/component/thread/Sequential.java b/proposal/mutant/src/main/org/apache/ant/component/thread/Sequential.java
deleted file mode 100644
index 3ae824c..0000000
--- a/proposal/mutant/src/main/org/apache/ant/component/thread/Sequential.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.component.thread;
-
-import org.apache.ant.core.execution.*;
-import java.io.*;
-import java.util.*;
-
-/**
- * Sequential execution of contained tasks.
- *
- */
-public class Sequential extends AbstractTask implements TaskContainer {
-    private List tasks = new ArrayList();
-    
-    public void addTask(Task nestedTask) {
-        tasks.add(nestedTask);
-    }
-
-    public void execute() throws ExecutionException {
-        for (Iterator i = tasks.iterator(); i.hasNext(); ) {
-            Task nestedTask = (Task)i.next();
-            nestedTask.execute();
-        }
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/component/thread/antlib.xml b/proposal/mutant/src/main/org/apache/ant/component/thread/antlib.xml
deleted file mode 100644
index 1b22f56..0000000
--- a/proposal/mutant/src/main/org/apache/ant/component/thread/antlib.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<antlib>
-   <taskdef name="parallel" classname="org.apache.ant.component.thread.Parallel"/>
-   <taskdef name="sequential" classname="org.apache.ant.component.thread.Sequential"/>
-</antlib>
\ No newline at end of file
diff --git a/proposal/mutant/src/main/org/apache/ant/core/config/ComponentManager.java b/proposal/mutant/src/main/org/apache/ant/core/config/ComponentManager.java
deleted file mode 100644
index e37358b..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/config/ComponentManager.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.config;
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.*;
-import org.apache.ant.core.execution.*;
-import org.apache.ant.core.support.*;
-import org.apache.ant.core.xml.AntLibParser;
-import org.xml.sax.SAXParseException;
-
-/**
- * Manager for Ant components
- *
- * The component manager is responsible for locating and loading the 
- * components contained in Ant's lib/task directory.
- * 
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class ComponentManager {
-    /**
-     * When Ant is run remotely, we need to look up the list of component
-     * libraries from the server.
-     */
-    static public String COMPONENT_INDEX = "taskindex";
-    
-    /**
-     * Create the component manager. When the component manager is created
-     * it will read the component definitions from the  files in
-     * Ant's lib/task directory
-     */ 
-    static public AntLibrary[] getComponents() throws LocationException, ConfigException {
-        try {
-            URL componentsLocation = new URL(AntLocator.getLibraryURL(), "task/");
-            URL[] componentFiles = null;
-            if (componentsLocation.getProtocol().equals("file")) {
-                // component directory is local - we determine the 
-                // component files by scanning the local directory
-                HashSet componentFilesTypes = new HashSet();
-                componentFilesTypes.add(".tsk");
-                componentFilesTypes.add(".jar");
-                componentFilesTypes.add(".zip");
-                File componentsDirectory = new File(componentsLocation.getFile());
-                componentFiles = AntLocator.getDirectoryURLs(componentsDirectory, componentFilesTypes);
-            }
-            else {
-                // The component directory is remote - we determine the
-                // list of component files by reading a "known"  list file.
-                URL componentListURL = new URL(componentsLocation, COMPONENT_INDEX);
-                BufferedReader reader = null;
-                List componentList = new ArrayList();
-                try {
-                    reader = new BufferedReader(new InputStreamReader(componentListURL.openStream()));
-                    String line = null;
-                    while ((line = reader.readLine()) != null) {
-                        componentList.add(new URL(componentsLocation, line.trim()));
-                    }
-                }
-                finally {
-                    if (reader != null) {
-                        reader.close();
-                    }
-                }
-                componentFiles = (URL[])componentList.toArray(new URL[0]);
-            }
-                        
-            AntLibParser libdefParser = new AntLibParser();
-            
-            List libraries = new ArrayList();
-            
-            for (int i = 0; i < componentFiles.length; ++i) {
-                // We create a classloader for the component library
-                URL[] componentURLs = new URL[]{componentFiles[i]};
-                AntClassLoader componentClassLoader 
-                    = new AntClassLoader(componentURLs, 
-                                         ComponentManager.class.getClassLoader(),
-                                         componentFiles[i].toString());
-                URL libDefinition = componentClassLoader.getResource("ANT-INF/antlib.xml");
-                if (libDefinition != null) {
-                    AntLibrary library 
-                        = libdefParser.parseAntLibrary(libDefinition, componentClassLoader);
-                    libraries.add(library);                            
-                }
-            }
-            
-            return (AntLibrary[])libraries.toArray(new AntLibrary[0]);
-        }
-        catch (IOException e) {
-            throw new ConfigException(e);
-        }
-    }
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/AbstractAspectHandler.java b/proposal/mutant/src/main/org/apache/ant/core/execution/AbstractAspectHandler.java
deleted file mode 100644
index bd7f903..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/AbstractAspectHandler.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.execution;
-
-import org.apache.ant.core.model.*;
-import org.apache.ant.core.support.*;
-import java.util.*;
-import java.net.URL;
-
-/**
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public abstract class AbstractAspectHandler implements AspectHandler {
-    private ExecutionContext aspectContext;
-    
-    public void setAspectContext(ExecutionContext context) {
-        this.aspectContext = context;
-    }
-
-    protected ExecutionContext getAspectContext() {
-        return aspectContext;
-    }
-    
-    public void beforeConfigElement(Object element) throws ExecutionException  {
-}
-
-    public void afterConfigElement(Object element) throws ExecutionException  {
-    }
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/AbstractTask.java b/proposal/mutant/src/main/org/apache/ant/core/execution/AbstractTask.java
deleted file mode 100644
index 9fac29a..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/AbstractTask.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.execution;
-
-import org.apache.ant.core.model.*;
-import org.apache.ant.core.support.*;
-import java.util.*;
-import java.net.URL;
-
-/**
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public abstract class AbstractTask implements Task {
-    private ExecutionContext taskContext;
-    
-    public void setTaskContext(ExecutionContext context) {
-        this.taskContext = context;
-    }
-
-    protected ExecutionContext getTaskContext() {
-        return taskContext;
-    }
-    
-    /**
-     * Log a message with the default (INFO) priority.
-     *
-     * @param msg the message to be logged.
-     */
-    public void log(String msg) {
-        log(msg, BuildEvent.MSG_INFO);
-    }
-    
-    /**
-     * Log a mesage with the give priority.
-     *
-     * @param the message to be logged.
-     * @param msgLevel the message priority at which this message is to be logged.
-     */
-    public void log(String msg, int msgLevel) {
-        taskContext.log(msg, msgLevel);
-    }
-
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/AntConverter.java b/proposal/mutant/src/main/org/apache/ant/core/execution/AntConverter.java
deleted file mode 100644
index 314e589..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/AntConverter.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000 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 "The Jakarta Project", "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.ant.core.execution;
-
-/**
- * An AntConverter is a Converter which is initialised with the 
- * ExecutionFrame context in which it will perform its conversions
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */
-public interface AntConverter extends Converter {
-    void init(ExecutionFrame frame);
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/AntLibrary.java b/proposal/mutant/src/main/org/apache/ant/core/execution/AntLibrary.java
deleted file mode 100644
index 6e48731..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/AntLibrary.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.execution;
-
-import org.apache.ant.core.support.*;
-import java.util.*;
-import java.net.URL;
-
-/**
- * This object represents an Ant library definition. An Ant library
- * is a set of plug-in for Ant consisting primarily of tasks but may include
- * other ant components.
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class AntLibrary {
-    /**
-     * The task definitions contained by this library
-     */
-    private Map taskDefinitions = new HashMap();
-    
-    /**
-     * The converter definitions contained by this library
-     */
-    private Map converterDefinitions = new HashMap();
-    
-    /**
-     * The aspect handler definitions contained by this library
-     */
-    private Map aspectDefinitions = new HashMap();
-    
-    /**
-     * Add a task definition to this library
-     */
-    public void addTaskDefinition(TaskDefinition taskDefinition) {
-        String taskName = taskDefinition.getName();
-        taskDefinitions.put(taskName, taskDefinition);
-    }
-    
-    /**
-     * Add a converter definition to this library
-     */
-    public void addConverterDefinition(ConverterDefinition converterDef) {
-        String targetClassname = converterDef.getTargetClassName();
-        converterDefinitions.put(targetClassname, converterDef);
-    }
-
-    /**
-     * Add an aspect handler definition to this library
-     */
-    public void addAspectDefinition(AspectDefinition aspectDef) {
-        String aspectPrefix = aspectDef.getAspectPrefix();
-        aspectDefinitions.put(aspectPrefix, aspectDef);
-    }
-
-    /**
-     * Get the task definitions
-     *
-     * @return an iterator which returns TaskDefinition objects.
-     */
-    public Iterator getTaskDefinitions() {
-        return taskDefinitions.values().iterator();
-    }
-    
-   
-    /**
-     * Get the converter definitions
-     *
-     * @return an iterator which returns ConverterDefinition objects.
-     */
-    public Iterator getConverterDefinitions() {
-        return converterDefinitions.values().iterator();
-    }
-
-    /**
-     * Get the aspect handler definitions
-     *
-     * @return an iterator which returns AspectDefinition objects.
-     */
-    public Iterator getAspectDefinitions() {
-        return aspectDefinitions.values().iterator();
-    }
-    
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/AspectDefinition.java b/proposal/mutant/src/main/org/apache/ant/core/execution/AspectDefinition.java
deleted file mode 100644
index 5a20ec3..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/AspectDefinition.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.execution;
-
-import java.util.*;
-import java.net.URL;
-
-/**
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class AspectDefinition {
-    /** The URL of the library which defines this aspect handler */
-    private URL aspectLibraryURL;
-     
-    /** The aspect's tag */
-    private String aspectPrefix;
-    
-    /** The aspect handler's classname */
-    private String aspectClassName;
-    
-    /** The aspect handler's class loader. */
-    private ClassLoader aspectClassLoader;
-    
-    /** The class to which this converter converts. */
-    private Class aspectHandlerClass = null;
-
-    public AspectDefinition(URL aspectLibraryURL, String aspectPrefix, 
-                            String aspectClassName, ClassLoader aspectClassLoader) {
-        this.aspectLibraryURL = aspectLibraryURL;
-        this.aspectPrefix = aspectPrefix;
-        this.aspectClassName = aspectClassName;
-        this.aspectClassLoader = aspectClassLoader;
-    }
-    
-    /**
-     * Get the URL where this aspect handler was defined.
-     *
-     * @returns a URL of the lib defintion file
-     */
-    public URL getLibraryURL() {
-        return aspectLibraryURL;
-    }
-    
-    /**
-     * Get the Aspect's Prefix
-     */
-    public String getAspectPrefix() {
-        return aspectPrefix;
-    }
-
-
-    /**
-     * Get the aspect handler class
-     *
-     * @return a class object for this aspect handler's class
-     */
-    public synchronized Class getAspectHandlerClass() throws ClassNotFoundException {
-        if (aspectHandlerClass == null) {
-            aspectHandlerClass = Class.forName(aspectClassName, true, aspectClassLoader);
-        }
-        return aspectHandlerClass;
-    }
-    
-    /**
-     * Get the classname of the aspect handler that is being defined.
-     */
-    public String getAspectHandlerClassName() {
-        return aspectClassName;
-    }
-    
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/AspectHandler.java b/proposal/mutant/src/main/org/apache/ant/core/execution/AspectHandler.java
deleted file mode 100644
index 5a586dc..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/AspectHandler.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.execution;
-
-import org.apache.ant.core.model.*;
-import org.apache.ant.core.support.*;
-import java.util.*;
-import java.net.URL;
-
-/**
- * An AspectHandler is used to handle a set of aspects which may occur in a number
- * of elements in the build model.
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public interface AspectHandler {
-   
-    void setAspectContext(ExecutionContext context);
-    
-    void beforeConfigElement(Object element) throws ExecutionException ;
-    void afterConfigElement(Object element) throws ExecutionException ;
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/BuildEvent.java b/proposal/mutant/src/main/org/apache/ant/core/execution/BuildEvent.java
deleted file mode 100644
index 40cf633..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/BuildEvent.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * 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 "The Jakarta Project", "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.ant.core.execution;
-
-import java.util.EventObject;
-import org.apache.ant.core.model.*;
-
-/*
- * A BuildEvent indicates the occurence of a significant event
- * in the build.
- *
- * All build events come from an ExecutionFrame or an ExecutionManager.
- * There are a number of different types of event and they will
- * generally be associated with some build element from the build model.
- */
-public class BuildEvent extends EventObject {
-    public static final int MSG_ERR = 0;
-    public static final int MSG_WARN = 1;
-    public static final int MSG_INFO = 2;
-    public static final int MSG_VERBOSE = 3;
-    public static final int MSG_DEBUG = 4;
-
-    public static final int BUILD_STARTED = 1;
-    public static final int BUILD_FINISHED = 2;
-    public static final int TARGET_STARTED = 3;
-    public static final int TARGET_FINISHED = 4;
-    public static final int TASK_STARTED = 5;
-    public static final int TASK_FINISHED = 6;
-    public static final int MESSAGE = 7;
-
-    private int eventType;
-    private BuildElement buildElement = null;
-    private Throwable cause = null;
-    private String message = null;
-    private int messagePriority;
-
-    /**
-     * Create a build event. 
-     * 
-     * @param soure the source of the build event.
-     * @param eventType the type of the buildEvent.
-     * @param buildElement the build element with which the event is associated.
-     */
-    public BuildEvent(Object source, int eventType, BuildElement buildElement) {
-        super(source);
-        this.eventType = eventType;
-        this.buildElement = buildElement;
-    }
-    
-    /**
-     * Create a build event with an associated exception. 
-     * 
-     * @param soure the source of the build event.
-     * @param eventType the type of the buildEvent.
-     * @param buildElement the build element with which the event is associated.
-     */
-    public BuildEvent(Object source, int eventType, BuildElement buildElement, 
-                      Throwable cause) {
-        this(source, eventType, buildElement);                        
-        this.cause = cause;
-    }
-
-    /**
-     * Create a build event for a message 
-     * 
-     * @param soure the source of the build event.
-     * @param buildElement the build element with which the event is associated.
-     * @param message the message associated with this event
-     * @param priority the message priority
-     */
-    public BuildEvent(Object source, BuildElement buildElement, String message, 
-                      int priority) {
-        this(source, MESSAGE, buildElement);                        
-        this.message = message;
-        this.messagePriority = priority;
-    }
-    
-    /**
-     * Get the type of this event
-     *
-     * @return the event type
-     */
-    public int getEventType() {
-        return eventType;
-    }
-    
-    /**
-     * Get the build element involved in this event.
-     *
-     * @return the build element to which this event is associated.
-     */
-    public BuildElement getBuildElement() {
-        return buildElement;
-    }
-    
-    /**
-     *  Returns the logging message. This field will only be set
-     *  for "messageLogged" events.
-     *
-     */
-    public String getMessage() {
-        return message;
-    }
-
-    /**
-     *  Returns the priority of the logging message. This field will only
-     *  be set for "messageLogged" events.
-     */
-    public int getPriority(){
-        return messagePriority;
-    }
-
-    /**
-     *  Returns the exception that was thrown, if any. This field will only
-     *  be set for "taskFinished", "targetFinished", and "buildFinished" events.
-     */
-    public Throwable getCause() {
-        return cause;
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/BuildEventSupport.java b/proposal/mutant/src/main/org/apache/ant/core/execution/BuildEventSupport.java
deleted file mode 100644
index c4fd5db..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/BuildEventSupport.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * 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 "The Jakarta Project", "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.ant.core.execution;
-
-import java.util.*;
-import org.apache.ant.core.model.*;
-
-/**
- * BuildEventSupport is used by classes which which to send 
- * build events to the BuoldListeners
- */
-public class BuildEventSupport {
-    private List listeners = new ArrayList();
-    
-    public void addBuildListener(BuildListener listener) {
-        listeners.add(listener);
-    }
-    
-    public void removeBuildListener(BuildListener listener) {
-        listeners.remove(listener);
-    }
-
-    public void forwardEvent(BuildEvent event) {
-        for (Iterator i = listeners.iterator(); i.hasNext();) {
-            BuildListener listener = (BuildListener)i.next();
-            listener.processBuildEvent(event);
-        }
-    }
-    
-    public void fireBuildStarted(Object source, BuildElement element) {
-        BuildEvent event = new BuildEvent(source, BuildEvent.BUILD_STARTED, element);
-        forwardEvent(event);
-    }
-
-    public void fireBuildFinished(Object source, BuildElement element, Throwable cause) {
-        BuildEvent event = new BuildEvent(source, BuildEvent.BUILD_FINISHED, element, cause);
-        forwardEvent(event);
-    }
-
-    public void fireTargetStarted(Object source, BuildElement element) {
-        BuildEvent event = new BuildEvent(source, BuildEvent.TARGET_STARTED, element);
-        forwardEvent(event);
-    }
-
-    public void fireTargetFinished(Object source, BuildElement element, Throwable cause) {
-        BuildEvent event = new BuildEvent(source, BuildEvent.TARGET_FINISHED, element, cause);
-        forwardEvent(event);
-    }
-
-    public void fireTaskStarted(Object source, BuildElement element) {
-        BuildEvent event = new BuildEvent(source, BuildEvent.TASK_STARTED, element);
-        forwardEvent(event);
-    }
-
-    public void fireTaskFinished(Object source, BuildElement element, Throwable cause) {
-        BuildEvent event = new BuildEvent(source, BuildEvent.TASK_FINISHED, element, cause);
-        forwardEvent(event);
-    }
-
-    public void fireMessageLogged(Object source, BuildElement element,
-                                   String message, int priority) {
-        BuildEvent event = new BuildEvent(source,  element, message, priority);
-        forwardEvent(event);
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/BuildListener.java b/proposal/mutant/src/main/org/apache/ant/core/execution/BuildListener.java
deleted file mode 100644
index a4071cd..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/BuildListener.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * 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 "The Jakarta Project", "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.ant.core.execution;
-
-import java.util.EventListener;
-
-/**
- *  Classes that implement this interface will be notified when
- *  things happend during a build.
- *
- *  @see BuildEvent
- */
-public interface BuildListener extends EventListener {
-    void processBuildEvent(BuildEvent event);
-}
\ No newline at end of file
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/ClassIntrospectionException.java b/proposal/mutant/src/main/org/apache/ant/core/execution/ClassIntrospectionException.java
deleted file mode 100644
index 088ac34..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/ClassIntrospectionException.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.execution;
-
-
-import java.io.*;
-
-/**
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */
-public class ClassIntrospectionException extends Exception {
-    /** 
-     * Exception that might have caused this one. 
-     */
-    private Throwable cause = null;
-
-    /**
-     * Constructs an exception with the given descriptive message.
-     * @param msg Description of or information about the exception.
-     */
-    public ClassIntrospectionException(String msg) {
-        super(msg);
-    }
-
-    /**
-     * Constructs an exception with the given message and exception as
-     * a root cause.
-     * @param msg Description of or information about the exception.
-     * @param cause Throwable that might have cause this one.
-     */
-    public ClassIntrospectionException(String msg, Throwable cause) {
-        super(msg);
-        this.cause = cause;
-    }
-
-    /**
-     * Constructs an exception with the given exception as a root cause.
-     * @param cause Exception that might have caused this one.
-     */
-    public ClassIntrospectionException(Throwable cause) {
-        super(cause.getMessage());
-        this.cause = cause;
-    }
-
-    /**
-     * Returns the nested exception.
-     *
-     * @return the underlying exception
-     */
-    public Throwable getCause() {
-        return cause;
-    }
-
-    /**
-     * Print the stack trace to System.err
-     */
-    public void printStackTrace() {
-        printStackTrace(System.err);
-    }
-    
-    /**
-     * Print the stack trace to the given PrintStream
-     *
-     * @param ps the PrintStream onto which the stack trace 
-     *           of this exception is to be printed
-     */
-    public void printStackTrace(PrintStream ps) {
-        synchronized (ps) {
-            ps.println(this);
-            if (cause != null) {
-                ps.println("--- Nested Exception ---");
-                cause.printStackTrace(ps);
-            }
-        }
-    }
-    
-    /**
-     * Print the stack trace to the given PrintWriter
-     *
-     * @param pw the PrintWriter onto which the stack trace 
-     *           of this exception is to be printed
-     */
-    public void printStackTrace(PrintWriter pw) {
-        synchronized (pw) {
-            pw.println(this);
-            if (cause != null) {
-                pw.println("--- Nested Exception ---");
-                cause.printStackTrace(pw);
-            }
-        }
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/ClassIntrospector.java b/proposal/mutant/src/main/org/apache/ant/core/execution/ClassIntrospector.java
deleted file mode 100644
index 563523c..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/ClassIntrospector.java
+++ /dev/null
@@ -1,477 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000 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 "The Jakarta Project", "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.ant.core.execution;
-
-import java.lang.reflect.*;
-import java.io.File;
-import java.util.*;
-
-/**
- * Introspects a class and builds a set of objects to assist in intospecting the 
- * class.
- *
- * @author Stefan Bodewig <a href="mailto:stefan.bodewig@megabit.net">stefan.bodewig@megabit.net</a> 
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */
-public class ClassIntrospector {
-    /**
-     * holds the types of the attributes that could be set.
-     */
-    private Hashtable attributeTypes;
-
-    /**
-     * holds the attribute setter methods.
-     */
-    private Hashtable attributeSetters;
-
-    /**
-     * Holds the types of nested elements that could be created.
-     */
-    private Hashtable nestedTypes;
-
-    /**
-     * Holds methods to create nested elements.
-     */
-    private Hashtable nestedCreators;
-
-    /**
-     * The method to add PCDATA stuff.
-     */
-    private Method addText = null;
-
-    /**
-     * The Class that's been introspected.
-     */
-    private Class bean;
-
-    /**
-     * returns the boolean equivalent of a string, which is considered true
-     * if either "on", "true", or "yes" is found, ignoring case.
-     */
-    public static boolean toBoolean(String s) {
-        return (s.equalsIgnoreCase("on") ||
-                s.equalsIgnoreCase("true") ||
-                s.equalsIgnoreCase("yes"));
-    }
-
-    public ClassIntrospector(final Class bean, Map converters) {
-        attributeTypes = new Hashtable();
-        attributeSetters = new Hashtable();
-        nestedTypes = new Hashtable();
-        nestedCreators = new Hashtable();
-        this.bean = bean;
-
-        Method[] methods = bean.getMethods();
-        for (int i=0; i<methods.length; i++) {
-            final Method m = methods[i];
-            final String name = m.getName();
-            Class returnType = m.getReturnType();
-            Class[] args = m.getParameterTypes();
-
-            if ("addText".equals(name)
-                && java.lang.Void.TYPE.equals(returnType)
-                && args.length == 1
-                && java.lang.String.class.equals(args[0])) {
-
-                addText = methods[i];
-
-            } else if (name.startsWith("set")
-                       && java.lang.Void.TYPE.equals(returnType)
-                       && args.length == 1
-                       && !args[0].isArray()) {
-
-                String propName = getPropertyName(name, "set");
-                AttributeSetter as = createAttributeSetter(m, args[0], converters);
-                if (as != null) {
-                    attributeTypes.put(propName, args[0]);
-                    attributeSetters.put(propName, as);
-                }
-
-            } else if (name.startsWith("create")
-                       && !returnType.isArray()
-                       && !returnType.isPrimitive()
-                       && args.length == 0) {
-
-                String propName = getPropertyName(name, "create");
-                nestedTypes.put(propName, returnType);
-                nestedCreators.put(propName, new NestedCreator() {
-
-                        public Object create(Object parent) 
-                            throws InvocationTargetException, 
-                            IllegalAccessException {
-
-                            return m.invoke(parent, new Object[] {});
-                        }
-
-                    });
-                
-            } else if (name.startsWith("add")
-                       && java.lang.Void.TYPE.equals(returnType)
-                       && args.length == 1
-                       && !java.lang.String.class.equals(args[0])
-                       && !args[0].isArray()
-                       && !args[0].isPrimitive()) {
-                 
-                try {
-                    final Constructor c = 
-                        args[0].getConstructor(new Class[] {});
-                    String propName = getPropertyName(name, "add");
-                    nestedTypes.put(propName, args[0]);
-                    nestedCreators.put(propName, new NestedCreator() {
-
-                            public Object create(Object parent) 
-                                throws InvocationTargetException, IllegalAccessException, InstantiationException {
-                                
-                                Object o = c.newInstance(new Object[] {});
-                                m.invoke(parent, new Object[] {o});
-                                return o;
-                            }
-
-                        });
-                } catch (NoSuchMethodException nse) {
-                }
-                    
-            }
-        }
-    }
-    
-    /**
-     * Sets the named attribute.
-     */
-    public void setAttribute(Object element, String attributeName, 
-                             String value)
-        throws ClassIntrospectionException, ConversionException {
-        AttributeSetter as = (AttributeSetter) attributeSetters.get(attributeName);
-        if (as == null) {
-            String msg = "Class " + element.getClass().getName() +
-                " doesn't support the \"" + attributeName + "\" attribute";
-            throw new ClassIntrospectionException(msg);
-        }
-        try {
-            as.set(element, value);
-        } catch (IllegalAccessException ie) {
-            // impossible as getMethods should only return public methods
-            throw new ClassIntrospectionException(ie);
-        } catch (InvocationTargetException ite) {
-            Throwable t = ite.getTargetException();
-            if (t instanceof ClassIntrospectionException) {
-                throw (ClassIntrospectionException) t;
-            }
-            throw new ClassIntrospectionException(t);
-        }
-    }
-
-    /**
-     * Adds PCDATA areas.
-     */
-    public void addText(Object element, String text) 
-        throws ClassIntrospectionException {
-            
-        if (addText == null) {
-            String msg = "Class " + element.getClass().getName() +
-                " doesn't support nested text elements";
-            throw new ClassIntrospectionException(msg);
-        }
-        try {
-            addText.invoke(element, new String[] {text});
-        } catch (IllegalAccessException ie) {
-            // impossible as getMethods should only return public methods
-            throw new ClassIntrospectionException(ie);
-        } catch (InvocationTargetException ite) {
-            Throwable t = ite.getTargetException();
-            if (t instanceof ClassIntrospectionException) {
-                throw (ClassIntrospectionException) t;
-            }
-            throw new ClassIntrospectionException(t);
-        }
-    }
-
-    public boolean supportsNestedElement(String elementName) {
-        return nestedCreators.containsKey(elementName);
-    }
-
-    /**
-     * Creates a named nested element.
-     */
-    public Object createElement(Object element, String elementName) 
-         throws ClassIntrospectionException {
-        NestedCreator nc = (NestedCreator) nestedCreators.get(elementName);
-        if (nc == null) {
-            String msg = "Class " + element.getClass().getName() +
-                " doesn't support the nested \"" + elementName + "\" element";
-            throw new ClassIntrospectionException(msg);
-        }
-        try {
-            return nc.create(element);
-        } catch (IllegalAccessException ie) {
-            // impossible as getMethods should only return public methods
-            throw new ClassIntrospectionException(ie);
-        } catch (InstantiationException ine) {
-            // impossible as getMethods should only return public methods
-            throw new ClassIntrospectionException(ine);
-        } catch (InvocationTargetException ite) {
-            Throwable t = ite.getTargetException();
-            if (t instanceof ClassIntrospectionException) {
-                throw (ClassIntrospectionException) t;
-            }
-            throw new ClassIntrospectionException(t);
-        }
-    }
-
-    /**
-     * returns the type of a named nested element.
-     */
-    public Class getElementType(String elementName) 
-        throws ClassIntrospectionException  {
-        Class nt = (Class) nestedTypes.get(elementName);
-        if (nt == null) {
-            String msg = "Class " + bean.getName() +
-                " doesn't support the nested \"" + elementName + "\" element";
-            throw new ClassIntrospectionException(msg);
-        }
-        return nt;
-    }
-
-    /**
-     * returns the type of a named attribute.
-     */
-    public Class getAttributeType(String attributeName) 
-        throws ClassIntrospectionException {
-        Class at = (Class) attributeTypes.get(attributeName);
-        if (at == null) {
-            String msg = "Class " + bean.getName() +
-                " doesn't support the \"" + attributeName + "\" attribute";
-            throw new ClassIntrospectionException(msg);
-        }
-        return at;
-    }
-
-    /**
-     * Does the introspected class support PCDATA?
-     */
-    public boolean supportsCharacters() {
-        return addText != null;
-    }
-
-    /**
-     * Return all attribues supported by the introspected class.
-     */
-    public Enumeration getAttributes() {
-        return attributeSetters.keys();
-    }
-
-    /**
-     * Return all nested elements supported by the introspected class.
-     */
-    public Enumeration getNestedElements() {
-        return nestedTypes.keys();
-    }
-
-    /**
-     * Create a proper implementation of AttributeSetter for the given
-     * attribute type.  
-     */
-    private AttributeSetter createAttributeSetter(final Method m,
-                                                  final Class arg,
-                                                  Map converters) {
-
-        if (converters != null && converters.containsKey(arg)) {
-            // we have a converter to use to convert the strign 
-            // value of into something the set method expects.
-            final Converter converter = (Converter)converters.get(arg);
-            return new AttributeSetter() {
-                    public void set(Object parent, String value) 
-                        throws InvocationTargetException, IllegalAccessException, 
-                               ClassIntrospectionException, ConversionException {
-                        m.invoke(parent, new Object[] {converter.convert(value, arg)});
-                    }
-                };
-        }
-        // simplest case - setAttribute expects String
-        else if (java.lang.String.class.equals(arg)) {
-            return new AttributeSetter() {
-                    public void set(Object parent, String value) 
-                        throws InvocationTargetException, IllegalAccessException {
-                        m.invoke(parent, new String[] {value});
-                    }
-                };
-
-        // now for the primitive types, use their wrappers
-        } else if (java.lang.Character.class.equals(arg)
-                   || java.lang.Character.TYPE.equals(arg)) {
-            return new AttributeSetter() {
-                    public void set(Object parent, String value) 
-                        throws InvocationTargetException, IllegalAccessException {
-                        m.invoke(parent, new Character[] {new Character(value.charAt(0))});
-                    }
-
-                };
-        } else if (java.lang.Byte.TYPE.equals(arg)) {
-            return new AttributeSetter() {
-                    public void set(Object parent, String value) 
-                        throws InvocationTargetException, IllegalAccessException {
-                        m.invoke(parent, new Byte[] {new Byte(value)});
-                    }
-
-                };
-        } else if (java.lang.Short.TYPE.equals(arg)) {
-            return new AttributeSetter() {
-                    public void set(Object parent, String value) 
-                        throws InvocationTargetException, IllegalAccessException {
-                        m.invoke(parent, new Short[] {new Short(value)});
-                    }
-
-                };
-        } else if (java.lang.Integer.TYPE.equals(arg)) {
-            return new AttributeSetter() {
-                    public void set(Object parent, String value) 
-                        throws InvocationTargetException, IllegalAccessException {
-                        m.invoke(parent, new Integer[] {new Integer(value)});
-                    }
-
-                };
-        } else if (java.lang.Long.TYPE.equals(arg)) {
-            return new AttributeSetter() {
-                    public void set(Object parent, String value) 
-                        throws InvocationTargetException, IllegalAccessException {
-                        m.invoke(parent, new Long[] {new Long(value)});
-                    }
-
-                };
-        } else if (java.lang.Float.TYPE.equals(arg)) {
-            return new AttributeSetter() {
-                    public void set(Object parent, String value) 
-                        throws InvocationTargetException, IllegalAccessException {
-                        m.invoke(parent, new Float[] {new Float(value)});
-                    }
-
-                };
-        } else if (java.lang.Double.TYPE.equals(arg)) {
-            return new AttributeSetter() {
-                    public void set(Object parent, String value) 
-                        throws InvocationTargetException, IllegalAccessException {
-                        m.invoke(parent, new Double[] {new Double(value)});
-                    }
-
-                };
-
-        } else if (java.lang.Boolean.class.equals(arg) 
-                   || java.lang.Boolean.TYPE.equals(arg)) {
-            return new AttributeSetter() {
-                    public void set(Object parent, String value) 
-                        throws InvocationTargetException, IllegalAccessException {
-                        m.invoke(parent, 
-                                 new Boolean[] {new Boolean(toBoolean(value))});
-                    }
-
-                };
-
-        // Class doesn't have a String constructor but a decent factory method
-        } else if (java.lang.Class.class.equals(arg)) {
-            return new AttributeSetter() {
-                    public void set(Object parent, String value) 
-                        throws InvocationTargetException, IllegalAccessException, ClassIntrospectionException {
-                        try {
-                            m.invoke(parent, new Class[] {Class.forName(value)});
-                        } catch (ClassNotFoundException ce) {
-                            throw new ClassIntrospectionException(ce);
-                        }
-                    }
-                };
-        // worst case. look for a public String constructor and use it
-        } else {
-
-            try {
-                final Constructor c = 
-                    arg.getConstructor(new Class[] {java.lang.String.class});
-
-                return new AttributeSetter() {
-                        public void set(Object parent, 
-                                        String value) 
-                            throws InvocationTargetException, IllegalAccessException, ClassIntrospectionException {
-                            try {
-                                m.invoke(parent, new Object[] {c.newInstance(new String[] {value})});
-                            } catch (InstantiationException ie) {
-                                throw new ClassIntrospectionException(ie);
-                            }
-                        }
-                    };
-                
-            } catch (NoSuchMethodException nme) {
-            }
-        }
-        
-        return null;
-    }
-
-    /**
-     * extract the name of a property from a method name - subtracting
-     * a given prefix.  
-     */
-    private String getPropertyName(String methodName, String prefix) {
-        int start = prefix.length();
-        return methodName.substring(start).toLowerCase();
-    }
-
-    private interface NestedCreator {
-        public Object create(Object parent) 
-            throws InvocationTargetException, IllegalAccessException, InstantiationException;
-    }
-    private interface AttributeSetter {
-        public void set(Object parent, String value)
-            throws InvocationTargetException, IllegalAccessException, 
-                   ClassIntrospectionException, ConversionException;
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/ConversionException.java b/proposal/mutant/src/main/org/apache/ant/core/execution/ConversionException.java
deleted file mode 100644
index 5925d24..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/ConversionException.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.execution;
-
-
-import java.io.*;
-
-/**
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */
-public class ConversionException extends Exception {
-    /** 
-     * Exception that might have caused this one. 
-     */
-    private Throwable cause = null;
-
-    /**
-     * Constructs an exception with the given descriptive message.
-     * @param msg Description of or information about the exception.
-     */
-    public ConversionException(String msg) {
-        super(msg);
-    }
-
-    /**
-     * Constructs an exception with the given message and exception as
-     * a root cause.
-     * @param msg Description of or information about the exception.
-     * @param cause Throwable that might have cause this one.
-     */
-    public ConversionException(String msg, Throwable cause) {
-        super(msg);
-        this.cause = cause;
-    }
-
-    /**
-     * Constructs an exception with the given exception as a root cause.
-     * @param cause Exception that might have caused this one.
-     */
-    public ConversionException(Throwable cause) {
-        super(cause.toString());
-        this.cause = cause;
-    }
-
-    /**
-     * Returns the nested exception.
-     *
-     * @return the underlying exception
-     */
-    public Throwable getCause() {
-        return cause;
-    }
-
-    /**
-     * Print the stack trace to System.err
-     */
-    public void printStackTrace() {
-        printStackTrace(System.err);
-    }
-    
-    /**
-     * Print the stack trace to the given PrintStream
-     *
-     * @param ps the PrintStream onto which the stack trace 
-     *           of this exception is to be printed
-     */
-    public void printStackTrace(PrintStream ps) {
-        synchronized (ps) {
-            ps.println(this);
-            if (cause != null) {
-                ps.println("--- Nested Exception ---");
-                cause.printStackTrace(ps);
-            }
-        }
-    }
-    
-    /**
-     * Print the stack trace to the given PrintWriter
-     *
-     * @param pw the PrintWriter onto which the stack trace 
-     *           of this exception is to be printed
-     */
-    public void printStackTrace(PrintWriter pw) {
-        synchronized (pw) {
-            pw.println(this);
-            if (cause != null) {
-                pw.println("--- Nested Exception ---");
-                cause.printStackTrace(pw);
-            }
-        }
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/Converter.java b/proposal/mutant/src/main/org/apache/ant/core/execution/Converter.java
deleted file mode 100644
index 11cc0d7..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/Converter.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000 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 "The Jakarta Project", "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.ant.core.execution;
-
-/**
- * Convert between a string and a data type
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */
-public interface Converter {
-    /**
-     * Convert a string from the value given to an instance of the given type.
-     */
-    Object convert(String value, Class type) throws ConversionException;
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/ConverterDefinition.java b/proposal/mutant/src/main/org/apache/ant/core/execution/ConverterDefinition.java
deleted file mode 100644
index b1a4640..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/ConverterDefinition.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.execution;
-
-import java.util.*;
-import java.net.URL;
-
-/**
- * A Converter definition defines a class which will convert
- * a string into an instance of a particular type of class. Converters
- * are typically only needed when some context information is 
- * required to perform the conversion.
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class ConverterDefinition {
-    /** The URL of the library which defines this converter */
-    private URL converterLibraryURL;
-     
-    /** The converter's class name */
-    private String converterClassName;
-    
-    /** The converted class returned by this converter */
-    private String targetClassName;
-    
-    /** The converter class loaded from the loader on demand.
-     */
-    private Class converterClass = null;
-    
-    /** The class to which this converter converts.
-     */
-    private Class targetClass = null;
-    
-    /** The converters's class loader. */
-    private ClassLoader converterClassLoader;
-    
-    public ConverterDefinition(URL converterLibraryURL, String converterClassName, 
-                               String targetClassName, ClassLoader converterClassLoader) {
-        this.converterLibraryURL = converterLibraryURL;
-        this.converterClassName = converterClassName;
-        this.targetClassName = targetClassName;
-        this.converterClassLoader = converterClassLoader;
-    }
-    
-    /**
-     * Get the name of the class that this converter will return.
-     */
-    public String getTargetClassName() {
-        return targetClassName;
-    }
-    
-    /**
-     * Get the classname of the converter that is being defined.
-     */
-    public String getConverterClassName() {
-        return converterClassName;
-    }
-    
-    /**
-     * Get the URL where this converter was defined.
-     *
-     * @returns a URL of the lib defintion file
-     */
-    public URL getLibraryURL() {
-        return converterLibraryURL;
-    }
-    
-    /**
-     * Get the converter class
-     *
-     * @return a class object for this converter
-     */
-    public synchronized Class getConverterClass() throws ClassNotFoundException {
-        if (converterClass == null) {
-            converterClass = Class.forName(converterClassName, true, converterClassLoader);
-        }
-        return converterClass;
-    }
-    
-    /**
-     * Get the converter class
-     *
-     * @return a class object for this converter
-     */
-    public synchronized Class getTargetClass() throws ClassNotFoundException {
-        if (targetClass == null) {
-            targetClass = Class.forName(targetClassName, true, converterClassLoader);
-        }
-        return targetClass;
-    }
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/ExecutionContext.java b/proposal/mutant/src/main/org/apache/ant/core/execution/ExecutionContext.java
deleted file mode 100644
index cb4b768..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/ExecutionContext.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.execution;
-
-import org.apache.ant.core.model.*;
-import org.apache.ant.core.support.*;
-import java.util.*;
-import java.net.URL;
-
-/**
- * The ExecutionContext interface provides a task or apsect instance with access to the 
- * container-provided services. This is the only way to access the container.
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class ExecutionContext {
-    private ExecutionFrame frame = null;
-    private BuildEventSupport eventSupport;
-    private BuildElement buildElement;
-
-    public ExecutionContext(ExecutionFrame frame, BuildEventSupport eventSupport, 
-                            BuildElement buildElement) {
-        this.frame = frame;
-        this.eventSupport = eventSupport;
-        this.buildElement = buildElement;
-    }
-
-    /**
-     * Log a mesage with the give priority.
-     *
-     * @param the message to be logged.
-     * @param msgLevel the message priority at which this message is to be logged.
-     */
-    public void log(String msg, int msgLevel) {
-        eventSupport.fireMessageLogged(this, buildElement, msg, msgLevel);
-    }
-
-    public void setDataValue(String name, Object value) throws ExecutionException {
-        frame.setDataValue(name, value);
-    }
-
-    public Object getDataValue(String name) throws ExecutionException {
-        return frame.getDataValue(name);
-    }
-
-    /**
-     * Replace ${} style constructions in the given value with the string value of
-     * the corresponding data types.
-     *
-     * @param value the string to be scanned for property references.
-     */
-    public String replacePropertyRefs(String value) throws ExecutionException {
-        return frame.replacePropertyRefs(value);
-    }
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/ExecutionException.java b/proposal/mutant/src/main/org/apache/ant/core/execution/ExecutionException.java
deleted file mode 100644
index 7b82e8c..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/ExecutionException.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.execution;
-
-import org.apache.ant.core.support.*;
-import java.io.*;
-
-/**
- * An ExecutiuonException indicates a problem during 
- * the execution of the build files tasks
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */
-public class ExecutionException extends AntException {
-    /**
-     * Constructs an exception with the given descriptive message.
-     *
-     * @param msg Description of or information about the exception.
-     */
-    public ExecutionException(String msg) {
-        super(msg);
-    }
-
-    /**
-     * Constructs an exception with the given descriptive message and a location
-     * in a file.
-     * @param msg Description of or information about the exception.
-     * @param location Location in the project file where the error occured.
-     */
-    public ExecutionException(String msg, Location location) {
-        super(msg, location);
-    }
-
-    /**
-     * Constructs an exception with the given message and exception as
-     * a root cause.
-     *
-     * @param msg Description of or information about the exception.
-     * @param cause Throwable that might have cause this one.
-     */
-    public ExecutionException(String msg, Throwable cause) {
-        super(msg, cause);
-    }
-
-    /**
-     * Constructs an exception with the given message and exception as
-     * a root cause and a location in a file.
-     * @param msg Description of or information about the exception.
-     * @param cause Exception that might have cause this one.
-     * @param location Location in the project file where the error occured.
-     */
-    public ExecutionException(String msg, Throwable cause, Location location) {
-        super(msg, cause, location);
-    }
-
-    /**
-     * Constructs an exception with the given exception as a root cause.
-     *
-     * @param cause Exception that might have caused this one.
-     */
-    public ExecutionException(Throwable cause) {
-        super(cause);
-    }
-
-    /**
-     * Constructs an exception with the given exception as
-     * a root cause and a location in a file.
-     * @param cause Exception that might have cause this one.
-     * @param location Location in the project file where the error occured.
-     */
-    public ExecutionException(Throwable cause, Location location) {
-        super(cause, location);
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/ExecutionFrame.java b/proposal/mutant/src/main/org/apache/ant/core/execution/ExecutionFrame.java
deleted file mode 100644
index 1844df6..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/ExecutionFrame.java
+++ /dev/null
@@ -1,920 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.execution;
-
-import org.apache.ant.core.model.*;
-import org.apache.ant.core.support.*;
-import org.apache.ant.core.types.*;
-
-import java.util.*;
-import java.net.*;
-
-/**
- * An ExecutionFrame is the state of a project during an execution. 
- * The ExecutionFrame contains the data values set by Ant tasks as
- * they are executed, including task definitions, property values, etc.
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */
-public class ExecutionFrame {
-    /** State used in dependency analysis when a target's dependencies are being
-        examined. */
-    private static final String VISITING = "VISITING";
-
-    /** State used in dependency analysis to indicate a target has been examined */
-    private static final String VISITED = "VISITED";
-
-    /** The Project that this execiton frame is processing */
-    private Project project = null;
-    
-    /** The base URL for this frame. This is derived from the 
-        Project's source URL and it's base attribute. */
-    private URL baseURL = null;
-    
-    /** The imported frames of this frame. For each project imported by this frame's
-        project, a corresponding ExecutionFrame is created. */
-    private Map importedFrames = new HashMap();
-    
-    /** BuildEvent support used to fire events and manage listeners */
-    private BuildEventSupport eventSupport = new BuildEventSupport();
-    
-    /** The context of this execution. This contains all data object's
-        created by tasks that have been executed */
-    private Map dataValues = new HashMap();
-    
-    /** Introspector objects used to configure Tasks from the Task models.*/
-    private Map introspectors = new HashMap();
-    
-    /** The task defs that this frame will use to process tasks */
-    private Map taskDefs = new HashMap();
-    
-    /** Type converters for this executionFrame. Converters are used when configuring
-        Tasks to handle special type conversions. */
-    private Map converters = new HashMap();
-    
-    /** The aspect handler active in this frame */
-    private Map aspectHandlers = new HashMap();
-    
-    /** The namespace under which this execution frame lives in the hierarchical
-        project namespace - null for the root namespace */
-    private String namespace;
-    
-    /**
-     * Construct an execution frame to process the given project model with 
-     * the configuration represented by the libraries.
-     *
-     * @param project the model of the project to be built.
-     * @param libraries an Array of AntLibrary objects containing the 
-     *                  configuration of Ant for this build.
-     *
-     * @throws ConfigException when the project cannot be setup with the
-     *                         given configuration
-     */
-    public ExecutionFrame(Project project, AntLibrary[] libraries) 
-        throws ConfigException {
-    
-        this.namespace = null;
-        setupFrame(project, libraries);
-    }
-    
-    /**
-     * Construct a subframe for managing a project imported into the main project.
-     * @param project the model of the project to be built.
-     * @param libraries an Array of AntLibrary objects containing the 
-     *                  configuration of Ant for this build.
-     * @param namespace the location of this project within the overall import
-     *                  namespace.
-     *
-     * @throws ConfigException when the project cannot be setup with the
-     *                         given configuration
-     */     
-    private ExecutionFrame(Project project, AntLibrary[] libraries, String namespace) 
-        throws ConfigException {
-    
-        this.namespace = namespace;
-        setupFrame(project, libraries);
-    }
-    
-
-    /**
-     * Set up the execution frame. 
-     *
-     * This method examines the project model and constructs the required
-     * subframes to handle imported projects.
-     * @param project the model of the project to be built.
-     * @param libraries an Array of AntLibrary objects containing the 
-     *                  configuration of Ant for this build.
-     *
-     * @throws ConfigException when the project cannot be setup with the
-     *                         given configuration
-     */
-    private void setupFrame(Project project, AntLibrary[] libraries) 
-        throws ConfigException {
-
-        this.project = project;
-        for (int i = 0; i < libraries.length; ++i) {
-            addLibrary(libraries[i]);
-        }
-
-        try {        
-            String base = project.getBase();
-            if (base == null) {
-                baseURL = project.getSourceURL();
-            }
-            else {
-                base = base.trim();
-                if (!base.endsWith("/")) {
-                    base += "/";
-                }
-                baseURL = new URL(project.getSourceURL(), base);
-            }            
-        }
-        catch (MalformedURLException e) {
-            throw new ConfigException("Project's base value \"" + project.getBase() 
-                                      + "\" is not valid", e, project.getLocation());
-        }                                      
-        
-        for (Iterator i = project.getImportedProjectNames(); i.hasNext();) {
-            String importName = (String)i.next();
-            Project importedProject = project.getImportedProject(importName);
-            String importNamespace 
-                = namespace == null ? importName : namespace + ":" + importName;
-            ExecutionFrame importedFrame 
-                = new ExecutionFrame(importedProject, libraries, importNamespace);
-            importedFrames.put(importName, importedFrame);
-        }
-    }
-
-    /**
-     * Add a configuration library to this execution frame. The library
-     * will contain task definitions, converters, apsect handler definitions,
-     * etc.
-     *
-     * @param library the configuration library to add to this frame.
-     *
-     * @throws ConfigException if the items in the library cannot be configured.
-     */
-    public void addLibrary(AntLibrary library) throws ConfigException {
-        for (Iterator i = library.getTaskDefinitions(); i.hasNext(); ) {
-            TaskDefinition taskDefinition = (TaskDefinition)i.next();
-            addTaskDefinition(taskDefinition);
-        }
-        for (Iterator i = library.getConverterDefinitions(); i.hasNext(); ) {
-            ConverterDefinition converterDef = (ConverterDefinition)i.next();
-            addConverterDefinition(converterDef);
-        }
-        for (Iterator i = library.getAspectDefinitions(); i.hasNext(); ) {
-            AspectDefinition aspectDef = (AspectDefinition)i.next();
-            addAspectHandler(aspectDef);
-        }
-    }
-
-    /**
-     * Add a task definition to this execution frame
-     *
-     * @param taskDefinition the TaskDefinition to be added to the project.
-     */
-    public void addTaskDefinition(TaskDefinition taskDefinition) {
-        String taskName = taskDefinition.getName();
-        taskDefs.put(taskName, taskDefinition);
-    }
-    
-    /**
-     * Add a aspect handler definition to this execution frame
-     *
-     * @param taskDefinition the TaskDefinition to be added to the project.
-     *
-     * @throws ConfigException if the aspect handler cannot be created or configured.
-     */
-    public void addAspectHandler(AspectDefinition aspectDefinition) 
-        throws ConfigException {
-        String aspectPrefix = aspectDefinition.getAspectPrefix();
-        try {
-            Class aspectHandlerClass = aspectDefinition.getAspectHandlerClass();
-            aspectHandlers.put(aspectPrefix, aspectHandlerClass);
-        }    
-        catch (ClassNotFoundException e) {
-            throw new ConfigException("Unable to load aspect handler class for " 
-                                      + aspectDefinition.getAspectHandlerClassName()
-                                      + " in converter from " + aspectDefinition.getLibraryURL(),
-                                      e);
-        }
-    }
-    
-    /**
-     * Add a converter definition to this library.
-     *
-     * The converter is created immediately to handle conversions
-     * when items are being configured. If the converter is an instance of
-     * an AntConverter, the converter is configured with this execution
-     * frame giving it the context it needs to resolve items relative to the
-     * project's base, etc.
-     *
-     * @param converterDef the converter definition to load
-     *
-     * @throws ConfigException if the converter cannot be created or configured.
-     */
-    public void addConverterDefinition(ConverterDefinition converterDef) throws ConfigException {
-        boolean targetLoaded = false;
-        try {
-            Class targetClass = converterDef.getTargetClass();
-            targetLoaded = false;
-            Class converterClass = converterDef.getConverterClass();
-            Converter converter = (AntConverter)converterClass.newInstance();
-            if (converter instanceof AntConverter) {
-                ((AntConverter)converter).init(this);
-            }
-            converters.put(targetClass, converter);
-        }
-        catch (ClassNotFoundException e) {
-            if (targetLoaded) {
-                throw new ConfigException("Unable to load converter class for " 
-                                          + converterDef.getConverterClassName()
-                                          + " in converter from " + converterDef.getLibraryURL(),
-                                          e);
-            }
-            else {
-                throw new ConfigException("Unable to load target class " 
-                                          + converterDef.getTargetClassName()
-                                          + " in converter from " + converterDef.getLibraryURL(),
-                                          e);
-            }
-        }
-        catch (InstantiationException e) {
-            throw new ConfigException("Unable to instantiate converter class " 
-                                      + converterDef.getTargetClassName()
-                                      + " in converter from " + converterDef.getLibraryURL(),
-                                      e);
-        }
-        catch (IllegalAccessException e) {
-            throw new ConfigException("Unable to access converter class " 
-                                      + converterDef.getTargetClassName()
-                                      + " in converter from " + converterDef.getLibraryURL(),
-                                      e);
-        }
-    }
-
-    
-    /**
-     * Get the bae URL of this frame. This will either be specified by the project's
-     * base attribute or be derived implicitly from the project's location.
-     */
-    public URL getBaseURL() {
-        return baseURL;
-    }
-
-
-    public void addBuildListener(BuildListener listener) {
-        for (Iterator i = getImportedFrames(); i.hasNext(); ) {
-            ExecutionFrame subFrame = (ExecutionFrame)i.next();
-            subFrame.addBuildListener(listener);
-        }
-        eventSupport.addBuildListener(listener);
-    }
-    
-    public void removeBuildListener(BuildListener listener) {
-        for (Iterator i = getImportedFrames(); i.hasNext(); ) {
-            ExecutionFrame subFrame = (ExecutionFrame)i.next();
-            subFrame.removeBuildListener(listener);
-        }
-        eventSupport.removeBuildListener(listener);
-    }
-
-    /**
-     * Get the project associated with this execution frame.
-     *
-     * @return the project associated iwth this execution frame.
-     */
-    public Project getProject() {
-        return project;
-    }
-    
-
-    /**
-     * Get the names of the frames representing imported projects.
-     *
-     * @return an iterator which returns the names of the imported frames.
-     */
-    public Iterator getImportedFrameNames() {
-        return importedFrames.keySet().iterator();
-    }
-    
-
-    /**
-     * Get the frames representing imported projects.
-     *
-     * @return an iterator which returns the imported ExeuctionFrames..
-     */
-    public Iterator getImportedFrames() {
-        return importedFrames.values().iterator();
-    }
-    
-    /**
-     * Get an imported frame by name
-     *
-     * @param importName the name under which the frame was imported.
-     *
-     * @return the ExecutionFrame asscociated with the given import name or null 
-     *         if there is no such project.
-     */
-    public ExecutionFrame getImportedFrame(String importName) {
-        return (ExecutionFrame)importedFrames.get(importName);
-    }
-    
-    /**
-     * Get the location of this frame in the namespace hierarchy
-     *
-     * @return the location of this frame within the project import
-     *         namespace hierarchy.
-     */
-    public String getNamespace() {
-        return namespace;
-    }
-    
-    /**
-     * Get the fully qualified name of something with respect to this 
-     * execution frame.
-     * 
-     * @param name the unqualified name.
-     * 
-     * @return the fully qualified version of the given name
-     */
-    public String getQualifiedName(String name) {
-        return namespace == null ? name : namespace + ":" + name;
-    }
-    
-    /**
-     * Execute the given target's tasks
-     *
-     * @param the name of the target within this frame that is to be executed.
-     */
-    public void executeTargetTasks(String targetName) throws ExecutionException, ConfigException {
-        Target target = project.getTarget(targetName);
-        try {
-            Iterator taskIterator = target.getTasks();
-            eventSupport.fireTargetStarted(this, target);
-            executeTasks(taskIterator);
-            eventSupport.fireTargetFinished(this, target, null);
-        }
-        catch (RuntimeException e) {
-            eventSupport.fireTargetFinished(this, target, e);
-            throw e;
-        }
-    }
-    
-    /**
-     * Initialize the frame by executing the project level tasks if any
-     */
-    public void initialize() throws ExecutionException, ConfigException {
-        for (Iterator i = getImportedFrames(); i.hasNext(); ) {
-            ExecutionFrame subFrame = (ExecutionFrame)i.next();
-            subFrame.initialize();
-        }
-        Iterator taskIterator = project.getTasks();
-        executeTasks(taskIterator);
-    }
-
-    public void fillinDependencyOrder(String targetName, List dependencyOrder, 
-                                      Map state, Stack visiting) throws ConfigException {
-        String fullTargetName = getQualifiedName(targetName); 
-        if (state.get(fullTargetName) == VISITED) {
-            return;
-        }
-        Target target = getProject().getTarget(targetName);                                       
-        if (target == null) {
-            StringBuffer sb = new StringBuffer("Target `");
-            sb.append(targetName);
-            sb.append("' does not exist in this project. ");
-            if (!visiting.empty()) {
-                String parent = (String)visiting.peek();
-                sb.append("It is used from target `");
-                sb.append(parent);
-                sb.append("'.");
-            }
-
-            throw new ConfigException(new String(sb), getProject().getLocation());
-        }
-        
-        state.put(fullTargetName, VISITING);
-        visiting.push(fullTargetName);
-        for (Iterator i = target.getDependencies(); i.hasNext(); ) {
-            String dependency = (String)i.next();
-            try {
-                ExecutionFrame dependencyFrame = getRelativeFrame(dependency);
-                if (dependencyFrame == null) {
-                    StringBuffer sb = new StringBuffer("Target `");
-                    sb.append(dependency);
-                    sb.append("' does not exist in this project. ");
-                    throw new ConfigException(new String(sb), target.getLocation());
-                }
-                
-                String fullyQualifiedName = getQualifiedName(dependency);
-                String dependencyState = (String)state.get(fullyQualifiedName);
-                if (dependencyState == null) {
-                    dependencyFrame.fillinDependencyOrder(getNameInFrame(dependency), dependencyOrder, 
-                                                          state, visiting);
-                }
-                else if (dependencyState == VISITING) {
-                    String circleDescription
-                        = getCircularDesc(dependency, visiting);
-                    throw new ConfigException(circleDescription, target.getLocation());
-                }
-            }
-            catch (ExecutionException e) {
-                throw new ConfigException(e.getMessage(), e, target.getLocation());
-            }
-        }
-        
-        state.put(fullTargetName, VISITED);
-        String poppedNode = (String)visiting.pop();
-        if (poppedNode != fullTargetName) {
-            throw new ConfigException("Problem determining dependencies " + 
-                                        " - expecting '" + fullTargetName + 
-                                        "' but got '" + poppedNode + "'");
-        }
-        dependencyOrder.add(fullTargetName);                                        
-    }
-                                
-    private String getCircularDesc(String end, Stack visitingNodes) {
-        StringBuffer sb = new StringBuffer("Circular dependency: ");
-        sb.append(end);
-        String c;
-        do {
-            c = (String)visitingNodes.pop();
-            sb.append(" <- ");
-            sb.append(c);
-        } while(!c.equals(end));
-        return new String(sb);
-    }
-
-    /**
-     * Check whether the targets in this frame and its subframes are OK
-     */
-    public void checkTargets(List dependencyOrder, Map state, Stack visiting) 
-            throws ConfigException {
-        // get the targets and just iterate through them.
-        for (Iterator i = getProject().getTargets(); i.hasNext();) {
-            Target target = (Target)i.next();
-            fillinDependencyOrder(target.getName(),
-                                  dependencyOrder, state, visiting);
-        }
-        
-        // Now do the subframes.
-        for (Iterator i = getImportedFrames(); i.hasNext();) {
-            ExecutionFrame importedFrame = (ExecutionFrame)i.next();
-            importedFrame.checkTargets(dependencyOrder, state, visiting);
-        }
-    }
-
-        
-    /**
-     * Create a Task and configure it according to the given model.
-     */        
-    private Task configureTask(TaskElement model) 
-        throws ConfigException, ExecutionException {
-
-        String taskType = model.getType();
-        TaskDefinition taskDefinition = (TaskDefinition)taskDefs.get(taskType);
-        if (taskDefinition == null) {
-            throw new ConfigException("There is no defintion for tasks of type <" 
-                                      + taskType + ">", model.getLocation());
-        }
-        
-        try {
-            Class elementClass = taskDefinition.getExecutionTaskClass();
-            Object element = elementClass.newInstance();
-            Task task = null;
-            if (element instanceof Task) {
-                // create a Task context for the Task
-                task = (Task)element;
-            }
-            else {
-                task = new TaskAdapter(taskType, element);
-            }
-            
-            configureElement(element, model);
-
-            return task;
-        }
-        catch (ClassNotFoundException e) {
-            throw new ConfigException("Execution class " + taskDefinition.getTaskClassName()
-                                         + " was not found", e, model.getLocation());
-        }
-        catch (InstantiationException e) {
-            throw new ConfigException("Unable to instantiate execution class "
-                                          + taskDefinition.getTaskClassName(), 
-                                          e, model.getLocation());
-        }
-        catch (IllegalAccessException e) {
-            throw new ConfigException("Unable to access execution class "
-                                          + taskDefinition.getTaskClassName(), 
-                                          e, model.getLocation());
-        }
-    }        
-
-    private List getActiveAspects(BuildElement model) 
-            throws ConfigException, ExecutionException, 
-                   ClassIntrospectionException, ConversionException {
-        List activeAspects = new ArrayList();
-        for (Iterator i = model.getAspectNames(); i.hasNext();) {
-            String aspectPrefix = (String)i.next();
-            Class aspectHandlerClass = (Class)aspectHandlers.get(aspectPrefix);
-            if (aspectHandlerClass != null) {
-                try {
-                    AspectHandler aspectHandler 
-                        = (AspectHandler)aspectHandlerClass.newInstance();
-                    ClassIntrospector introspector = getIntrospector(aspectHandlerClass);
-                    
-                    ExecutionContext context = new ExecutionContext(this, eventSupport, model);
-                    aspectHandler.setAspectContext(context);
-                    
-                    Map aspectAttributes = model.getAspectAttributes(aspectPrefix);
-                    for (Iterator j = aspectAttributes.keySet().iterator(); j.hasNext();) {
-                        String attributeName = (String)j.next();
-                        String attributeValue = (String)aspectAttributes.get(attributeName);
-                        introspector.setAttribute(aspectHandler, attributeName, 
-                                                  replacePropertyRefs(attributeValue));
-                    }
-                    activeAspects.add(aspectHandler);
-                }
-                catch (InstantiationException e) {
-                    throw new ConfigException("Unable to instantiate aspect handler class " 
-                                              + aspectHandlerClass,
-                                              e);
-                }
-                catch (IllegalAccessException e) {
-                    throw new ConfigException("Unable to access aspect handler class " 
-                                              + aspectHandlerClass,
-                                              e);
-                }
-            }
-        }                                                          
-        return activeAspects;
-    }
-    
-
-    /**
-     * Configure an element according to the given model.
-     */   
-    private void configureElement(Object element, TaskElement model) 
-        throws ExecutionException, ConfigException {
-        
-        if (element instanceof Task) {
-            Task task = (Task)element;
-            ExecutionContext context = new ExecutionContext(this, eventSupport, model);
-            task.setTaskContext(context);
-        }
-        try {
-            ClassIntrospector introspector = getIntrospector(element.getClass());
-                
-            List aspects = getActiveAspects(model);
-            for (Iterator i = aspects.iterator(); i.hasNext(); ) {
-                AspectHandler aspectHandler = (AspectHandler)i.next();
-                aspectHandler.beforeConfigElement(element);
-            }
-            
-            // start by setting the attributes of this element
-            for (Iterator i = model.getAttributeNames(); i.hasNext();) {
-                String attributeName = (String)i.next();
-                String attributeValue = model.getAttributeValue(attributeName);
-                introspector.setAttribute(element, attributeName, 
-                                          replacePropertyRefs(attributeValue));
-            }
-            
-            String modelText = model.getText().trim();
-            if (modelText.length() != 0) {
-                introspector.addText(element, replacePropertyRefs(modelText));
-            }
-
-            // now do the nested elements
-            for (Iterator i = model.getNestedElements(); i.hasNext();) {
-                TaskElement nestedElementModel = (TaskElement)i.next();
-                if (element instanceof TaskContainer &&
-                    !introspector.supportsNestedElement(nestedElementModel.getType())) {
-                    
-                    Task nestedTask = configureTask(nestedElementModel);
-                    TaskContainer container = (TaskContainer)element;
-                    container.addTask(nestedTask);
-                }
-                else {                        
-                    Object nestedElement 
-                        = introspector.createElement(element, nestedElementModel.getType());
-                    configureElement(nestedElement, nestedElementModel);
-                }                    
-            }
-            for (Iterator i = aspects.iterator(); i.hasNext(); ) {
-                AspectHandler aspectHandler = (AspectHandler)i.next();
-                aspectHandler.afterConfigElement(element);
-            }
-        }
-        catch (ClassIntrospectionException e) {
-            throw new ExecutionException(e, model.getLocation());
-        }
-        catch (ConversionException e) {
-            throw new ExecutionException(e, model.getLocation());
-        }
-    }
-
-    /**
-     * Run the tasks returned by the give iterator
-     *
-     * @param taskIterator the iterator giving the tasks to execute
-     */
-    public void executeTasks(Iterator taskIterator) throws ExecutionException, ConfigException {
-        TaskElement task = null;
-        try {
-            while (taskIterator.hasNext()) {
-                task = (TaskElement)taskIterator.next();
-                try {
-                    Task configuredTask = configureTask(task);
-                    eventSupport.fireTaskStarted(this, task);
-                    configuredTask.execute();
-                }
-                catch (ExecutionException e) {
-                    if (e.getLocation() == null || e.getLocation() == Location.UNKNOWN_LOCATION) {
-                        e.setLocation(task.getLocation());
-                    }
-                    throw e;
-                }
-                catch (ConfigException e) {
-                    if (e.getLocation() == null || e.getLocation() == Location.UNKNOWN_LOCATION) {
-                        e.setLocation(task.getLocation());
-                    }
-                    throw e;
-                }
-                eventSupport.fireTaskFinished(this, task, null);
-            }
-        }
-        catch (RuntimeException e) {
-            eventSupport.fireTaskFinished(this, task, e);
-            throw e;
-        }
-    }        
-
-    private ClassIntrospector getIntrospector(Class c) {
-        if (introspectors.containsKey(c)) {
-            return (ClassIntrospector)introspectors.get(c);
-        }
-        ClassIntrospector introspector = new ClassIntrospector(c, converters);
-        introspectors.put(c, introspector);
-        return introspector;
-    }
-                            
-    /**
-     * Replace ${} style constructions in the given value with the string value of
-     * the corresponding data types.
-     *
-     * @param value the string to be scanned for property references.
-     */
-    public String replacePropertyRefs(String value) throws ExecutionException {
-        if (value == null) {
-            return null;
-        }
-
-        List fragments = new ArrayList();
-        List propertyRefs = new ArrayList();
-        parsePropertyString(value, fragments, propertyRefs);
-
-        StringBuffer sb = new StringBuffer();
-        Iterator i = fragments.iterator();
-        Iterator j = propertyRefs.iterator();
-        while (i.hasNext()) {
-            String fragment = (String)i.next();
-            if (fragment == null) {
-                String propertyName = (String)j.next();
-                if (!isDataValueSet(propertyName)) {
-                    throw new ExecutionException("Property " + propertyName + " has not been set");
-                }
-                fragment = getDataValue(propertyName).toString();
-            }
-            sb.append(fragment);
-        }                        
-        
-        return sb.toString();
-    }
-    
-
-    /**
-     * This method will parse a string containing ${value} style 
-     * property values into two list. The first list is a collection
-     * of text fragments, while the other is a set of string property names
-     * null entries in the first list indicate a property reference from the
-     * second list.
-     */
-    static public void parsePropertyString(String value, List fragments, List propertyRefs) 
-        throws ExecutionException {
-        int prev = 0;
-        int pos;
-        while ((pos = value.indexOf("$", prev)) >= 0) {
-            if (pos > 0) {
-                fragments.add(value.substring(prev, pos));
-            }
-
-            if( pos == (value.length() - 1)) {
-                fragments.add("$");
-                prev = pos + 1;
-            }
-            else if (value.charAt(pos + 1) != '{' ) {
-                fragments.add(value.substring(pos + 1, pos + 2));
-                prev = pos + 2;
-            } else {
-                int endName = value.indexOf('}', pos);
-                if (endName < 0) {
-                    throw new ExecutionException("Syntax error in property: " 
-                                                 + value );
-                }
-                String propertyName = value.substring(pos + 2, endName);
-                fragments.add(null);
-                propertyRefs.add(propertyName);
-                prev = endName + 1;
-            }
-        }
-
-        if (prev < value.length()) {
-            fragments.add(value.substring(prev));
-        }
-    }
-
-    /**
-     * Given a name of an object, get the frame relative from this frame that
-     * contains that object.
-     */
-    public ExecutionFrame getRelativeFrame(String name) throws ExecutionException {
-        int index = name.lastIndexOf(":");
-        if (index == -1) {
-            return this;
-        }
-        
-        ExecutionFrame currentFrame = this;
-        String relativeFrameName = name.substring(0, index);
-        StringTokenizer tokenizer = new StringTokenizer(relativeFrameName, ":");
-        while (tokenizer.hasMoreTokens()) {
-            String frameName = tokenizer.nextToken();
-            currentFrame = currentFrame.getImportedFrame(frameName);
-            if (currentFrame == null) {
-                throw new ExecutionException("The project " + frameName + " in " 
-                                             + name + " was not found");
-            }
-        }
-        
-        return currentFrame;
-    }
-
-    /**
-     * Get the name of an object in its frame
-     */
-    public String getNameInFrame(String name) {
-        int index = name.lastIndexOf(":");
-        if (index == -1) {
-            return name;
-        }
-        return name.substring(index+1);
-    }
-
-    /**
-     * Set a value in this frame or any of its imported frames
-     */
-    public void setDataValue(String name, Object value) throws ExecutionException {
-        ExecutionFrame frame = getRelativeFrame(name);
-        frame.setDirectDataValue(getNameInFrame(name), value);
-    }
-    
-    /**
-     * Get a value from this frame or any imported frame
-     */
-    public Object getDataValue(String name) throws ExecutionException {
-        ExecutionFrame frame = getRelativeFrame(name);
-        return frame.getDirectDataValue(getNameInFrame(name));
-    }
-    
-    /**
-     * Set a value in this frame only
-     */
-    private void setDirectDataValue(String name, Object value) {
-        dataValues.put(name, value);
-    }
-    
-    /**
-     * Get a value from this frame
-     */
-    private Object getDirectDataValue(String name) {
-        return dataValues.get(name);
-    }
-
-    /**
-     * Indicate if a data value has been set
-     */
-    public boolean isDataValueSet(String name) throws ExecutionException {
-        ExecutionFrame frame = getRelativeFrame(name);
-        return frame.isDirectDataValueSet(getNameInFrame(name));
-    }
-        
-    /**
-     * Indicate if a data value has been set in this frame
-     */
-    private boolean isDirectDataValueSet(String name) {
-        return dataValues.containsKey(name);
-    }
-
-    public void runBuild(List targetNames) throws AntException {
-        Throwable buildFailureCause = null;
-        try {
-            eventSupport.fireBuildStarted(this, project);
-            initialize();
-
-            if (targetNames.isEmpty()) {
-                // we just execute the default target if any
-                String defaultTarget = project.getDefaultTarget();
-                if (defaultTarget != null) {
-                    executeTarget(defaultTarget);
-                }
-            }
-            else {
-                for (Iterator i = targetNames.iterator(); i.hasNext();) {
-                    executeTarget((String)i.next());
-                }
-            }
-            eventSupport.fireBuildFinished(this, project, null);
-        }
-        catch (RuntimeException e) {
-            buildFailureCause = e;
-            throw e;
-        }
-        catch (AntException e) {
-            buildFailureCause = e;
-            throw e;
-        }
-        finally {
-            eventSupport.fireBuildFinished(this, project, buildFailureCause);
-        }
-    }
-
-    public void executeTarget(String targetName) throws ExecutionException, ConfigException {
-        // to execute a target we must determine its dependencies and 
-        // execute them in order.
-        Map state = new HashMap();
-        Stack visiting = new Stack();
-        List dependencyOrder = new ArrayList();
-        ExecutionFrame startingFrame = getRelativeFrame(targetName);
-        startingFrame.fillinDependencyOrder(getNameInFrame(targetName),
-                                            dependencyOrder, state, visiting);
-
-        // Now tell each frame to execute the targets required
-        for (Iterator i = dependencyOrder.iterator(); i.hasNext();) {
-            String fullTargetName = (String)i.next();
-            ExecutionFrame frame = getRelativeFrame(fullTargetName);
-            frame.executeTargetTasks(getNameInFrame(fullTargetName));
-        }
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/InputProvider.java b/proposal/mutant/src/main/org/apache/ant/core/execution/InputProvider.java
deleted file mode 100644
index 21cb036..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/InputProvider.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * 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 "The Jakarta Project", "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.ant.core.execution;
-
-/*
- * An input provider is an object which is provided to Ant's core
- * execution system to provide input from the user. Typically command
- * line based clients will request input from the console whilst 
- * GUI clients may pop up an input dialog. Unattended operation may
- * be able to source input from some form of script.
- */
-public interface InputProvider {
-    /** 
-     * Request input from the user
-     *
-     * @param prompt a string which is used to prompt the user for input.
-     * @param defaultInput the default value initially supplied to the user
-     * @param timeout a timeout in milliseconds which some clients may use
-     *        to either accept the default or to fail.
-     *
-     * @return a string of the user's input if the user provided any.
-     *
-     * @throws ExecutionException if the no input could be obtained from the user
-     */
-    String userInput(String prompt, String defaultInput) throws ExecutionException;
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/Task.java b/proposal/mutant/src/main/org/apache/ant/core/execution/Task.java
deleted file mode 100644
index ba98152..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/Task.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.execution;
-
-import org.apache.ant.core.model.*;
-import org.apache.ant.core.support.*;
-import java.util.*;
-import java.net.URL;
-
-/**
- * A task is a top level element in the buidl which will be processed. Ant
- * currently handles two types of tasks - DataType tasks and execution tasks.
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public interface Task {
-    void setTaskContext(ExecutionContext context);
-    
-    void execute() throws ExecutionException;
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/TaskAdapter.java b/proposal/mutant/src/main/org/apache/ant/core/execution/TaskAdapter.java
deleted file mode 100644
index ab87110..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/TaskAdapter.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999 The Apache Software Foundation.  All rights 
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * 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 "The Jakarta Project", "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.ant.core.execution;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-/**
- * Use introspection to "adapt" an arbitrary Bean ( not extending Task, but with similar
- * patterns).
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */
-public class TaskAdapter extends AbstractTask {
-
-    /**
-     * The real object that is performing the work
-     */
-    private Object worker;
-
-    private Method executeMethod = null;
-
-    public TaskAdapter(String taskType, Object worker) 
-        throws ExecutionException {
-        this.worker = worker;
-        try {
-            Class workerClass = worker.getClass();
-            executeMethod = workerClass.getMethod("execute", new Class[0]);
-            if (executeMethod == null) {
-                throw new ExecutionException("No execute method in the class for the <"
-                                             + taskType + "> task.");
-            }
-        }
-        catch (NoSuchMethodException e) {
-            throw new ExecutionException(e);
-        }
-    }
-                                                             
-
-    public void execute() throws ExecutionException {
-        try {
-            executeMethod.invoke(worker, null);
-        }
-        catch( Exception ex ) {
-            throw new ExecutionException(ex);
-        }
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/TaskContainer.java b/proposal/mutant/src/main/org/apache/ant/core/execution/TaskContainer.java
deleted file mode 100644
index edd6fbf..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/TaskContainer.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.execution;
-
-import java.util.*;
-import java.net.URL;
-
-/**
- * A TaskContainer is an object which can contain and manage 
- * ExecutionTasks.
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public interface TaskContainer {
-    /**
-     * Add a task to the container.
-     */
-    void addTask(Task task) throws ExecutionException;
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/execution/TaskDefinition.java b/proposal/mutant/src/main/org/apache/ant/core/execution/TaskDefinition.java
deleted file mode 100644
index 8402181..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/execution/TaskDefinition.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.execution;
-
-import java.util.*;
-import java.net.URL;
-
-/**
- * A Task definition provides the information necessary to execute
- * a task implementation.
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class TaskDefinition {
-    /** The URL of the library which defines this task */
-    private URL taskLibraryURL;
-     
-    /** The task's name */
-    private String taskName;
-    
-    /** The task's class */
-    private String taskClassName;
-    
-    /** The task's class loaded from the loader on demand. */
-    private Class taskClass = null;
-    
-    /** The task's class loader. */
-    private ClassLoader taskClassLoader;
-    
-    public TaskDefinition(URL taskLibraryURL, String taskName, String taskClassName, 
-                          ClassLoader taskClassLoader) {
-        this.taskLibraryURL = taskLibraryURL;
-        this.taskName = taskName;
-        this.taskClassName = taskClassName;
-        this.taskClassLoader = taskClassLoader;
-    }
-    
-    /**
-     * Get the name of the task that is being defined.
-     */
-    public String getName() {
-        return taskName;
-    }
-    
-    /**
-     * Get the classname of the task that is being defined.
-     */
-    public String getTaskClassName() {
-        return taskClassName;
-    }
-    
-    /**
-     * Get the URL where this task was defined.
-     *
-     * @returns a URL of the lib defintion file
-     */
-    public URL getLibraryURL() {
-        return taskLibraryURL;
-    }
-    
-    /**
-     * Get the task class for this task
-     *
-     * @return a class object for this task
-     */
-    public synchronized Class getExecutionTaskClass() throws ClassNotFoundException {
-        if (taskClass == null) {
-            taskClass = Class.forName(taskClassName, true, taskClassLoader);
-        }
-        return taskClass;
-    }
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/model/BuildElement.java b/proposal/mutant/src/main/org/apache/ant/core/model/BuildElement.java
deleted file mode 100644
index b24f77f..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/model/BuildElement.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.model;
-
-import java.util.*;
-import org.apache.ant.core.support.*;
-
-/**
- * A BuildElement is an element of a build file and has a location
- * within that file.
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class BuildElement {
-    /** The aspects defined for this element. */
-    private Map aspectMaps;
-
-    /** The location of this element */
-    private Location location;
-    
-    /** A comment associated with this element, if any */
-    private String comment;
-    
-    /**
-     * Create a build element giving its location.
-     *
-     * @param location identifies where this element is defined
-     */
-    public BuildElement(Location location) {
-        this.location = location;
-    }
-    
-    /**
-     * Get the location of the source where this element is defined
-     *
-     * @return the element's location
-     */
-    public Location getLocation() {
-        return location;
-    }
-    
-    /**
-     * Set a comment associated with this element
-     *
-     * @param comment the comment to be associated with this element.
-     */
-    public void setComment(String comment) {
-        this.comment = comment;
-    }
-    
-    /**
-     * Get the comment associated with this element.
-     *
-     * @return the element's comment which may be null.
-     */
-    public String getComment() {
-        return comment;
-    }
-    
-    /**
-     * Set the aspects of this element
-     *
-     * @param aspects a Map of apects that relate to this build element.
-     */
-    public void setAspects(Map aspects) {
-        aspectMaps = new HashMap();
-        for (Iterator i = aspects.keySet().iterator(); i.hasNext(); ) {
-            String aspectName = (String)i.next();
-            int separator = aspectName.indexOf(":");
-            if (separator != -1) {
-                String prefix = aspectName.substring(0, separator);
-                String name = aspectName.substring(separator + 1);
-                if (prefix.length() != 0 && name.length() != 0) {
-                    Map prefixMap = (Map)aspectMaps.get(prefix);
-                    if (prefixMap == null) {
-                        prefixMap = new HashMap();
-                        aspectMaps.put(prefix, prefixMap);
-                    }
-                    prefixMap.put(name, aspects.get(aspectName));
-                }
-            }
-        }
-    }
-    
-    /**
-     * Get an iterator on the aspects which have been given values on this element
-     * 
-     * @return an iterator of Strings , being the aspects which have been given values on
-     * this element.
-     */
-    public Iterator getAspectNames() {
-        return aspectMaps.keySet().iterator();
-    }
-    
-    /**
-     * Get the set of attribute values related to the given aspect
-     *
-     * @param apsectPrefix the prefix used to identify the prefix.
-     *
-     * @return a map of the attribute values for the given aspect.
-     */
-    public Map getAspectAttributes(String aspectPrefix) {
-        return (Map)aspectMaps.get(aspectPrefix);
-    }
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/model/Project.java b/proposal/mutant/src/main/org/apache/ant/core/model/Project.java
deleted file mode 100644
index 1bb746f..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/model/Project.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.model;
-
-import org.apache.ant.core.support.*;
-import java.util.*;
-import java.net.URL;
-
-/**
- * A project is a collection of targets and global tasks. A project
- * may reference objects in other projects using named references of 
- * the form project:object
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class Project extends BuildElement {
-    /** The default target in this project. */
-    private String defaultTarget = null;
-
-    /** The base URL of this project. Relative locations are relative to this base.*/
-    private String base;
-    
-    /**
-     * The name of this project when referenced by a script within this project. 
-     */
-    private String name;
-    
-    /**
-     * These are the targets which belong to the project. They
-     * will have interdependencies which are used to determine
-     * which targets need to be executed before a given target.
-     */
-    private Map targets = new HashMap();
-    
-    /**
-     * The global tasks for this project. These are the tasks that will get executed
-     * whenever an execution context is associated with this project.
-     */
-    private List tasks = new ArrayList();
-    
-    /**
-     * The projects imported into this project. Each imported project is
-     * given a name which is used to identify access to that project's
-     * elements.
-     */
-    private Map importedProjects = new HashMap(); 
-
-    /**
-     * The URL where the project is defined.
-     * 
-     */
-    private URL sourceURL;
-
-    /**
-     * Create a Project
-     *
-     * @param sourceURL the URL where the project is defined.
-     * @param location the location of this element within the source.
-     */
-    public Project(URL sourceURL, Location location) {
-        super(location);
-        this.sourceURL = sourceURL;
-    }
-
-    /**
-     * Get the URL where this project is defined
-     *
-     * @return the project source URL
-     */
-    public URL getSourceURL() {
-        return sourceURL;
-    }
-        
-    /**
-     * Add a target to the project.
-     *
-     * @param target the Target to be added
-     * 
-     * @throws ProjectModelException if a target with the same name already exists.
-     */
-    public void addTarget(Target target) throws ProjectModelException {
-        if (targets.containsKey(target.getName())) {
-            throw new ProjectModelException("A target with name '" + target.getName() +
-                                            "' has already been defined in this project", 
-                                            target.getLocation());
-        }                                            
-        targets.put(target.getName(), target);
-    }
-    
-    /**
-     * Set the defautl target of this project.
-     *
-     * @param defaultTarget the name of the defaultTarget of this project.
-     */
-    public void setDefaultTarget(String defaultTarget) {
-        this.defaultTarget = defaultTarget;
-    }
-    
-    /**
-     * Get the Project's default Target, if any
-     *
-     * @return the project's defautl target or null if there is no default.
-     */
-    public String getDefaultTarget() {
-        return defaultTarget;
-    }
-
-    /**
-     * Set the base URL for this project.
-     *
-     * @param base the baseURL for this project.
-     */
-    public void setBase(String base) {
-        this.base = base;
-    }
-        
-    /**
-     * Get the base URL for this project.
-     *
-     * @return the baseURL for this project as a string.
-     */
-    public String getBase() {
-        return base;
-    }
-        
-    /**
-     * Set the name of this project.
-     *
-     * @param name the name for this project.
-     */
-    public void setName(String name) {
-        this.name = name;
-    }
-        
-
-    /**
-     * Add a task to the list of global tasks for this project.
-     *
-     * @param task a task to be executed when an execution context
-     * is associated with the Project (a non-target task)
-     */
-    public void addTask(TaskElement task) {
-        tasks.add(task);
-    }
-    
-    /**
-     * Import a project to be referenced using the given name.
-     *
-     * @param importName the name under which the project will be referenced.
-     * @param project the imported project.
-     *
-     * @throws ProjectModelException if an existing project has already 
-     *                               been imported with that name.
-     */
-    public void importProject(String importName, Project project) 
-            throws ProjectModelException {
-        if (importedProjects.containsKey(importName)) {
-            throw new ProjectModelException("A project has already been imported with name '" + 
-                                            importName + "'");
-        }
-        importedProjects.put(importName, project);
-    }
-    
-    /**
-     * Get the targets in this project.
-     *
-     * @return an iterator returning Target objects.
-     */
-    public Iterator getTargets() {
-        return targets.values().iterator();
-    }
-    
-    /**
-     * Get the target with the given name
-     *
-     * @param targetName the name of the desired target.
-     *
-     * @return the target with the given name or null if there is no
-     *         such target.
-     */
-    public Target getTarget(String targetName) {
-        return (Target)targets.get(targetName);
-    }
-    
-    /**
-     * Get the name sof the imported projects.
-     *
-     * @return an iterator which returns the name sof the imported projects.
-     */
-    public Iterator getImportedProjectNames() {
-        return importedProjects.keySet().iterator();
-    }
-    
-    /**
-     * Get an imported project by name
-     *
-     * @param importName the name under which the project was imported.
-     *
-     * @return the project asscociated with the given import name or null 
-     *         if there is no such project.
-     */
-    public Project getImportedProject(String importName) {
-        return (Project)importedProjects.get(importName);
-    }
-    
-    /**
-     * Get the initialisation tasks for this project
-     *
-     * @return an iterator over the set of tasks for this project.
-     */
-    public Iterator getTasks() {
-        return tasks.iterator();
-    }
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/model/ProjectModelException.java b/proposal/mutant/src/main/org/apache/ant/core/model/ProjectModelException.java
deleted file mode 100644
index 68cc9a8..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/model/ProjectModelException.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.model;
-
-import org.apache.ant.core.support.*;
-import java.util.*;
-import java.net.URL;
-
-/**
- * A project model exception is thrown when an operation is attempted
- * which would violate the integrity of the Project/Target/Task object
- * model
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class ProjectModelException extends AntException {
-    /**
-     * Constructs an exception with the given descriptive message.
-     *
-     * @param msg Description of or information about the exception.
-     */
-    public ProjectModelException(String msg) {
-        super(msg);
-    }
-
-    /**
-     * Constructs an exception with the given descriptive message and a location
-     * in a file.
-     * @param msg Description of or information about the exception.
-     * @param location Location in the project file where the error occured.
-     */
-    public ProjectModelException(String msg, Location location) {
-        super(msg, location);
-    }
-
-    /**
-     * Constructs an exception with the given message and exception as
-     * a root cause.
-     *
-     * @param msg Description of or information about the exception.
-     * @param cause Throwable that might have cause this one.
-     */
-    public ProjectModelException(String msg, Throwable cause) {
-        super(msg, cause);
-    }
-
-    /**
-     * Constructs an exception with the given message and exception as
-     * a root cause and a location in a file.
-     * @param msg Description of or information about the exception.
-     * @param cause Exception that might have cause this one.
-     * @param location Location in the project file where the error occured.
-     */
-    public ProjectModelException(String msg, Throwable cause, Location location) {
-        super(msg, cause, location);
-    }
-
-    /**
-     * Constructs an exception with the given exception as a root cause.
-     *
-     * @param cause Exception that might have caused this one.
-     */
-    public ProjectModelException(Throwable cause) {
-        super(cause);
-    }
-
-    /**
-     * Constructs an exception with the given exception as
-     * a root cause and a location in a file.
-     * @param cause Exception that might have cause this one.
-     * @param location Location in the project file where the error occured.
-     */
-    public ProjectModelException(Throwable cause, Location location) {
-        super(cause, location);
-    }
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/model/Target.java b/proposal/mutant/src/main/org/apache/ant/core/model/Target.java
deleted file mode 100644
index e86582f..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/model/Target.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.model;
-
-import java.util.*;
-import org.apache.ant.core.support.*;
-
-/**
- * A Target is a collection of tasks. It may have
- * dependencies on other targets
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class Target extends BuildElement {
-    private List dependencies = new ArrayList();
-    
-    /**
-     * This target's list of tasks
-     */
-    private List tasks = new ArrayList();
-    
-    /**
-     * The target's name.
-     */
-    private String name;
-    
-    /**
-     * Construct the target, given its name
-     *
-     * @param location the location of the element
-     * @param name the target's name.
-     */
-    public Target(Location location, String name) {
-        super(location);
-        this.name = name;
-    }
-    
-    /**
-     * Get this target's name.
-     *
-     * @return the target's name.
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Add a task to this target
-     *
-     * @param task the task to be added to the target.
-     */
-    public void addTask(TaskElement task) {
-        tasks.add(task);
-    }
-    
-    /**
-     * Add a dependency to this target
-     *
-     * @param dependency the name of a target upon which this target 
-     *                   depends
-     */
-    public void addDependency(String dependency) {
-        dependencies.add(dependency);
-    }
-
-    /**
-     * Get this target's dependencies.
-     *   
-     * @return an iterator over the target's dependencies.
-     */
-    public Iterator getDependencies() {
-        return dependencies.iterator();
-    }
-    
-    /**
-     * Get the tasks for this target
-     *
-     * @return an iterator over the set of tasks for this target.
-     */
-    public Iterator getTasks() {
-        return tasks.iterator();
-    }
-    
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/model/TaskElement.java b/proposal/mutant/src/main/org/apache/ant/core/model/TaskElement.java
deleted file mode 100644
index 7c0b738..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/model/TaskElement.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.model;
-
-import java.util.*;
-import org.apache.ant.core.support.*;
-
-/**
- * A TaskElement is a holder for Task configuration information.
- * TaskElements may be grouped into a hierarchy to capture
- * any level of Task element nesting.
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class TaskElement extends BuildElement {
-    /** The attributes of this task element */
-    private Map attributes = new HashMap();
-
-    /**
-     * The task's name or type
-     */
-    private String type;
-    
-    /**
-     * The task elements that make up this task.
-     */
-    private List taskElements = new ArrayList();
-    
-    /** The content (text) of this task */
-    private String text = "";
-    
-    /**
-     * Create a Task of the given type
-     *
-     * @param location the location of the element
-     * @param type the task element's type
-     */
-    public TaskElement(Location location, String type) {
-        super(location);
-        this.type = type;
-    }
-    
-    /**
-     * Add text to this task.
-     *
-     * @param text the element text to add.
-     */
-    public void addText(String text) {
-        this.text += text;
-    }
-
-    /**
-     * Get the text of this task
-     *
-     * @return the task's text.
-     */
-     public String getText() {
-        return text;
-    }
-     
-    /**
-     * Add a task element to this task
-     * 
-     * @param taskElement the task element to be added.
-     */
-    public void addTaskElement(TaskElement taskElement) {
-        taskElements.add(taskElement);
-    }
-
-    /**
-     * Get an iterator over this element's nexted elements
-     *
-     * @return an iterator which provides TaskElement instances
-     */
-    public Iterator getNestedElements() {
-        return taskElements.iterator();
-    }
-    
-    /**
-     * Get the type of this task element
-     *
-     * @return the element's type
-     */
-    public String getType() {
-        return type;
-    }
-
-    /**
-     * Add an attribute to this task element
-     *
-     * @param attributeName the name of the attribute
-     * @param attributeValue the attribute's value.
-     */
-    public void addAttribute(String attributeName, String attributeValue) {
-        attributes.put(attributeName, attributeValue);
-    }
-    
-    /**
-     * Get an iterator over the task's attributes
-     *
-     * @return an iterator which provide's attribute names
-     */
-    public Iterator getAttributeNames() {
-        return attributes.keySet().iterator();
-    }
-    
-    /**
-     * Get the value of an attribute.
-     *
-     * @param attributeName the name of the attribute
-     *
-     * @return the value of the attribute or null if there is no such attribute.
-     */
-    public String getAttributeValue(String attributeName) {
-        return (String)attributes.get(attributeName);
-    }
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/support/AntClassLoader.java b/proposal/mutant/src/main/org/apache/ant/core/support/AntClassLoader.java
deleted file mode 100644
index 697da33..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/support/AntClassLoader.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.support;
-
-import java.util.*;
-import java.net.*;
-import java.io.*;
-
-/**
- * The AntClassLoader is a type of URL classloader which reverses the standard
- * lookup order to load things from the URLs first and then to use the parent class
- * loader only if the class does not exist in the URLs.
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class AntClassLoader extends URLClassLoader {
-    /** A Debug label to print when the Classloader finds or fails to find a class. */
-    private String debugLabel = null;
-    
-    /** A flag whihc controls whether messages are logged by the loader */
-    private boolean debug = false;
-
-    private void dumpURLs() {
-        if (debug && debugLabel != null) {
-            System.out.println(debugLabel + ": loader URLs");
-            URL[] urls = getURLs();
-            for (int i = 0; i < urls.length; ++i) {
-                System.out.println(debugLabel + ": URL: " + urls[i]);
-            }
-        }
-    }        
-    
-    public AntClassLoader(URL[] urls) {
-        super(urls);
-    }
-
-    public AntClassLoader(URL[] urls, String debugLabel) {
-        super(urls);
-        this.debugLabel = debugLabel;
-    }
-
-    public AntClassLoader(URL[] urls,
-                          ClassLoader parent) {
-        super(urls, parent);
-    }
-    
-    public AntClassLoader(URL[] urls,
-                          ClassLoader parent, String debugLabel) {
-        super(urls, parent);
-        this.debugLabel = debugLabel;
-    }
-    
-    public void setDebug(boolean debug) {
-        this.debug = debug;
-        dumpURLs();    
-    }
-
-    protected Class loadClass(String name, boolean resolve) 
-            throws ClassNotFoundException {
-        if (debug && debugLabel != null) {                
-            System.out.println(debugLabel + ": Trying to load class " + name);
-        }
-
-        Class c = findLoadedClass(name);
-        if (c == null) {
-            try {
-                c = findClass(name);
-                if (debug && debugLabel != null) {
-                    System.out.println(debugLabel + ": Found class " + name + " in this loader");
-                }
-            } catch (ClassNotFoundException e) {
-                c = super.loadClass(name, resolve);
-                if (debug && debugLabel != null) {
-                    System.out.println(debugLabel + ": Found class " + name + " in parent loader");
-                }
-                return c;
-            }
-        }
-        if (resolve) {
-            resolveClass(c);
-        }
-        return c;
-    }
-        
-    public void addURL(URL url) {
-        super.addURL(url);
-    }
-
-    public URL getResource(String name) {
-        URL url = findResource(name);
-        if (url == null) {
-            url = super.getResource(name);
-        }
-        
-        return url;
-    }
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/support/AntException.java b/proposal/mutant/src/main/org/apache/ant/core/support/AntException.java
deleted file mode 100644
index 1520452..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/support/AntException.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.support;
-
-
-import java.io.*;
-
-/**
- * An AntException indicates some exceptional case has been encountered in
- * the processing of Ant. AntExceptions may accept a Throwable as a
- * cause allowing exceptions to be nested
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */
-public abstract class AntException extends Exception {
-    /** 
-     * Exception that might have caused this one. 
-     */
-    private Throwable cause = null;
-
-    /**
-     * The location of the element which is associated with this exception if known.
-     */
-    private Location location = Location.UNKNOWN_LOCATION;
-    
-    /**
-     * Constructs an exception with the given descriptive message.
-     * @param msg Description of or information about the exception.
-     */
-    public AntException(String msg) {
-        super(msg);
-    }
-
-    /**
-     * Constructs an exception with the given message and exception as
-     * a root cause.
-     * @param msg Description of or information about the exception.
-     * @param cause Throwable that might have cause this one.
-     */
-    public AntException(String msg, Throwable cause) {
-        super(msg);
-        this.cause = cause;
-    }
-
-    /**
-     * Constructs an exception with the given message and exception as
-     * a root cause and a location in a file.
-     * @param msg Description of or information about the exception.
-     * @param cause Exception that might have cause this one.
-     * @param location Location in the project file where the error occured.
-     */
-    public AntException(String msg, Throwable cause, Location location) {
-        this(msg, cause);
-        setLocation(location);
-    }
-
-    /**
-     * Constructs an exception with the given exception as a root cause.
-     * @param cause Exception that might have caused this one.
-     */
-    public AntException(Throwable cause) {
-        super(cause.getMessage());
-        this.cause = cause;
-    }
-
-    /**
-     * Constructs an exception with the given descriptive message and a location
-     * in a file.
-     * @param msg Description of or information about the exception.
-     * @param location Location in the project file where the error occured.
-     */
-    public AntException(String msg, Location location) {
-        super(msg);
-        setLocation(location);
-    }
-
-    /**
-     * Constructs an exception with the given exception as
-     * a root cause and a location in a file.
-     * @param cause Exception that might have cause this one.
-     * @param location Location in the project file where the error occured.
-     */
-    public AntException(Throwable cause, Location location) {
-        this(cause);
-        setLocation(location);
-    }
-
-    /**
-     * Returns the nested exception.
-     *
-     * @return the underlying exception
-     */
-    public Throwable getCause() {
-        return cause;
-    }
-
-    /**
-     * Sets the file location where the error occured.
-     */
-    public void setLocation(Location location) {
-        if (location == null) {
-            this.location = Location.UNKNOWN_LOCATION;
-        }
-        else {
-            this.location = location;
-        }
-    }
-
-    /**
-     * Returns the file location where the error occured.
-     */
-    public Location getLocation() {
-        return location;
-    }
-
-    /**
-     * Print the stack trace to System.err
-     */
-    public void printStackTrace() {
-        printStackTrace(System.err);
-    }
-    
-    /**
-     * Print the stack trace to the given PrintStream
-     *
-     * @param ps the PrintStream onto which the stack trace 
-     *           of this exception is to be printed
-     */
-    public void printStackTrace(PrintStream ps) {
-        synchronized (ps) {
-            ps.println(this);
-            if (cause != null) {
-                ps.println("--- Nested Exception ---");
-                cause.printStackTrace(ps);
-            }
-        }
-    }
-    
-    /**
-     * Print the stack trace to the given PrintWriter
-     *
-     * @param pw the PrintWriter onto which the stack trace 
-     *           of this exception is to be printed
-     */
-    public void printStackTrace(PrintWriter pw) {
-        synchronized (pw) {
-            pw.println(this);
-            if (cause != null) {
-                pw.println("--- Nested Exception ---");
-                cause.printStackTrace(pw);
-            }
-        }
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/support/AntLocator.java b/proposal/mutant/src/main/org/apache/ant/core/support/AntLocator.java
deleted file mode 100644
index 859a635..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/support/AntLocator.java
+++ /dev/null
@@ -1,331 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.support;
-
-import java.util.*;
-import java.net.*;
-import java.io.*;
-
-/**
- * The Ant Locator is used to find various Ant components without
- * requiring the user to maintain environment properties. 
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class AntLocator {
-    private AntLocator() {}
-    
-    /**
-     * Get the URL for the given class's load location.
-     *
-     * @param theClass the class whose loadURL is desired.
-     * @return a URL which identifies the component from which this class was loaded.
-     *
-     * @throws LocationException if the class' URL cannot be constructed.
-     */
-    static public URL getClassLocationURL(Class theClass) 
-            throws LocationException {
-        String className = theClass.getName().replace('.', '/') + ".class";
-        URL classRawURL = theClass.getClassLoader().getResource(className);
-        
-        try {
-            String fileComponent = classRawURL.getFile();
-            if (classRawURL.getProtocol().equals("file")) {
-                // Class comes from a directory of class files rather than
-                // from a jar. 
-                int classFileIndex = fileComponent.lastIndexOf(className);
-                if (classFileIndex != -1) {
-                    fileComponent = fileComponent.substring(0, classFileIndex);
-                }
-                
-                return new URL("file:" + fileComponent);
-            }
-            else if (classRawURL.getProtocol().equals("jar")) {
-                // Class is coming from a jar. The file component of the URL
-                // is actually the URL of the jar file
-                int classSeparatorIndex = fileComponent.lastIndexOf("!");
-                if (classSeparatorIndex != -1) {
-                    fileComponent = fileComponent.substring(0, classSeparatorIndex);
-                }
-                
-                return new URL(fileComponent);
-            }
-            else {
-                // its running out of something besides a jar. We just return the Raw
-                // URL as a best guess
-                return classRawURL;
-            }
-        }
-        catch (MalformedURLException e) {
-            throw new LocationException(e);
-        }
-    }
-
-
-    /**
-     * Get the location of AntHome
-     *
-     * @return the URL containing AntHome.
-     *
-     * @throws LocationException if Ant's home cannot be determined.
-     */
-    static public URL getAntHome() throws LocationException {
-        try {
-            URL libraryURL = getLibraryURL();
-            if (libraryURL != null) {
-                return new URL(libraryURL, "..");
-            }
-            else {
-                return null;
-            }
-        }
-        catch (MalformedURLException e) {
-            e.printStackTrace();
-            return null;
-        }
-    }
-
-    /**
-     * Get a URL to the Ant core jar. Other jars can be located 
-     * from this as relative URLs
-     *
-     * @return a URL containing the Ant core or null if the core cannot be determined.
-     *
-     * @throws LocationException if the URL of the core.jar cannot be determined.
-     */
-    static public URL getCoreURL() throws LocationException {
-        return getClassLocationURL(AntLocator.class);
-    }
-    
-    /**
-     * Get a URL to the Ant Library directory.
-     *
-     * @throws LocationException if the location of the Ant library directory cannot 
-     *         be determined
-     */
-    static public URL getLibraryURL() throws LocationException {
-        URL coreURL = getCoreURL();
-        
-        try {
-            if (coreURL.getProtocol().equals("file") &&
-                coreURL.getFile().endsWith("/")) {
-                // we are running from a set of classes. This should only happen
-                // in an Ant build situation. We use some embedded knowledge to
-                // locate the lib directory
-                File coreClassDirectory = new File(coreURL.getFile());
-                File libDirectory = coreClassDirectory.getParentFile().getParentFile();
-                if (!libDirectory.exists()) {
-                    throw new LocationException("Ant library directory " + libDirectory + 
-                                                   " does not exist");
-                }
-                return (new File(libDirectory, "lib")).toURL();
-            }
-            else {
-                String coreURLString = coreURL.toString();
-                int index = coreURLString.lastIndexOf("/");
-                if (index != -1) {
-                    coreURLString = coreURLString.substring(0, index+1);
-                }
-                return new URL(coreURLString);
-            }
-        }
-        catch (MalformedURLException e) {
-            throw new LocationException(e);
-        }
-    }
-    
-    /**
-     * Get a classloader with which to load the SAX parser
-     *
-     * @return the classloader to use to load Ant's XML parser
-     *
-     * @throws LocationException if the location of the parser jars 
-     *                              could not be determined.
-     */
-    static public ClassLoader getParserClassLoader(Properties properties) 
-            throws LocationException {
-        // we look for the parser directory based on a system property first
-        String parserURLString = properties.getProperty(Constants.PropertyNames.PARSER_URL);
-        URL parserURL = null;
-        if (parserURLString != null) {
-            try {
-                parserURL = new URL(parserURLString);
-            }
-            catch (MalformedURLException e) {
-                throw new LocationException("XML Parser URL " + parserURLString + 
-                                               " is malformed.", e);
-            }
-        }
-        else {
-            try {
-                parserURL = new URL(getLibraryURL(), "parser/");
-            }
-            catch (Exception e) {
-                // ignore - we will just use the default class loader.
-            }
-        }
-
-        if (parserURL != null) {
-            try {
-                URL[] parserURLs = null;
-                if (parserURL.getProtocol().equals("file")) {
-                    // build up the URLs for each jar file in the 
-                    // parser directory
-                    parserURLs = getDirectoryJarURLs(new File(parserURL.getFile()));
-                }
-                else {
-                    // we can't search the URL so we look for a known parser relative to
-                    // that URL
-                    String defaultParser = properties.getProperty(Constants.PropertyNames.DEFAULT_PARSER);
-                    if (defaultParser == null) {
-                        defaultParser = Constants.Defaults.DEFAULT_PARSER;
-                    }
-                    
-                    parserURLs = new URL[1];
-                    parserURLs[0] = new URL(parserURL, defaultParser);
-                    
-                }
-                
-                return new AntClassLoader(parserURLs, "parser");
-            }
-            catch (MalformedURLException e) {
-                throw new LocationException(e);
-            }
-        }
-        
-        return AntLocator.class.getClassLoader();
-    }
-
-    /**
-     * Get an array of URLs for each file matching the given set of extensions
-     *
-     * @param directory the local directory
-     * @param extensions the set of extensions to be returned
-     *
-     * @return an array of URLs for the file found in the directory.
-     */
-    static public URL[] getDirectoryURLs(File directory, final Set extensions) {
-        URL[] urls = new URL[0];
-        
-        if (!directory.exists()) {
-            return urls;
-        }
-        
-        File[] jars = directory.listFiles(new FilenameFilter() {
-                                                public boolean accept(File dir, String name) {
-                                                    int extensionIndex = name.lastIndexOf(".");
-                                                    if (extensionIndex == -1) {
-                                                        return false;
-                                                    }
-                                                    String extension = name.substring(extensionIndex);
-                                                    return extensions.contains(extension);
-                                                }
-                                            });
-        urls = new URL[jars.length];
-        for (int i = 0; i < jars.length; ++i) {
-            try {
-                urls[i] = jars[i].toURL();
-            }
-            catch (MalformedURLException e) {
-                // just ignore
-            }
-        }
-        return urls;
-    }
-    
-
-
-    
-    /**
-     * Get an array of URLs for each jar file in a local directory.
-     *
-     * @param directory the local directory
-     *
-     * @return an array of URLs for the jars found in the directory.
-     */
-    static private URL[] getDirectoryJarURLs(File directory) {
-        HashSet extensions = new HashSet();
-        extensions.add(".jar");
-        return getDirectoryURLs(directory, extensions);        
-    }
-    
-    /**
-     * Get the Core Class Loader. The core requires a SAX parser which must come from the
-     * given classloader
-     *
-     * @throws LocationException if the location of the core ant classes could 
-     *                              not be determined
-     */
-    static public AntClassLoader getCoreClassLoader(Properties properties) 
-            throws LocationException {
-        URL[] coreURL = new URL[1];
-        coreURL[0] = getCoreURL();
-        AntClassLoader coreLoader 
-            = new AntClassLoader(coreURL, getParserClassLoader(properties), "core");
-        URL libraryURL = getLibraryURL();
-        if (libraryURL != null && libraryURL.getProtocol().equals("file")) {
-            // we can search this
-
-            URL[] optionalURLs = getDirectoryJarURLs(new File(libraryURL.getFile(), "optional"));
-            for (int i = 0; i < optionalURLs.length; ++i) {
-                coreLoader.addURL(optionalURLs[i]);
-            }
-            
-        }
-        
-        return coreLoader;          
-    }        
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/support/ConfigException.java b/proposal/mutant/src/main/org/apache/ant/core/support/ConfigException.java
deleted file mode 100644
index c4863de..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/support/ConfigException.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.support;
-
-import java.io.*;
-
-/**
- * A ConfigException indicates a problem with 
- * Ant's configuration.
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */
-public class ConfigException extends AntException {
-    /**
-     * Constructs an exception with the given descriptive message.
-     *
-     * @param msg Description of or information about the exception.
-     */
-    public ConfigException(String msg) {
-        super(msg);
-    }
-
-    /**
-     * Constructs an exception with the given descriptive message and a location
-     * in a file.
-     * @param msg Description of or information about the exception.
-     * @param location Location in the project file where the error occured.
-     */
-    public ConfigException(String msg, Location location) {
-        super(msg, location);
-    }
-
-    /**
-     * Constructs an exception with the given message and exception as
-     * a root cause.
-     *
-     * @param msg Description of or information about the exception.
-     * @param cause Throwable that might have cause this one.
-     */
-    public ConfigException(String msg, Throwable cause) {
-        super(msg, cause);
-    }
-
-    /**
-     * Constructs an exception with the given message and exception as
-     * a root cause and a location in a file.
-     * @param msg Description of or information about the exception.
-     * @param cause Exception that might have cause this one.
-     * @param location Location in the project file where the error occured.
-     */
-    public ConfigException(String msg, Throwable cause, Location location) {
-        super(msg, cause, location);
-    }
-
-    /**
-     * Constructs an exception with the given exception as a root cause.
-     *
-     * @param cause Exception that might have caused this one.
-     */
-    public ConfigException(Throwable cause) {
-        super(cause);
-    }
-
-    /**
-     * Constructs an exception with the given exception as
-     * a root cause and a location in a file.
-     * @param cause Exception that might have cause this one.
-     * @param location Location in the project file where the error occured.
-     */
-    public ConfigException(Throwable cause, Location location) {
-        super(cause, location);
-    }
-
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/support/Constants.java b/proposal/mutant/src/main/org/apache/ant/core/support/Constants.java
deleted file mode 100644
index 1be623d..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/support/Constants.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.support;
-
-import java.util.*;
-import java.net.*;
-import java.io.*;
-
-/**
- * Constants used by the Ant core
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class Constants {
-    static public class PropertyNames {
-        static public final String PARSER_URL = "ant.parser.url";
-        static public final String DEFAULT_PARSER = "ant.parser.default";
-    }
-    
-    static public class Defaults {
-        static public final String DEFAULT_PARSER = "crimson.jar";
-    }
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/support/Location.java b/proposal/mutant/src/main/org/apache/ant/core/support/Location.java
deleted file mode 100644
index 9e55bdd..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/support/Location.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.support;
-
-/**
- * Stores the file name and line number in a file.
- */
-public class Location {
-    /**
-     * The source URL to which this location relates.
-     */
-    private String source;
-    
-    /**
-     * The line number of this location within the source
-     */
-    private int lineNumber;
-    
-    /**
-     * The column number of this locatin within the source
-     */
-    private int columnNumber;
-
-    /**
-     * Standard unknown location constant;
-     */
-    public static final Location UNKNOWN_LOCATION = new Location();
-
-    /**
-     * Creates an "unknown" location.
-     */
-    private Location() {
-        this(null, 0, 0);
-    }
-
-    /**
-     * Creates a location consisting of a source location but no line number.
-     *
-     * @param source the source (URL) to which this location is associated.
-     */
-    public Location(String source) {
-        this(source, 1, 1);
-    }
-
-    /**
-     * Creates a location consisting of a source location and co-ordinates within that
-     * source
-     *
-     * @param source the source (URL) to which this location is associated.
-     * @param lineNumber the line number of this location
-     * @param columnNumber the column number of this location
-     */
-    public Location(String source, int lineNumber, int columnNumber) {
-        this.source = source;
-        this.lineNumber = lineNumber;
-        this.columnNumber = columnNumber;
-    }
-
-    /**
-     * Returns the source name, line number and a trailing space. An error
-     * message can be appended easily. For unknown locations, returns
-     * an empty string.
-     *
-     * @return a suitable string representation of the location
-     */
-    public String toString() {
-        StringBuffer buf = new StringBuffer();
-
-        if (source != null) {
-            if (source.startsWith("file:")) {
-                buf.append(source.substring(5));
-            }
-            else {
-                buf.append(source);
-            }
-
-            if (lineNumber != 0) {
-                buf.append(":");
-                buf.append(lineNumber);
-            }
-
-            buf.append(": ");
-        }
-
-        return buf.toString();
-    }
-    
-    /**
-     * Get the source URL for this location
-     *
-     * @return a URL string 
-     */
-    public String getSourceURL() {
-        return source;
-    }
-    
-    /**
-     * Get the line number of this location
-     *
-     * @return an integer line number
-     */
-    public int getLineNumber() {
-        return lineNumber;
-    }
-
-    /**
-     * Get the column number of this location
-     *
-     * @return an integer column number
-     */
-    public int getColumnNumber() {
-        return columnNumber;
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/support/LocationException.java b/proposal/mutant/src/main/org/apache/ant/core/support/LocationException.java
deleted file mode 100644
index c3a32aa..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/support/LocationException.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.support;
-
-import java.util.*;
-import java.net.URL;
-
-/**
- * A LocationException is thrown when there is a problem determining
- * the location of an Ant component.
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class LocationException extends AntException {
-    /**
-     * Constructs an exception with the given descriptive message.
-     *
-     * @param msg Description of or information about the exception.
-     */
-    public LocationException(String msg) {
-        super(msg);
-    }
-
-    /**
-     * Constructs an exception with the given message and exception as
-     * a root cause.
-     *
-     * @param msg Description of or information about the exception.
-     * @param cause Throwable that might have cause this one.
-     */
-    public LocationException(String msg, Throwable cause) {
-        super(msg, cause);
-    }
-
-    /**
-     * Constructs an exception with the given exception as a root cause.
-     *
-     * @param cause Exception that might have caused this one.
-     */
-    public LocationException(Throwable cause) {
-        super(cause);
-    }
-
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/types/AbstractScanner.java b/proposal/mutant/src/main/org/apache/ant/core/types/AbstractScanner.java
deleted file mode 100644
index 0c96c79..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/types/AbstractScanner.java
+++ /dev/null
@@ -1,580 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000 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 "The Jakarta Project", "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.ant.core.types;
-
-import java.io.*;
-import java.util.*;
-import org.apache.ant.core.execution.*;
-
-/**
- * The abstract FileSetInfo performs all of the name matching and mapping operations
- * common to FileSetInfo classes.
- */
-public abstract class AbstractScanner implements FileSetScanner {
-    /** The list of patternSets to process on this directory */
-    List patternSets;
-    
-    /** Indicator for whether default excludes should be applied. */
-    boolean useDefaultExcludes;      
-    
-    /*
-     * The patterns for the files that should be included.
-     */
-    private String[] includes;
-
-    /**
-     * The patterns for the files that should be excluded.
-     */
-    private String[] excludes;
-
-    /**
-     * Patterns that should be excluded by default.
-     *
-     * @see #addDefaultExcludes()
-     */
-    protected final static String[] DEFAULTEXCLUDES = {
-        "**/*~",
-        "**/#*#",
-        "**/.#*",
-        "**/%*%",
-        "**/CVS",
-        "**/CVS/**",
-        "**/.cvsignore",
-        "**/SCCS",
-        "**/SCCS/**"
-    };
-
-    public AbstractScanner(List patternSets, 
-                           boolean useDefaultExcludes) throws ExecutionException {
-        this.patternSets = patternSets;
-        this.useDefaultExcludes = useDefaultExcludes; 
-        
-        //convert patternsets into excludes
-        PatternSet combinedSet = new PatternSet();
-        for (Iterator i = patternSets.iterator(); i.hasNext(); ) {
-            PatternSet set = (PatternSet)i.next();
-            combinedSet.append(set);
-        }
-        
-        String[] includes = combinedSet.getIncludePatterns();
-        if (includes == null) {
-            // No includes supplied, so set it to 'matches all'
-            includes = new String[1];
-            includes[0] = "**";
-        }
-        String[] excludes = combinedSet.getExcludePatterns();
-        if (excludes == null) {
-            excludes = new String[0];
-        }
-
-        setIncludes(includes);
-        setExcludes(excludes);
-        if (useDefaultExcludes) {
-            addDefaultExcludes();
-        }
-    }
-
-    /**
-     * Sets the set of include patterns to use. All '/' and '\' characters are
-     * replaced by <code>File.separatorChar</code>. So the separator used need
-     * not match <code>File.separatorChar</code>.
-     * <p>
-     * When a pattern ends with a '/' or '\', "**" is appended.
-     *
-     * @param includes list of include patterns
-     */
-    protected void setIncludes(String[] includes) {
-        if (includes == null) {
-            this.includes = null;
-        } else {
-            this.includes = new String[includes.length];
-            for (int i = 0; i < includes.length; i++) {
-                String pattern;
-                pattern = includes[i].replace('/',File.separatorChar).replace('\\',File.separatorChar);
-                if (pattern.endsWith(File.separator)) {
-                    pattern += "**";
-                }
-                this.includes[i] = pattern;
-            }
-        }
-    }
-
-    /**
-     * Sets the set of exclude patterns to use. All '/' and '\' characters are
-     * replaced by <code>File.separatorChar</code>. So the separator used need
-     * not match <code>File.separatorChar</code>.
-     * <p>
-     * When a pattern ends with a '/' or '\', "**" is appended.
-     *
-     * @param excludes list of exclude patterns
-     */
-    protected void setExcludes(String[] excludes) {
-        if (excludes == null) {
-            this.excludes = null;
-        } else {
-            this.excludes = new String[excludes.length];
-            for (int i = 0; i < excludes.length; i++) {
-                String pattern;
-                pattern = excludes[i].replace('/',File.separatorChar).replace('\\',File.separatorChar);
-                if (pattern.endsWith(File.separator)) {
-                    pattern += "**";
-                }
-                this.excludes[i] = pattern;
-            }
-        }
-    }
-
-    /**
-     * Does the path match the start of this pattern up to the first "**".
-     +
-     * <p>This is not a general purpose test and should only be used if you
-     * can live with false positives.</p>
-     *
-     * <p><code>pattern=**\\a</code> and <code>str=b</code> will yield true.
-     *
-     * @param pattern the (non-null) pattern to match against
-     * @param str     the (non-null) string (path) to match
-     */
-    protected static boolean matchPatternStart(String pattern, String str) {
-        // When str starts with a File.separator, pattern has to start with a
-        // File.separator.
-        // When pattern starts with a File.separator, str has to start with a
-        // File.separator.
-        if (str.startsWith(File.separator) !=
-            pattern.startsWith(File.separator)) {
-            return false;
-        }
-
-        Vector patDirs = new Vector();
-        StringTokenizer st = new StringTokenizer(pattern,File.separator);
-        while (st.hasMoreTokens()) {
-            patDirs.addElement(st.nextToken());
-        }
-
-        Vector strDirs = new Vector();
-        st = new StringTokenizer(str,File.separator);
-        while (st.hasMoreTokens()) {
-            strDirs.addElement(st.nextToken());
-        }
-
-        int patIdxStart = 0;
-        int patIdxEnd   = patDirs.size()-1;
-        int strIdxStart = 0;
-        int strIdxEnd   = strDirs.size()-1;
-
-        // up to first '**'
-        while (patIdxStart <= patIdxEnd && strIdxStart <= strIdxEnd) {
-            String patDir = (String)patDirs.elementAt(patIdxStart);
-            if (patDir.equals("**")) {
-                break;
-            }
-            if (!match(patDir,(String)strDirs.elementAt(strIdxStart))) {
-                return false;
-            }
-            patIdxStart++;
-            strIdxStart++;
-        }
-
-        if (strIdxStart > strIdxEnd) {
-            // String is exhausted
-            return true;
-        } else if (patIdxStart > patIdxEnd) {
-            // String not exhausted, but pattern is. Failure.
-            return false;
-        } else {
-            // pattern now holds ** while string is not exhausted
-            // this will generate false positives but we can live with that.
-            return true;
-        }
-    }
-
-    /**
-     * Matches a path against a pattern.
-     *
-     * @param pattern the (non-null) pattern to match against
-     * @param str     the (non-null) string (path) to match
-     *
-     * @return <code>true</code> when the pattern matches against the string.
-     *         <code>false</code> otherwise.
-     */
-    protected static boolean matchPath(String pattern, String str) {
-        // When str starts with a File.separator, pattern has to start with a
-        // File.separator.
-        // When pattern starts with a File.separator, str has to start with a
-        // File.separator.
-        if (str.startsWith(File.separator) !=
-            pattern.startsWith(File.separator)) {
-            return false;
-        }
-
-        Vector patDirs = new Vector();
-        StringTokenizer st = new StringTokenizer(pattern,File.separator);
-        while (st.hasMoreTokens()) {
-            patDirs.addElement(st.nextToken());
-        }
-
-        Vector strDirs = new Vector();
-        st = new StringTokenizer(str,File.separator);
-        while (st.hasMoreTokens()) {
-            strDirs.addElement(st.nextToken());
-        }
-
-        int patIdxStart = 0;
-        int patIdxEnd   = patDirs.size()-1;
-        int strIdxStart = 0;
-        int strIdxEnd   = strDirs.size()-1;
-
-        // up to first '**'
-        while (patIdxStart <= patIdxEnd && strIdxStart <= strIdxEnd) {
-            String patDir = (String)patDirs.elementAt(patIdxStart);
-            if (patDir.equals("**")) {
-                break;
-            }
-            if (!match(patDir,(String)strDirs.elementAt(strIdxStart))) {
-                return false;
-            }
-            patIdxStart++;
-            strIdxStart++;
-        }
-        if (strIdxStart > strIdxEnd) {
-            // String is exhausted
-            for (int i = patIdxStart; i <= patIdxEnd; i++) {
-                if (!patDirs.elementAt(i).equals("**")) {
-                    return false;
-                }
-            }
-            return true;
-        } else {
-            if (patIdxStart > patIdxEnd) {
-                // String not exhausted, but pattern is. Failure.
-                return false;
-            }
-        }
-
-        // up to last '**'
-        while (patIdxStart <= patIdxEnd && strIdxStart <= strIdxEnd) {
-            String patDir = (String)patDirs.elementAt(patIdxEnd);
-            if (patDir.equals("**")) {
-                break;
-            }
-            if (!match(patDir,(String)strDirs.elementAt(strIdxEnd))) {
-                return false;
-            }
-            patIdxEnd--;
-            strIdxEnd--;
-        }
-        if (strIdxStart > strIdxEnd) {
-            // String is exhausted
-            for (int i = patIdxStart; i <= patIdxEnd; i++) {
-                if (!patDirs.elementAt(i).equals("**")) {
-                    return false;
-                }
-            }
-            return true;
-        }
-
-        while (patIdxStart != patIdxEnd && strIdxStart <= strIdxEnd) {
-            int patIdxTmp = -1;
-            for (int i = patIdxStart+1; i <= patIdxEnd; i++) {
-                if (patDirs.elementAt(i).equals("**")) {
-                    patIdxTmp = i;
-                    break;
-                }
-            }
-            if (patIdxTmp == patIdxStart+1) {
-                // '**/**' situation, so skip one
-                patIdxStart++;
-                continue;
-            }
-            // Find the pattern between padIdxStart & padIdxTmp in str between
-            // strIdxStart & strIdxEnd
-            int patLength = (patIdxTmp-patIdxStart-1);
-            int strLength = (strIdxEnd-strIdxStart+1);
-            int foundIdx  = -1;
-strLoop:
-            for (int i = 0; i <= strLength - patLength; i++) {
-                for (int j = 0; j < patLength; j++) {
-                    String subPat = (String)patDirs.elementAt(patIdxStart+j+1);
-                    String subStr = (String)strDirs.elementAt(strIdxStart+i+j);
-                    if (!match(subPat,subStr)) {
-                        continue strLoop;
-                    }
-                }
-
-                foundIdx = strIdxStart+i;
-                break;
-            }
-
-            if (foundIdx == -1) {
-                return false;
-            }
-
-            patIdxStart = patIdxTmp;
-            strIdxStart = foundIdx+patLength;
-        }
-
-        for (int i = patIdxStart; i <= patIdxEnd; i++) {
-            if (!patDirs.elementAt(i).equals("**")) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-
-
-    /**
-     * Matches a string against a pattern. The pattern contains two special
-     * characters:
-     * '*' which means zero or more characters,
-     * '?' which means one and only one character.
-     *
-     * @param pattern the (non-null) pattern to match against
-     * @param str     the (non-null) string that must be matched against the
-     *                pattern
-     *
-     * @return <code>true</code> when the string matches against the pattern,
-     *         <code>false</code> otherwise.
-     */
-    protected static boolean match(String pattern, String str) {
-        char[] patArr = pattern.toCharArray();
-        char[] strArr = str.toCharArray();
-        int patIdxStart = 0;
-        int patIdxEnd   = patArr.length-1;
-        int strIdxStart = 0;
-        int strIdxEnd   = strArr.length-1;
-        char ch;
-
-        boolean containsStar = false;
-        for (int i = 0; i < patArr.length; i++) {
-            if (patArr[i] == '*') {
-                containsStar = true;
-                break;
-            }
-        }
-
-        if (!containsStar) {
-            // No '*'s, so we make a shortcut
-            if (patIdxEnd != strIdxEnd) {
-                return false; // Pattern and string do not have the same size
-            }
-            for (int i = 0; i <= patIdxEnd; i++) {
-                ch = patArr[i];
-                if (ch != '?' && ch != strArr[i]) {
-                    return false; // Character mismatch
-                }
-            }
-            return true; // String matches against pattern
-        }
-
-        if (patIdxEnd == 0) {
-            return true; // Pattern contains only '*', which matches anything
-        }
-
-        // Process characters before first star
-        while((ch = patArr[patIdxStart]) != '*' && strIdxStart <= strIdxEnd) {
-            if (ch != '?' && ch != strArr[strIdxStart]) {
-                return false;
-            }
-            patIdxStart++;
-            strIdxStart++;
-        }
-        if (strIdxStart > strIdxEnd) {
-            // All characters in the string are used. Check if only '*'s are
-            // left in the pattern. If so, we succeeded. Otherwise failure.
-            for (int i = patIdxStart; i <= patIdxEnd; i++) {
-                if (patArr[i] != '*') {
-                    return false;
-                }
-            }
-            return true;
-        }
-
-        // Process characters after last star
-        while((ch = patArr[patIdxEnd]) != '*' && strIdxStart <= strIdxEnd) {
-            if (ch != '?' && ch != strArr[strIdxEnd]) {
-                return false;
-            }
-            patIdxEnd--;
-            strIdxEnd--;
-        }
-        if (strIdxStart > strIdxEnd) {
-            // All characters in the string are used. Check if only '*'s are
-            // left in the pattern. If so, we succeeded. Otherwise failure.
-            for (int i = patIdxStart; i <= patIdxEnd; i++) {
-                if (patArr[i] != '*') {
-                    return false;
-                }
-            }
-            return true;
-        }
-
-        // process pattern between stars. padIdxStart and patIdxEnd point
-        // always to a '*'.
-        while (patIdxStart != patIdxEnd && strIdxStart <= strIdxEnd) {
-            int patIdxTmp = -1;
-            for (int i = patIdxStart+1; i <= patIdxEnd; i++) {
-                if (patArr[i] == '*') {
-                    patIdxTmp = i;
-                    break;
-                }
-            }
-            if (patIdxTmp == patIdxStart+1) {
-                // Two stars next to each other, skip the first one.
-                patIdxStart++;
-                continue;
-            }
-            // Find the pattern between padIdxStart & padIdxTmp in str between
-            // strIdxStart & strIdxEnd
-            int patLength = (patIdxTmp-patIdxStart-1);
-            int strLength = (strIdxEnd-strIdxStart+1);
-            int foundIdx  = -1;
-strLoop:
-            for (int i = 0; i <= strLength - patLength; i++) {
-                for (int j = 0; j < patLength; j++) {
-                    ch = patArr[patIdxStart+j+1];
-                    if (ch != '?' && ch != strArr[strIdxStart+i+j]) {
-                        continue strLoop;
-                    }
-                }
-
-                foundIdx = strIdxStart+i;
-                break;
-            }
-
-            if (foundIdx == -1) {
-                return false;
-            }
-
-            patIdxStart = patIdxTmp;
-            strIdxStart = foundIdx+patLength;
-        }
-
-        // All characters in the string are used. Check if only '*'s are left
-        // in the pattern. If so, we succeeded. Otherwise failure.
-        for (int i = patIdxStart; i <= patIdxEnd; i++) {
-            if (patArr[i] != '*') {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    /**
-     * Tests whether a name matches against at least one include pattern.
-     *
-     * @param name the name to match
-     * @return <code>true</code> when the name matches against at least one
-     *         include pattern, <code>false</code> otherwise.
-     */
-    protected boolean isIncluded(String name) {
-        for (int i = 0; i < includes.length; i++) {
-            if (matchPath(includes[i],name)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Tests whether a name matches the start of at least one include pattern.
-     *
-     * @param name the name to match
-     * @return <code>true</code> when the name matches against at least one
-     *         include pattern, <code>false</code> otherwise.
-     */
-    protected boolean couldHoldIncluded(String name) {
-        for (int i = 0; i < includes.length; i++) {
-            if (matchPatternStart(includes[i],name)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Tests whether a name matches against at least one exclude pattern.
-     *
-     * @param name the name to match
-     * @return <code>true</code> when the name matches against at least one
-     *         exclude pattern, <code>false</code> otherwise.
-     */
-    protected boolean isExcluded(String name) {
-        for (int i = 0; i < excludes.length; i++) {
-            if (matchPath(excludes[i],name)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Adds the array with default exclusions to the current exclusions set.
-     *
-     */
-    public void addDefaultExcludes() {
-        int excludesLength = excludes == null ? 0 : excludes.length;
-        String[] newExcludes;
-        newExcludes = new String[excludesLength + DEFAULTEXCLUDES.length];
-        if (excludesLength > 0) {
-            System.arraycopy(excludes,0,newExcludes,0,excludesLength);
-        }
-        for (int i = 0; i < DEFAULTEXCLUDES.length; i++) {
-            newExcludes[i+excludesLength] = DEFAULTEXCLUDES[i].replace('/',File.separatorChar).replace('\\',File.separatorChar);
-        }
-        excludes = newExcludes;
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/types/DataType.java b/proposal/mutant/src/main/org/apache/ant/core/types/DataType.java
deleted file mode 100644
index fc5bbd5..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/types/DataType.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.types;
-
-import org.apache.ant.core.execution.*;
-import java.io.*;
-
-/**
- * A DataType is an element which can register a named value in the
- * ExecutionFrame's context. 
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */
-public abstract class DataType extends AbstractTask {
-    private String reference = null;
-    private Object referencedObject = null;
-
-    public void execute() throws ExecutionException {
-        validate();
-    }
-
-    protected void validate() throws ExecutionException {
-    }
-
-    /**
-     * Creates an exception that indicates that refid has to be the
-     * only attribute if it is set.  
-     */
-    protected ExecutionException tooManyAttributes() {
-        return new ExecutionException("You must not specify more than one attribute" +
-                                      " when using refid" );
-    }
-
-    /**
-     * Creates an exception that indicates that this XML element must
-     * not have child elements if the refid attribute is set.  
-     */
-    protected ExecutionException noChildrenAllowed() {
-        return new ExecutionException("You must not specify nested elements when using refid");
-    }
-
-    /**
-     * Creates an exception that indicates the user has generated a
-     * loop of data types referencing each other.  
-     */
-    protected ExecutionException circularReference() {
-        return new ExecutionException("This data type contains a circular reference.");
-    }
-    
-    /**
-     * Makes this instance in effect a reference to another DataType
-     * instance.
-     */
-    public void setRefid(String reference) throws ExecutionException {
-        this.reference = reference;
-        Object referencedObject = getTaskContext().getDataValue(reference);
-
-        if (referencedObject == null) {
-            throw new ExecutionException("Unable to locate the reference specified by refid '" +
-                                         getReference() + "'");
-        }
-        
-        if (!this.getClass().isAssignableFrom(referencedObject.getClass())) {
-            throw new ExecutionException("The object referenced by refid '" +
-                                         getReference() + "' is not compatible with this element ");
-        }
-    }
-
-    /**
-     * Has the refid attribute of this element been set?
-     */
-    public boolean isReference() {
-        return referencedObject != null;
-    }
-
-
-    protected Object getReferencedObject() throws ExecutionException {
-        if (!isReference()) {
-            throw new ExecutionException("You cannot get a referenced value from a data type " + 
-                                         "which does not have the refid attribute");
-        }
-        
-        return referencedObject;
-    }
-    
-    protected String getReference() {
-        return reference;
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/types/DirectoryScanner.java b/proposal/mutant/src/main/org/apache/ant/core/types/DirectoryScanner.java
deleted file mode 100644
index 365f091..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/types/DirectoryScanner.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000 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 "The Jakarta Project", "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.ant.core.types;
-
-import java.io.*;
-import java.util.*;
-import org.apache.ant.core.execution.*;
-
-/**
- * A DirectoryFileset is a fileset where the files come from a directory and
- * its subdirectories. 
- */
-public class DirectoryScanner extends AbstractScanner {
-    /** The directory which is the root of the search space. */
-    File basedir;
-    
-    /**
-     * The files that where found and matched at least one includes, and matched
-     * no excludes.
-     */
-    protected List filesIncluded;
-
-    /**
-     * The files that where found and did not match any includes.
-     */
-    protected List filesNotIncluded;
-
-    /**
-     * The files that where found and matched at least one includes, and also
-     * matched at least one excludes.
-     */
-    protected List filesExcluded;
-
-    /**
-     * The directories that where found and matched at least one includes, and
-     * matched no excludes.
-     */
-    protected List dirsIncluded;
-
-    /**
-     * The directories that where found and did not match any includes.
-     */
-    protected List dirsNotIncluded;
-
-    /**
-     * The files that where found and matched at least one includes, and also
-     * matched at least one excludes.
-     */
-    protected List dirsExcluded;
-
-    /** Map to map filenames to actual File objects */
-    private Map filenameMap = null;
-
-    public DirectoryScanner(File basedir, List patternSets, 
-                            boolean useDefaultExcludes) throws ExecutionException {
-        super(patternSets, useDefaultExcludes);
-        this.basedir = basedir;
-    }
-    
-    public String[] getIncludedFiles() throws ExecutionException {
-        if (filesIncluded == null) {
-            scan();
-        }
-        
-        return (String[])filesIncluded.toArray(new String[0]);
-    }
-
-    /**
-     * Scans the base directory for files that match at least one include
-     * pattern, and don't match any exclude patterns.
-     *
-     * @throws ExecutionException when basedir was set incorrecly
-     */
-    public void scan() throws ExecutionException  {
-        if (basedir == null) {
-            throw new ExecutionException("The directory to scan has not been set");
-        }
-        if (!basedir.exists()) {
-            throw new ExecutionException("basedir \"" + basedir
-                                            + "\" does not exist");
-        }
-        if (!basedir.isDirectory()) {
-            throw new ExecutionException("basedir \"" + basedir
-                                            + "\" is not a directory");
-        }
-
-        filesIncluded = new ArrayList();
-        filesNotIncluded = new ArrayList();
-        filesExcluded = new ArrayList();
-        dirsIncluded = new ArrayList();
-        dirsNotIncluded = new ArrayList();
-        dirsExcluded = new ArrayList();
-        filenameMap = new HashMap();
-
-        String root = "";
-        String mappedRoot = mapName(root);
-        filenameMap.put(mappedRoot, root);
-        if (isIncluded(root)) {
-            if (!isExcluded(root)) {
-                dirsIncluded.add(mappedRoot);
-            } else {
-                dirsExcluded.add(mappedRoot);
-            }
-        } else {
-            dirsNotIncluded.add(mappedRoot);
-        }
-        scandir(basedir, root, true);
-    }
-
-    /**
-     * Scans the passed dir for files and directories. Found files and
-     * directories are placed in their respective collections, based on the
-     * matching of includes and excludes. When a directory is found, it is
-     * scanned recursively.
-     *
-     * @param dir   the directory to scan
-     * @param vpath the path relative to the basedir (needed to prevent
-     *              problems with an absolute path when using dir)
-     *
-     * @see #filesIncluded
-     * @see #filesNotIncluded
-     * @see #filesExcluded
-     * @see #dirsIncluded
-     * @see #dirsNotIncluded
-     * @see #dirsExcluded
-     */
-    protected void scandir(File dir, String vpath, boolean fast) 
-        throws ExecutionException {
-        String[] newfiles = dir.list();
-
-        if (newfiles == null) {
-            /*
-             * two reasons are mentioned in the API docs for File.list
-             * (1) dir is not a directory. This is impossible as
-             *     we wouldn't get here in this case.
-             * (2) an IO error occurred (why doesn't it throw an exception 
-             *     then???)
-             */
-            throw new ExecutionException ("IO error scanning directory "
-                                           + dir.getAbsolutePath());
-        }
-
-        for (int i = 0; i < newfiles.length; i++) {
-            String name = vpath+newfiles[i];
-            String mappedName = mapName(name);
-            filenameMap.put(mappedName, name);
-            File   file = new File(dir,newfiles[i]);
-            if (file.isDirectory()) {
-                if (isIncluded(name)) {
-                    if (!isExcluded(name)) {
-                        dirsIncluded.add(mappedName);
-                        if (fast) {
-                            scandir(file, name+File.separator, fast);
-                        }
-                    } else {
-                        dirsExcluded.add(mappedName);
-                    }
-                } else {
-                    dirsNotIncluded.add(mappedName);
-                    if (fast && couldHoldIncluded(name)) {
-                        scandir(file, name+File.separator, fast);
-                    }
-                }
-                if (!fast) {
-                    scandir(file, name+File.separator, fast);
-                }
-            } else if (file.isFile()) {
-                if (isIncluded(name)) {
-                    if (!isExcluded(name)) {
-                        filesIncluded.add(mappedName);
-                    } else {
-                        filesExcluded.add(mappedName);
-                    }
-                } else {
-                    filesNotIncluded.add(mappedName);
-                }
-            }
-        }
-    }
-
-    private String mapName(String rawName) {
-        return "bozo/" + rawName;
-    }
-
-    public File getLocalFile(String mappedName) throws ExecutionException {
-        if (filesIncluded == null) {
-            scan();
-        }
-        
-        String realName = (String)filenameMap.get(mappedName);
-        if (realName == null) {
-            throw new ExecutionException("\"" + mappedName + "\" was not included in the scan.");
-        }
-        
-        return new File(basedir, realName);
-    }
-
-    public String toString() {
-        try {
-            String[] files = getIncludedFiles();
-            StringBuffer sb = new StringBuffer();
-            String lsep = System.getProperty("line.separator");
-            for (int i = 0; i < files.length; ++i) {
-                sb.append(files[i]);
-                sb.append(lsep);
-            }
-            
-            return sb.toString();
-        }
-        catch (ExecutionException e) {
-            return "Fileset from \"" + basedir + "\"";
-        }
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/types/EnumeratedAttribute.java b/proposal/mutant/src/main/org/apache/ant/core/types/EnumeratedAttribute.java
deleted file mode 100644
index ffe03ba..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/types/EnumeratedAttribute.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000 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 "The Jakarta Project", "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.ant.core.types;
-
-import org.apache.ant.core.execution.*;
-
-/**
- * Helper class for attributes that can only take one of a fixed list
- * of values.
- *
- * @author <a href="mailto:stefan.bodewig@epost.de">Stefan Bodewig</a> 
- */
-public abstract class EnumeratedAttribute {
-
-    /** The value of this attribute. */
-    private String value;
-
-    /**
-     * This is the only method a subclass needs to implement.
-     *
-     * @return an array holding all possible values of the enumeration.
-     */
-    public abstract String[] getValues();
-
-    /**
-     * Set the value of the enumeration.
-     *
-     * Invoked by {@link org.apache.ant.core.execution.IntrospectionHelper IntrospectionHelper}.
-     *
-     * @param value the value of the enumeration
-     *
-     * @throws ExecutionException if the value is not value
-     */
-    public final void setValue(String value) throws ExecutionException {
-        if (!containsValue(value)) {
-            throw new ExecutionException(value + " is not a legal value for this attribute");
-        }
-        this.value = value;
-    }
-
-    /**
-     * Is this value included in the enumeration?
-     */
-    public final boolean containsValue(String value) {
-        String[] values = getValues();
-        if (values == null || value == null) {
-            return false;
-        }
-        
-        for (int i = 0; i < values.length; i++) {
-            if (value.equals(values[i])) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Retrieves the value.
-     */
-    public final String getValue() {
-        return value;
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/types/FileSet.java b/proposal/mutant/src/main/org/apache/ant/core/types/FileSet.java
deleted file mode 100644
index 018576b..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/types/FileSet.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000 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 "The Jakarta Project", "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.ant.core.types;
-
-import java.util.*;
-import java.io.*;
-import java.net.URL;
-import org.apache.ant.core.execution.*;
-
-/**
- * Moved out of MatchingTask to make it a standalone object that could
- * be referenced (by scripts for example).
- *
- * @author Arnout J. Kuiper <a href="mailto:ajkuiper@wxs.nl">ajkuiper@wxs.nl</a> 
- * @author Stefano Mazzocchi <a href="mailto:stefano@apache.org">stefano@apache.org</a>
- * @author Sam Ruby <a href="mailto:rubys@us.ibm.com">rubys@us.ibm.com</a>
- * @author Jon S. Stevens <a href="mailto:jon@clearink.com">jon@clearink.com</a>
- * @author <a href="mailto:stefan.bodewig@epost.de">Stefan Bodewig</a>
- */
-public class FileSet extends DataType {
-    private FileSetScanner scanner = null;
-    
-    private PatternSet defaultPatterns = new PatternSet();
-    private List patternSets = new ArrayList();
-
-    /** 
-     * The dir attribute is set when you are generating the list of files
-     *  from a directory. 
-     */
-    private File dir = null;
-    
-    /** The zipfile attribute is used when the source of files is a zip file */
-    private URL zipFile = null;
-    
-    /** 
-     * The filelist attribute is a file which contains a list of file names. It must be used
-     * with the base attribute which indicates where the files are stored.
-     */
-    private URL fileList = null;
-    
-    /**
-     * When using the filelist this attribute indicates the base location of the files in
-     * the list.
-     */
-    private URL fileListBase = null;
-    
-    private boolean useDefaultExcludes = true;
-
-    public FileSet() {
-        patternSets.add(defaultPatterns);
-    }
-
-    /**
-     * Makes this instance in effect a reference to another FileSet
-     * instance.
-     *
-     * <p>You must not set another attribute or nest elements inside
-     * this element if you make it a reference.</p> 
-     */
-    public void setRefid(String reference) throws ExecutionException {
-        if (dir != null || defaultPatterns.hasPatterns()) {
-            throw tooManyAttributes();
-        }
-        if (!(patternSets.size() == 1)) {
-            throw noChildrenAllowed();
-        }
-        super.setRefid(reference);
-    }
-
-    public void setDir(File dir) throws ExecutionException {
-        if (isReference()) {
-            throw tooManyAttributes();
-        }
-
-        this.dir = dir;
-    }
-
-    public void setZipFile(URL zipFile) throws ExecutionException {
-        if (isReference()) {
-            throw tooManyAttributes();
-        }
-
-        this.zipFile = zipFile;
-    }
-
-    public void setFileList(URL fileList) throws ExecutionException {
-        if (isReference()) {
-            throw tooManyAttributes();
-        }
-
-        this.fileList = fileList;
-    }
-
-    public void setFileListBase(URL fileListBase) throws ExecutionException {
-        if (isReference()) {
-            throw tooManyAttributes();
-        }
-
-        this.fileListBase = fileListBase;
-    }
-
-    public PatternSet createPatternSet() throws ExecutionException {
-        if (isReference()) {
-            throw noChildrenAllowed();
-        }
-        PatternSet patternSet = new PatternSet();
-        patternSets.add(patternSet);
-        return patternSet;
-    }
-
-    /**
-     * add a name entry on the include list
-     */
-    public PatternSet.NameEntry createInclude() throws ExecutionException {
-        if (isReference()) {
-            throw noChildrenAllowed();
-        }
-        return defaultPatterns.createInclude();
-    }
-    
-    /**
-     * add a name entry on the exclude list
-     */
-    public PatternSet.NameEntry createExclude() throws ExecutionException {
-        if (isReference()) {
-            throw noChildrenAllowed();
-        }
-        return defaultPatterns.createExclude();
-    }
-
-    /**
-     * Sets the set of include patterns. Patterns may be separated by a comma
-     * or a space.
-     *
-     * @param includes the string containing the include patterns
-     */
-    public void setIncludes(String includes) throws ExecutionException {
-        if (isReference()) {
-            throw tooManyAttributes();
-        }
-
-        defaultPatterns.setIncludes(includes);
-    }
-
-    /**
-     * Sets the set of exclude patterns. Patterns may be separated by a comma
-     * or a space.
-     *
-     * @param excludes the string containing the exclude patterns
-     */
-    public void setExcludes(String excludes) throws ExecutionException {
-        if (isReference()) {
-            throw tooManyAttributes();
-        }
-
-        defaultPatterns.setExcludes(excludes);
-    }
-
-    /**
-     * Sets the name of the file containing the includes patterns.
-     *
-     * @param incl The file to fetch the include patterns from.  
-     */
-     public void setIncludesFile(URL incl) throws ExecutionException {
-         if (isReference()) {
-             throw tooManyAttributes();
-         }
-
-         defaultPatterns.setIncludesFile(incl);
-     }
-
-    /**
-     * Sets the name of the file containing the includes patterns.
-     *
-     * @param excl The file to fetch the exclude patterns from.  
-     */
-     public void setExcludesFile(URL excl) throws ExecutionException {
-         if (isReference()) {
-             throw tooManyAttributes();
-         }
-
-         defaultPatterns.setExcludesFile(excl);
-     }
-
-    /**
-     * Sets whether default exclusions should be used or not.
-     *
-     * @param useDefaultExcludes "true"|"on"|"yes" when default exclusions 
-     *                           should be used, "false"|"off"|"no" when they
-     *                           shouldn't be used.
-     */
-    public void setDefaultExcludes(boolean useDefaultExcludes) throws ExecutionException {
-        if (isReference()) {
-            throw tooManyAttributes();
-        }
-
-        this.useDefaultExcludes = useDefaultExcludes;
-    }
-
-    protected FileSet getReferencedFileSet() throws ExecutionException {
-        Object o = getReferencedObject();
-        if (!(o instanceof FileSet)) {
-            throw new ExecutionException(getReference() + " doesn\'t denote a fileset");;
-        } else {
-            return (FileSet) o;
-        }
-    }
-
-    public void validate() throws ExecutionException {
-        if (dir != null) {
-            // firstly validate that the other attributes are not set
-            if (zipFile != null || fileList != null || fileListBase != null) {
-                throw new ExecutionException("The 'dir' attribute may not be combined with any " 
-                                             + "of the 'zipfile', 'filelist' and 'base' attributes");
-            }
-        }
-        else if (zipFile != null) {
-            if (fileList != null || fileListBase != null) {
-                throw new ExecutionException("The 'zipfile' attribute may not be combined with any " 
-                                             + "of the 'dir', 'filelist' and 'base' attributes");
-            }
-        }
-        else if (fileList != null) {
-            if (fileListBase == null) {
-                throw new ExecutionException("A 'base' attribute is required when using the 'filelist' "
-                                             + "attribute");
-            }
-        }
-        else {
-            throw new ExecutionException("You must specify one of the 'dir', 'zipfile', or 'filelist' " 
-                                         + "attributes");
-        }
-    }
-    
-    public FileSetScanner getScanner() throws ExecutionException {
-        if (isReference()) {
-            return getReferencedFileSet().getScanner();
-        }
-        
-        if (scanner != null) {
-            return scanner;
-        }
-        
-        // need to create the fileset info. For that we are going to need
-        // to determine which type of FileSetInfo implementation we should use.
-        if (dir != null) {
-            scanner = new DirectoryScanner(dir, patternSets, useDefaultExcludes);
-        }
-        else if (zipFile != null) {
-        }
-        else if (fileList != null) {
-        }
-        else {
-        }
-        
-        return scanner;
-    }
-    
-    public String toString() {
-        try {
-            return getScanner().toString();
-        }
-        catch (ExecutionException e) {
-            return "FileSet";
-        }
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/types/FileSetScanner.java b/proposal/mutant/src/main/org/apache/ant/core/types/FileSetScanner.java
deleted file mode 100644
index b8f2d4b..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/types/FileSetScanner.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000 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 "The Jakarta Project", "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.ant.core.types;
-
-import java.io.*;
-import java.net.URL;
-import org.apache.ant.core.execution.*;
-
-/**
- * The FileSetInfo interface defines the result of applying filtering to
- * some base collection of files. Filtering involves both file exclusion 
- * and file name mapping.
- *
- * FileSetInfo should be lazily evaluated to allow them to be defined before the
- * required files have been created. They should be evaluated at first use.
- */
-public interface FileSetScanner {
-    /**
-     * Get the included files after their file names have been mapped
-     *
-     * @return an array of strings, each one is the mapped name of a file.
-     */
-    String[] getIncludedFiles() throws ExecutionException ;
-//    
-//    /**
-//     * Get directories included after their file names have been mapped
-//     *
-//     * @return an array of strings, each one is the mapped name of a file.
-//     */
-//    String[] getIncludedDirectories();
-//
-//    /**
-//     * Get a file for the content of the named included file. If the content
-//     * is not stored in the local filesystem, a temporary file is created with the content. 
-//     * Callers should not rely on this file representing the actual location of the underlying
-//     * data.
-//     */
-//    File getContentFile(String mappedName);
-//    
-//    /**
-//     * Get a URL for the content. The content may be cached on the local system and thus
-//     * callers should not rely on the location
-//     *
-//     */
-//    URL getContentURL(String mappedName);
-//    
-//    /**
-//     * Get an input stream to the content of the named entry of the fileset.
-//     */
-//    InputStream getInputStream(String mappedName);
-//    
-    /**
-     * Get a local file.
-     *
-     * This method returns a file pointing to the actual local filesystem file from 
-     * which the file content comes. If the file does not exist locally, a null is 
-     * returned. Note that due to name mapping, the actual file name may be different
-     * from the mapped name.
-     *
-     * @return a file representing the mapped file in the local filesystem.
-     */
-    File getLocalFile(String mappedName) throws ExecutionException ;
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/types/PatternSet.java b/proposal/mutant/src/main/org/apache/ant/core/types/PatternSet.java
deleted file mode 100644
index e20a31f..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/types/PatternSet.java
+++ /dev/null
@@ -1,373 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000 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 "The Jakarta Project", "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.ant.core.types;
-
-import java.io.*;
-import java.util.*;
-import org.apache.ant.core.execution.*;
-import java.net.URL;
-
-/**
- * Named collection of include/exclude tags.
- *
- * @author Arnout J. Kuiper <a href="mailto:ajkuiper@wxs.nl">ajkuiper@wxs.nl</a> 
- * @author Stefano Mazzocchi <a href="mailto:stefano@apache.org">stefano@apache.org</a>
- * @author Sam Ruby <a href="mailto:rubys@us.ibm.com">rubys@us.ibm.com</a>
- * @author Jon S. Stevens <a href="mailto:jon@clearink.com">jon@clearink.com</a>
- * @author <a href="mailto:stefan.bodewig@megabit.net">Stefan Bodewig</a> 
- */
-public class PatternSet extends DataType {
-    private boolean filesRead = false;
-    private List includeList = new ArrayList();
-    private List excludeList = new ArrayList();
-    
-    private URL includeFile = null;
-    private URL excludeFile = null;
-
-    /**
-     * inner class to hold a name on list.  "If" and "Unless" attributes
-     * may be used to invalidate the entry based on the existence of a 
-     * property (typically set thru the use of the Available task).
-     */
-    public class NameEntry {
-        private String name;
-//        private String ifCond;
-//        private String unlessCond;
-
-        public void setName(String name) { 
-            this.name = name; 
-        }
-
-//        public void setIf(String cond) {
-//            ifCond = cond;
-//        }
-//
-//        public void setUnless(String cond) {
-//            unlessCond = cond;
-//        }
-//
-        public String getName() {
-            return name;
-        }
-
-//        public String evalName(Project p) { 
-//            return valid(p) ? name : null; 
-//        }
-
-//        private boolean valid(Project p) {
-//            if (ifCond != null && p.getProperty(ifCond) == null) {
-//                return false;
-//            } else if (unlessCond != null && p.getProperty(unlessCond) != null) {
-//                return false;
-//            }
-//            return true;
-//        }
-    }
-
-    /**
-     * Makes this instance in effect a reference to another PatternSet
-     * instance.
-     *
-     * <p>You must not set another attribute or nest elements inside
-     * this element if you make it a reference.</p> 
-     */
-    public void setRefid(String reference) throws ExecutionException {
-        if (!includeList.isEmpty() || !excludeList.isEmpty()) {
-            throw tooManyAttributes();
-        }
-        super.setRefid(reference);
-    }
-
-    /**
-     * add a name entry on the include list
-     */
-    public NameEntry createInclude() throws ExecutionException {
-        if (isReference()) {
-            throw noChildrenAllowed();
-        }
-        return addPatternToList(includeList);
-    }
-    
-    /**
-     * add a name entry on the exclude list
-     */
-    public NameEntry createExclude() throws ExecutionException {
-        if (isReference()) {
-            throw noChildrenAllowed();
-        }
-        return addPatternToList(excludeList);
-    }
-
-    /**
-     * Sets the set of include patterns. Patterns may be separated by a comma
-     * or a space.
-     *
-     * @param includes the string containing the include patterns
-     */
-    public void setIncludes(String includes) throws ExecutionException {
-        if (isReference()) {
-            throw tooManyAttributes();
-        }
-        if (includes != null && includes.length() > 0) {
-            StringTokenizer tok = new StringTokenizer(includes, ", ", false);
-            while (tok.hasMoreTokens()) {
-                createInclude().setName(tok.nextToken());
-            }
-        }
-    }
-
-    /**
-     * Sets the set of exclude patterns. Patterns may be separated by a comma
-     * or a space.
-     *
-     * @param excludes the string containing the exclude patterns
-     */
-    public void setExcludes(String excludes) throws ExecutionException {
-        if (isReference()) {
-            throw tooManyAttributes();
-        }
-        if (excludes != null && excludes.length() > 0) {
-            StringTokenizer tok = new StringTokenizer(excludes, ", ", false);
-            while (tok.hasMoreTokens()) {
-                createExclude().setName(tok.nextToken());
-            }
-        }
-    }
-
-    /**
-     * add a name entry to the given list
-     */
-    private NameEntry addPatternToList(List list) {
-        NameEntry result = new NameEntry();
-        list.add(result);
-        return result;
-    }
-
-    /**
-     * Sets the name of the file containing the includes patterns.
-     *
-     * @param incl The file to fetch the include patterns from.  
-     */
-     public void setIncludesFile(URL includeFile) throws ExecutionException {
-         if (isReference()) {
-             throw tooManyAttributes();
-         }
-         
-//         if (!incl.exists()) {
-//             throw new BuildException("Includesfile "+incl.getAbsolutePath()
-//                                      +" not found.");
-//         }
-         this.includeFile = includeFile;
-     }
-
-    /**
-     * Sets the name of the file containing the excludes patterns.
-     *
-     * @param excludeFile The file to fetch the exclude patterns from.  
-     */
-     public void setExcludesFile(URL excludeFile) throws ExecutionException {
-         if (isReference()) {
-             throw tooManyAttributes();
-         }
-//         if (!excl.exists()) {
-//             throw new BuildException("Excludesfile "+excl.getAbsolutePath()
-//                                      +" not found.");
-//         }
-         this.excludeFile = excludeFile;
-     }
-    
-    /**
-     *  Reads path matching patterns from a file and adds them to the
-     *  includes or excludes list (as appropriate).  
-     */
-    private void readPatterns(URL patternFile, List patternList)
-        throws ExecutionException {
-        
-        BufferedReader patternReader = null;
-        try {
-            // Get a FileReader
-            patternReader = 
-                new BufferedReader(new InputStreamReader(patternFile.openStream())); 
-        
-            // Create one NameEntry in the appropriate pattern list for each 
-            // line in the file.
-            String line = null;
-            while ((line = patternReader.readLine()) != null) {
-                if (line.length() > 0) {
-                    line = getTaskContext().replacePropertyRefs(line);
-                    addPatternToList(patternList).setName(line);
-                }
-            }
-        } catch(IOException ioe)  {
-            throw new ExecutionException("An error occured while reading from pattern file: " 
-                                         + patternFile, ioe);
-        }
-        finally {
-            if (patternReader != null) {
-                try {
-                    patternReader.close();
-                }
-                catch (IOException e) {
-                    // do nothing
-                }
-            }
-        }
-    }
-
-    /**
-     * Adds the patterns of the other instance to this set.
-     */
-    public void append(PatternSet other) throws ExecutionException {
-        if (isReference()) {
-            throw new ExecutionException("Cannot append to a reference");
-        }
-
-        String[] incl = other.getIncludePatterns();
-        if (incl != null) {
-            for (int i=0; i<incl.length; i++) {
-                createInclude().setName(incl[i]);
-            }
-        }
-        
-        String[] excl = other.getExcludePatterns();
-        if (excl != null) {
-            for (int i=0; i<excl.length; i++) {
-                createExclude().setName(excl[i]);
-            }
-        }
-    }
-
-    /**
-     * Returns the filtered include patterns.
-     */
-    public String[] getIncludePatterns() throws ExecutionException {
-        if (isReference()) {
-            return getReferencedPatternSet().getIncludePatterns();
-        } else {
-            readFiles();
-            return makeArray(includeList);
-        }
-    }
-
-    /**
-     * Returns the filtered include patterns.
-     */
-    public String[] getExcludePatterns() throws ExecutionException {
-        if (isReference()) {
-            return getReferencedPatternSet().getExcludePatterns();
-        } else {
-            readFiles();
-            return makeArray(excludeList);
-        }
-    }
-
-    /**
-     * helper for FileSet.
-     */
-    boolean hasPatterns() {
-        return includeFile != null || excludeFile != null
-            || includeList.size() > 0 || excludeList.size() > 0;
-    }
-
-    /**
-     * Performs the check for circular references and returns the
-     * referenced PatternSet.  
-     */
-    private PatternSet getReferencedPatternSet() throws ExecutionException {
-        Object o = getReferencedObject();
-        if (!(o instanceof PatternSet)) {
-            throw new ExecutionException(getReference() + " doesn\'t denote a patternset");;
-        } else {
-            return (PatternSet) o;
-        }
-    }
-
-
-    /**
-     * Convert a list of NameEntry elements into an array of Strings.
-     */
-    private String[] makeArray(List list) {
-        if (list.size() == 0) {
-            return null;
-        }
-
-        List tmpNames = new Vector();
-        for (Iterator i = list.iterator() ; i.hasNext() ;) {
-            NameEntry ne = (NameEntry)i.next();
-            String pattern = ne.getName();
-            if (pattern != null && pattern.length() > 0) {
-                tmpNames.add(pattern);
-            }
-        }
-
-        String[] result = (String[])tmpNames.toArray(new String[0]);
-        return result;
-    }
-        
-    /**
-     * Read includefile ot excludefile if not already done so.
-     */
-    private void readFiles() throws ExecutionException {
-        if (!filesRead) {
-            filesRead = true;
-            if (includeFile != null) {
-                readPatterns(includeFile, includeList);
-            }
-            if (excludeFile != null) {
-                readPatterns(excludeFile, excludeList);
-            }
-        }
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/xml/AntLibParser.java b/proposal/mutant/src/main/org/apache/ant/core/xml/AntLibParser.java
deleted file mode 100644
index aabc271..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/xml/AntLibParser.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.xml;
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import javax.xml.parsers.*;
-import org.apache.ant.core.support.*;
-import org.apache.ant.core.execution.*;
-import org.xml.sax.*;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * Parses the TASK-INF/antlib.xml file of an ant library
- * component. An Ant library may contains tasks, apsects and
- * other ant plug in components
- */ 
-public class AntLibParser {
-    public static final String TASK_ELEMENT = "taskdef";
-    public static final String CONVERTER_ELEMENT = "converter";
-    public static final String ASPECT_ELEMENT = "aspect";
-    
-    /**
-     * The factory used to create SAX parsers.
-     */
-    private SAXParserFactory parserFactory;
-
-    /**
-     * Parse the library definition
-     *
-     * @param libSource the URL from where the library XML is read.
-     *
-     * @throws SAXParseException if there is a problem parsing the task definitions
-     */
-    public AntLibrary parseAntLibrary(URL libSource, ClassLoader componentLoader) 
-            throws ConfigException {
-        try {
-            parserFactory = SAXParserFactory.newInstance();
-            SAXParser saxParser = parserFactory.newSAXParser();
-            XMLReader xmlReader = saxParser.getXMLReader();
-
-            AntLibRootHandler rootHandler = new AntLibRootHandler(libSource, xmlReader, componentLoader);
-            saxParser.parse(libSource.toString(), rootHandler);
-            return rootHandler.getAntLibrary();
-        }
-        catch (SAXParseException e) {
-            throw new ConfigException(e.getMessage(), e, 
-                                      new Location(libSource.toString(), 
-                                                   e.getLineNumber(), e.getColumnNumber()));
-        }
-        catch (ParserConfigurationException e) {
-            throw new ConfigException("Unable to parse Ant library component", e, 
-                                      new Location(libSource.toString()));
-        }
-        catch (SAXException e) {
-            throw new ConfigException("Unable to parse Ant library component", e, 
-                                      new Location(libSource.toString()));
-        }
-        catch (IOException e) {
-            throw new ConfigException("Unable to parse Ant library component", e, 
-                                      new Location(libSource.toString()));
-        }
-    }
-    
-    /**
-     * The root handler handles the antlib element. An ant lib may
-     * contain a number of different types of elements
-     * <ul>
-     *    <li>taskdef</li>
-     *    <li>aspect</li>
-     *    <li>converter</li>
-     * </ul>
-     */
-    private class AntLibRootHandler extends RootHandler {
-        static private final int STATE_LOOKING_FOR_ROOT = 1;
-        static private final int STATE_ROOT_SEEN = 2;
-        static private final int STATE_FINISHED = 3;
-        
-        private int state = STATE_LOOKING_FOR_ROOT;
-        
-        /**
-         * The AntLibrary that will be defined by parsing the library's definition
-         * file.
-         */
-        private AntLibrary library = null;
-
-        private ClassLoader componentLoader = null;
-
-        /**
-         * Create an Ant Library Root Handler.
-         *
-         * @param taskdefSource the URL from where the task definitions exist
-         * @param reader the XML parser.
-         */
-        public AntLibRootHandler(URL taskdefSource, XMLReader reader, ClassLoader componentLoader) {
-            super(taskdefSource, reader);
-            this.componentLoader = componentLoader;
-        }
-    
-        /**
-         * Get the library which has been parsed.
-         *
-         * @return an AntLibary with the library definitions
-         */
-        public AntLibrary getAntLibrary() {
-            return library;
-        }
-
-        /**
-         * Start a new element in the root. This must be a taskdefs element
-         * All other elements are invalid.
-         *
-         * @param uri The Namespace URI.
-         * @param localName The local name (without prefix).
-         * @param qualifiedName The qualified name (with prefix)
-         * @param attributes The attributes attached to the element. 
-         *
-         * @throws SAXParseException if there is a parsing problem.
-         */
-        public void startElement(String uri, String localName, String qualifiedName,
-                                 Attributes attributes) throws SAXParseException {
-            switch (state) {
-                case STATE_LOOKING_FOR_ROOT:
-                    if (qualifiedName.equals("antlib")) {
-                        state = STATE_ROOT_SEEN;
-                        library = new AntLibrary();
-                    }
-                    else {
-                        throw new SAXParseException("An Ant library component must start with an " +
-                                                    "<antlib> element and not with <" + 
-                                                     qualifiedName + ">", getLocator());
-                    }
-                    break;
-                case STATE_ROOT_SEEN:                                                     
-                    if (qualifiedName.equals(TASK_ELEMENT)) {
-                        createTaskDef(attributes);
-                    }
-                    else if (qualifiedName.equals(CONVERTER_ELEMENT)) {
-                        createConverterDef(attributes);
-                    } 
-                    else if (qualifiedName.equals(ASPECT_ELEMENT)) {
-                        createAspectHandler(attributes);
-                    } 
-                    else {
-                        throw new SAXParseException("Unrecognized element <" + 
-                                                     qualifiedName + "> in Ant library definition", getLocator());
-                    }
-                    break;
-            }
-        }
-        
-
-        public void createTaskDef(Attributes attributes) throws SAXParseException {
-            Set validAttributes = new HashSet();
-            validAttributes.add("name");
-            validAttributes.add("classname");
-            Map attributeValues 
-                = AttributeValidator.validateAttributes(TASK_ELEMENT, attributes, 
-                                                        validAttributes, getLocator());
-            String taskName = (String)attributeValues.get("name");
-            String className = (String)attributeValues.get("classname");
-            if (taskName == null) {
-                throw new SAXParseException("'name' attribute is required in a <" 
-                                            + TASK_ELEMENT + "> element",
-                                            getLocator());
-            }
-            if (className == null) {
-                throw new SAXParseException("'classname' attribute is required in a " + 
-                                            "<" + TASK_ELEMENT + "> element", getLocator());
-            }
-            
-            TaskDefinition taskdef = new TaskDefinition(getSourceURL(), taskName, className, componentLoader);
-            library.addTaskDefinition(taskdef);
-        }                        
-            
-        public void createConverterDef(Attributes attributes) throws SAXParseException {
-            Set validAttributes = new HashSet();
-            validAttributes.add("target");
-            validAttributes.add("classname");
-            Map attributeValues 
-                = AttributeValidator.validateAttributes(CONVERTER_ELEMENT, attributes, 
-                                                        validAttributes, getLocator());
-            String targetClassName = (String)attributeValues.get("target");
-            String className = (String)attributeValues.get("classname");
-            if (targetClassName == null) {
-                throw new SAXParseException("'target' attribute is required in a <" 
-                                            + CONVERTER_ELEMENT + "> element",
-                                            getLocator());
-            }
-            if (className == null) {
-                throw new SAXParseException("'classname' attribute is required in a " + 
-                                            "<" + CONVERTER_ELEMENT + "> element", getLocator());
-            }
-            
-            ConverterDefinition converterDef 
-                = new ConverterDefinition(getSourceURL(), className, targetClassName, componentLoader);
-            library.addConverterDefinition(converterDef);
-        }                        
-
-        public void createAspectHandler(Attributes attributes) throws SAXParseException {
-            Set validAttributes = new HashSet();
-            validAttributes.add("prefix");
-            validAttributes.add("classname");
-            Map attributeValues 
-                = AttributeValidator.validateAttributes(ASPECT_ELEMENT, attributes, 
-                                                        validAttributes, getLocator());
-            String aspectPrefix = (String)attributeValues.get("prefix");
-            String aspectClassname  = (String)attributeValues.get("classname");
-            if (aspectPrefix == null) {
-                throw new SAXParseException("'prefix' attribute is required in a <" 
-                                            + ASPECT_ELEMENT + "> element",
-                                            getLocator());
-            }
-            if (aspectClassname == null) {
-                throw new SAXParseException("'classname' attribute is required in a " + 
-                                            "<" + ASPECT_ELEMENT + "> element", getLocator());
-            }
-            
-            AspectDefinition aspectDef 
-                = new AspectDefinition(getSourceURL(), aspectPrefix, aspectClassname, componentLoader);
-            library.addAspectDefinition(aspectDef);
-        }
-                                
-        public void endElement(String namespaceURI, String localName, String qName) {
-            if (state == STATE_ROOT_SEEN && qName.equals("antlib")) {
-                state = STATE_FINISHED;
-            }
-        }
-    }
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/core/xml/AttributeValidator.java b/proposal/mutant/src/main/org/apache/ant/core/xml/AttributeValidator.java
deleted file mode 100644
index 7c8b0bd..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/xml/AttributeValidator.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.xml;
-
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.*;
-import java.util.*;
-
-
-/**
- * Validates and extracts attribute values from a set of element attributes.
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public abstract class AttributeValidator {
-    static public Map validateAttributes(String elementName, Attributes attributes, 
-                                          Set validAttributes, Locator locator) 
-        throws SAXParseException {
-            
-        return validateAttributes(elementName, attributes, null, validAttributes, locator);
-    }
-
-    static public Map validateAttributes(String elementName, Attributes attributes, Map aspects,
-                                          Set validAttributes, Locator locator) 
-        throws SAXParseException {
-            
-        Map attributeValues = new HashMap();    
-        Set invalidAttributes = new HashSet();
-        for (int i = 0; i < attributes.getLength(); ++i) {
-            String attributeName = attributes.getQName(i);
-            String attributeValue = attributes.getValue(i);
-            if (validAttributes.contains(attributeName)) {
-                attributeValues.put(attributeName, attributeValue);
-            }
-            else if (aspects != null && attributeName.indexOf(":") != -1) {
-                aspects.put(attributeName, attributeValue);
-            }
-            else {
-                invalidAttributes.add(attributeName);
-            }
-        }
-        
-        if (invalidAttributes.size() != 0) {
-            StringBuffer message = new StringBuffer();
-            boolean justOne = invalidAttributes.size() == 1;
-            message.append(justOne ? "The attribute " : "The attributes ");
-            for (Iterator i = invalidAttributes.iterator(); i.hasNext();) {
-                String attributeName = (String)i.next();
-                message.append(attributeName + " ");
-            }
-            message.append(justOne ? "is " : "are ");
-            message.append("not valid for the <" + elementName + "> element.");
-            
-            throw new SAXParseException(message.toString(), locator);
-        }
-        
-        return attributeValues;
-    }
-
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/xml/ElementHandler.java b/proposal/mutant/src/main/org/apache/ant/core/xml/ElementHandler.java
deleted file mode 100644
index 00c5c73..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/xml/ElementHandler.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.xml;
-
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.*;
-
-/**
- * An Element Handler is a handler which handles a single element by becoming
- * the handler for the parser while processing the element. Any sub elements 
- * must be delegated to separate handlers. When this element is finished, 
- * control returns to the parent handler.
- */ 
-public abstract class ElementHandler extends DefaultHandler {
-    private XMLReader reader;
-    private ContentHandler parent;
-    private Locator locator;
-
-    public ElementHandler(XMLReader reader, ContentHandler parent,
-                          Locator locator) {
-        this.reader = reader;
-        this.parent = parent;
-        this.locator = locator;
-        reader.setContentHandler(this);
-    }
-
-    /**
-     * This element is finished - complete any necessary processing.
-     */
-    protected void finish() {
-    }
-
-    /**
-     * Get the XML Reader being used to parse the XML.
-     *
-     * @return the XML Reader.
-     */
-    protected XMLReader getXMLReader() {
-        return reader;
-    }
-    
-    /**
-     * Get the locator used to locate elements in the XML source as
-     * they are parsed.
-     *
-     * @return the locator object which can be used to determine an elements location
-     *         within the XML source
-     */
-    protected Locator getLocator() {
-        return locator;
-    }
-
-    public void endElement(String namespaceURI, String localName, String qName) {
-        finish();
-        reader.setContentHandler(parent);
-    }
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/core/xml/RootHandler.java b/proposal/mutant/src/main/org/apache/ant/core/xml/RootHandler.java
deleted file mode 100644
index a2a39e2..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/xml/RootHandler.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.xml;
-
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.*;
-import java.net.URL;
-
-/**
- * Handle the root of a XML parse
- */
-public abstract class RootHandler extends DefaultHandler {
-    /**
-     * Locator used to identify where in the build source particular elements
-     * occur.
-     */
-    private Locator locator;
-    
-    /**
-     * The actual XML parser used to parse the build source
-     */
-    private XMLReader reader;
-    
-    /**
-     * The URL from which the XML source is being read.
-     */
-    private URL sourceURL;
-
-    /**
-     * Create a Root Handler.
-     *
-     * @param sourceURL the URL containing the XML source
-     * @param reader the XML parser.
-     */
-    public RootHandler(URL sourceURL, XMLReader reader) {
-        this.sourceURL = sourceURL;
-        this.reader = reader;
-    }
-    
-    /**
-     * Set the locator to use when parsing elements. This is passed onto
-     * child elements.
-     *
-     * @param locator the locator for locating elements in the build source.
-     */
-    public void setDocumentLocator(Locator locator) {
-        this.locator = locator;
-    }
-
-    /**
-     * Get the XML Reader being used to parse the XML.
-     *
-     * @return the XML Reader.
-     */
-    protected XMLReader getXMLReader() {
-        return reader;
-    }
-    
-    /**
-     * Get the locator used to locate elements in the XML source as
-     * they are parsed.
-     *
-     * @return the locator object which can be used to determine an elements location
-     *         within the XML source
-     */
-    protected Locator getLocator() {
-        return locator;
-    }
-
-    /**
-     * Get the source URL
-     *
-     * @return a URL identifiying from where the XML is being read.
-     */
-    public URL getSourceURL() {
-        return sourceURL;
-    }
-}
-    
diff --git a/proposal/mutant/src/main/org/apache/ant/core/xml/XMLProjectParser.java b/proposal/mutant/src/main/org/apache/ant/core/xml/XMLProjectParser.java
deleted file mode 100644
index 4617268..0000000
--- a/proposal/mutant/src/main/org/apache/ant/core/xml/XMLProjectParser.java
+++ /dev/null
@@ -1,831 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.core.xml;
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import javax.xml.parsers.*;
-import org.apache.ant.core.model.*;
-import org.apache.ant.core.support.*;
-import org.xml.sax.*;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * Parses a project from an XML source using a SAX Parser.
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class XMLProjectParser {
-    private Stack recursionCheck = new Stack();
-    
-    /**
-     * The factory used to create SAX parsers.
-     */
-    private SAXParserFactory parserFactory;
-
-    static private Location getLocation(Locator locator) {
-        return new Location(locator.getSystemId(), locator.getLineNumber(),
-                            locator.getColumnNumber());
-    }                            
-
-    /**
-     * Parse a build file form the given URL.
-     *
-     * @param buildSource the URL from where the build source may be read.
-     *
-     * @throws SAXParseException if there is a problem parsing the build file.
-     */
-    public Project parseBuildFile(URL buildSource) 
-            throws ConfigException {
-        try {
-            parserFactory = SAXParserFactory.newInstance();
-            SAXParser saxParser = parserFactory.newSAXParser();
-            XMLReader xmlReader = saxParser.getXMLReader();
-
-            recursionCheck.push(buildSource);
-            ProjectRootHandler projectRootHandler 
-                = new ProjectRootHandler(buildSource, xmlReader);
-            saxParser.parse(buildSource.toString(), projectRootHandler);
-            return projectRootHandler.getProject();
-        }
-        catch (SAXParseException e) {
-            throw new ConfigException(e.getMessage(), e, 
-                                      new Location(buildSource.toString(), 
-                                                   e.getLineNumber(), e.getColumnNumber()));
-        }
-        catch (NoProjectReadException e) {
-            throw new ConfigException("No project defined in build source", e, 
-                                      new Location(buildSource.toString()));
-       }
-        catch (ParserConfigurationException e) {
-            throw new ConfigException("Unable to parse project: " + e.getMessage(), e, 
-                                      new Location(buildSource.toString()));
-        }
-        catch (SAXException e) {
-            throw new ConfigException("Unable to parse project: " + e.getMessage(), e, 
-                                      new Location(buildSource.toString()));
-        }
-        catch (IOException e) {
-            throw new ConfigException("Unable to parse project: " + e.getMessage(), e, 
-                                      new Location(buildSource.toString()));
-        }
-    }
-    
-    /**
-     * The root handler handles the start of parsing. This element looks for the 
-     * root element which must be a project element. It then delegates handling of the
-     * project element to a project handler from which it extracts the parsed project.
-     */
-    private class ProjectRootHandler extends RootHandler {
-        /**
-         * The project handler created to parse the project element.
-         */
-        ProjectHandler projectHandler;
-        
-        /**
-         * Create a Root Handler.
-         *
-         * @param buildSource the URL containing the build definition
-         * @param reader the XML parser.
-         */
-        public ProjectRootHandler(URL buildSource, XMLReader reader) {
-            super(buildSource, reader);
-        }
-
-        /**
-         * Start a new element in the root. This must be a project element
-         * All other elements are invalid.
-         *
-         * @param uri The Namespace URI.
-         * @param localName The local name (without prefix).
-         * @param qualifiedName The qualified name (with prefix)
-         * @param attributes The attributes attached to the element. 
-         *
-         * @throws SAXParseException if there is a parsing problem.
-         */
-        public void startElement(String uri, String localName, String qualifiedName,
-                                  Attributes attributes) throws SAXParseException {
-            if (qualifiedName.equals("project")) {
-                projectHandler = new ProjectHandler(getXMLReader(), this, 
-                                                    getLocator(), attributes, getSourceURL());
-            } else {
-                throw new SAXParseException("Build file should start with a <project> element not <" + 
-                                             qualifiedName + ">", getLocator());
-            }
-        }
-        
-        /**
-         * Get the project that has been parsed from the element
-         *
-         * @return the project that has been parsed from the build osurce
-         * 
-         * @throws NoProjectReadException thrown if no project was read in.
-         */
-        public Project getProject() throws NoProjectReadException {
-            if (projectHandler == null) {
-                throw new NoProjectReadException();
-            }
-            return projectHandler.getProject();
-        }
-    }
-    
-    /**
-     * Root Handler for include elements.
-     * 
-     * Includes must contain either a project (which is being extended) or 
-     * a fragment element which contains the fragment to be included.
-     */
-    private class IncludeRootHandler extends RootHandler {
-        /**
-         * The project into which the fragment is to be included.
-         */
-        private Project project;
-        
-        /**
-         * Create an Include Root Handler.
-         *
-         * @param buildSource the URL containing the fragment definition
-         * @param reader the XML parser.
-         * @param project the project into which the fragment's elements will be included.
-         */
-        public IncludeRootHandler(URL buildSource, XMLReader reader, Project project) {
-            super(buildSource, reader);
-            this.project = project;
-        }
-
-        /**
-         * Start a new element in the include root. This must be a project element
-         * or a fragment element. All other elements are invalid.
-         *
-         * @param uri The Namespace URI.
-         * @param localName The local name (without prefix).
-         * @param qualifiedName The qualified name (with prefix)
-         * @param attributes The attributes attached to the element. 
-         *
-         * @throws SAXParseException if there is a parsing problem.
-         */
-        public void startElement(String uri, String localName, String qualifiedName,
-                                  Attributes attributes) throws SAXParseException {
-            if (qualifiedName.equals("project") ||
-                qualifiedName.equals("fragment")) {
-                // if it is a fragment, it must have no attributes
-                // any project attributes are ignored
-                if (qualifiedName.equals("fragment") && attributes.getLength() != 0) {
-                    throw new SAXParseException("<fragment> element may not have any attributes", 
-                                                getLocator());
-                }                                                
-                new ProjectHandler(getXMLReader(), this, getLocator(), 
-                                   getSourceURL(), project);
-            } else {
-                throw new SAXParseException("An included file should contain either a " +
-                                            "<project> or <fragment> element and not a <" + 
-                                            qualifiedName + "> element", getLocator());
-            }
-        }
-    }
-    
-    /**
-     * Element to parse the project element.
-     *
-     * The project handler creates a number of different handlers to which it
-     * delegates processing of child elements.
-     */
-    private class ProjectHandler extends ElementHandler {
-        /**
-         * The project being parsed.
-         */
-        private Project project;
-        
-        /**
-         * The sourceURL for the current content being added to the project.
-         */
-        private URL sourceURL;
-
-        /**
-         * Create a ProjectHandler to read in a complete project.
-         * 
-         * @param xmlReader the XML parser being used to parse the project element.
-         * @param parent the parent element handler.
-         * @param locator the SAX locator object used to associate elements with source
-         *        locations.
-         * @param attributes the project element's attributes.
-         * @param projectSource the URL from which the XML source is being parsed.
-         */
-        public ProjectHandler(XMLReader xmlReader, ContentHandler parent,
-                              Locator locator, Attributes attributes, URL projectSource) 
-            throws SAXParseException {
-                
-            super(xmlReader, parent, locator);
-            this.sourceURL = projectSource;                            
-            project = new Project(projectSource, getLocation(locator));
-
-            String base = null;
-            String defaultTarget = null;
-            String projectName = null;
-            
-            Map aspects = new HashMap();
-            for (int i = 0; i < attributes.getLength(); ++i) {
-                String attributeName = attributes.getQName(i);
-                String attributeValue = attributes.getValue(i);
-                if (attributeName.equals("base")) {
-                    base = attributeValue;
-                }
-                else if (attributeName.equals("default")) {
-                    defaultTarget = attributeValue;
-                }
-                else if (attributeName.equals("name")) {
-                    projectName = attributeValue;
-                }
-                else if (attributeName.indexOf(":") != -1) {
-                    // potential aspect attribute
-                    aspects.put(attributeName, attributeValue);
-                }
-                else {
-                    throw new SAXParseException("The attribute '" + attributeName + "' is not " + 
-                                                "supported by the <project> element", getLocator());
-                }
-            }
-            
-            project.setDefaultTarget(defaultTarget);
-            project.setBase(base);
-            project.setName(projectName);
-            project.setAspects(aspects);
-        }
-        
-        /**
-         * Create a Project handler for an included fragment. The elements
-         * from the fragment are added to the given project.
-         *
-         * @param xmlReader the XML parser being used to parse the project element.
-         * @param parent the parent element handler.
-         * @param locator the SAX locator object used to associate elements with source
-         *        locations.
-         * @param includeSource the URL from which the XML source is being included.
-         * @param project the project to which the included fragments elements are added.
-         */
-        public ProjectHandler(XMLReader xmlReader, ContentHandler parent,
-                              Locator locator, URL includeSource, Project project) {
-            super(xmlReader, parent, locator);
-            this.sourceURL = includeSource;                            
-            this.project = project;
-        }
-        
-        /**
-         * Start a new element in the project. Project currently handle the 
-         * following elements
-         * <ul>
-         *   <li>import</li>
-         *   <li>include</li>
-         *   <li>target</li>
-         * </ul>
-         *
-         * Everything else is treated as a task.
-         *
-         * @param uri The Namespace URI.
-         * @param localName The local name (without prefix).
-         * @param qualifiedName The qualified name (with prefix)
-         * @param attributes The attributes attached to the element. 
-         *
-         * @throws SAXParseException if there is a parsing problem.
-         */
-        public void startElement(String uri, String localName, String qualifiedName,
-                                 Attributes attributes) throws SAXParseException {
-            if (qualifiedName.equals("import")) {
-                ImportHandler importHandler 
-                    = new ImportHandler(getXMLReader(), this, getLocator(), 
-                                        attributes, sourceURL);
-                try {                                        
-                    project.importProject(importHandler.getImportName(), 
-                                      importHandler.getImportedProject());
-                }
-                catch (ProjectModelException e) {
-                    throw new SAXParseException(e.getMessage(), getLocator(), e);
-                }
-            }
-            else if (qualifiedName.equals("include")) {
-                IncludeHandler includeHandler 
-                    = new IncludeHandler(getXMLReader(), this, getLocator(), 
-                                         attributes, sourceURL, project);
-            }
-            else if (qualifiedName.equals("target")) {
-                TargetHandler targetHandler 
-                    = new TargetHandler(getXMLReader(), this, getLocator(), attributes);
-                try {                    
-                    project.addTarget(targetHandler.getTarget());
-                }
-                catch (ProjectModelException e) {
-                    throw new SAXParseException(e.getMessage(), getLocator(), e);
-                }
-            }
-            else {
-                // everything else is a task
-                TaskElementHandler taskElementHandler 
-                    = new TaskElementHandler(getXMLReader(), this, getLocator(), 
-                                      attributes, qualifiedName);
-                project.addTask(taskElementHandler.getTaskElement());
-            }
-        }
-    
-        /**
-         * Get the project that has been parsed from the XML source
-         *
-         * @return the project model of the parsed project.
-         */
-        public Project getProject() {
-            return project;
-        }
-    }
-    
-    /**
-     * The import handler handles the importing of one project into another.
-     * 
-     * The project to be imported is parsed with a new parser and then added to the
-     * current project under the given import name
-     */
-    private class ImportHandler extends ElementHandler {
-        /**
-         * The attribute used to name the import.
-         */
-        static public final String IMPORT_NAME_ATTR = "name";
-        
-        /**
-         * The attribute name used to locate the project to be imported.
-         */
-        static public final String IMPORT_SYSTEMID_ATTR = "project";
-        
-        /**
-         * The project that has been imported.
-         */
-        private Project importedProject;
-        
-        /**
-         * The name under which the project is being imported.
-         */
-        private String importName;
-        
-        /**
-         * The systemId (URL) where the project is to be imported from.
-         */
-        private String projectSystemId;
-
-        /**
-         * Create an import handler to import a project.
-         *
-         * @param xmlReader the XML parser being used to parse the import element.
-         * @param parent the parent element handler.
-         * @param locator the SAX locator object used to associate elements with source
-         *        locations.
-         * @param attributes attributes of the import statement.
-         * @param importingSource the URL of the importing source.
-         */
-        public ImportHandler(XMLReader xmlReader, ContentHandler parent,
-                             Locator locator, Attributes attributes, URL importingSource) 
-                throws SAXParseException {
-            super(xmlReader, parent, locator);
-            for (int i = 0; i < attributes.getLength(); ++i) {
-                String attributeName = attributes.getQName(i);
-                String attributeValue = attributes.getValue(i);
-                if (attributeName.equals(IMPORT_NAME_ATTR)) {
-                    importName = attributeValue;
-                }
-                else if (attributeName.equals(IMPORT_SYSTEMID_ATTR)) {
-                    projectSystemId = attributeValue;
-                }
-                else {
-                    throw new SAXParseException("Attribute " + attributeName + 
-                                                " is not allowed in an <import> element", getLocator());
-                }                                                    
-            }
-            
-            if (importName == null) {
-                throw new SAXParseException("Attribute " + IMPORT_NAME_ATTR + 
-                                            " is required in an <import> element", getLocator());
-            }
-            
-            if (projectSystemId == null) {
-                throw new SAXParseException("Attribute " + IMPORT_SYSTEMID_ATTR + 
-                                            " is required in an <import> element", getLocator());
-            }
-
-            // create a new parser to read this project relative to the 
-            // project's URI
-            try {
-                URL importURL = new URL(importingSource, projectSystemId);
-                SAXParser importSAXParser = parserFactory.newSAXParser();
-                XMLReader importXMLReader = importSAXParser.getXMLReader();
-    
-                
-                if (recursionCheck.contains(importURL)) {
-                    throw new SAXParseException("Circular import detected when importing '" + 
-                                                importURL + "'", getLocator());
-                }
-                recursionCheck.push(importURL);                                                
-                ProjectRootHandler importRootHandler = new ProjectRootHandler(importURL, importXMLReader);
-                importSAXParser.parse(importURL.toString(), importRootHandler);
-                if (recursionCheck.pop() != importURL) {
-                    throw new RuntimeException("Failure to pop expected element off recursion stack");
-                }
-                importedProject = importRootHandler.getProject();
-            }
-            catch (SAXParseException e) {
-                throw e;
-            }
-            catch (NoProjectReadException e) {
-                throw new SAXParseException("No project was imported from " + projectSystemId, 
-                                            getLocator());
-            }
-            catch (MalformedURLException e) {
-                throw new SAXParseException("Unable to import project from " + projectSystemId + 
-                                            ": " + e.getMessage(), 
-                                            getLocator());
-            }
-            catch (ParserConfigurationException e) {
-                throw new SAXParseException("Unable to parse project imported from " + projectSystemId + 
-                                            ": " + e.getMessage(), 
-                                            getLocator());
-            }
-            catch (SAXException e) {
-                throw new SAXParseException("Unable to parse project imported from " + projectSystemId + 
-                                            ": " + e.getMessage(), 
-                                            getLocator());
-            }
-            catch (IOException e) {
-                throw new SAXParseException("Error reading project imported from " + projectSystemId + 
-                                            ": " + e.getMessage(), 
-                                            getLocator());
-            }
-        }
-        
-        /**
-         * Import does not support nested elements. This method will always throw an
-         * exception
-         * @param uri The Namespace URI.
-         * @param localName The local name (without prefix).
-         * @param qualifiedName The qualified name (with prefix)
-         * @param attributes The attributes attached to the element. 
-         *
-         * @throws SAXParseException always.
-         */
-        public void startElement(String uri, String localName, String qualifiedName,
-                                 Attributes attributes) throws SAXParseException {
-            // everything is a task
-            throw new SAXParseException("<import> does not support nested elements", getLocator()); 
-        }
-        
-        /**
-         * Get the project imported.
-         *
-         * @return an imported Project.
-         */
-        public Project getImportedProject() {
-            return importedProject;
-        }
-        
-        /**
-         * Get the name under which the project is imported.
-         *
-         * @return the import name of the project
-         */
-        public String getImportName() {
-            return importName;
-        }
-    }
-
-    /**
-     * The include handler is used to read in included projects or
-     * fragments into a project.
-     */
-    private class IncludeHandler extends ElementHandler {
-        /**
-         * The attribute name which identifies the fragment to be included
-         */
-        static public final String INCLUDE_SYSTEMID_ATTR = "fragment";
-        
-        /**
-         * The system id of the fragment to be included.
-         */
-        private String includeSystemId;
-
-        /**
-         * Create an IncludeHandler to include an element into the
-         * current project
-         *       
-         * @param xmlReader the XML parser being used to parse the include element.
-         * @param parent the parent element handler.
-         * @param locator the SAX locator object used to associate elements with source
-         *        locations.
-         * @param attributes attributes of the include statement.
-         * @param includingSource the URL of the including source.
-         * @param project the project into which the included elements are added.
-         */
-        public IncludeHandler(XMLReader xmlReader, ContentHandler parent,
-                              Locator locator, Attributes attributes, URL includingSource,
-                              Project project) 
-                throws SAXParseException {
-            super(xmlReader, parent, locator);
-            for (int i = 0; i < attributes.getLength(); ++i) {
-                String attributeName = attributes.getQName(i);
-                String attributeValue = attributes.getValue(i);
-                if (attributeName.equals(INCLUDE_SYSTEMID_ATTR)) {
-                    includeSystemId = attributeValue;
-                }
-                else {
-                    throw new SAXParseException("Attribute " + attributeName + 
-                                                " is not allowed in an <include> element", getLocator());
-                }                                                    
-            }
-            
-            if (includeSystemId == null) {
-                throw new SAXParseException("Attribute " + INCLUDE_SYSTEMID_ATTR + 
-                                            " is required in an <include> element", getLocator());
-            }
-
-            // create a new parser to read this project relative to the 
-            // project's URI
-            try {
-                URL includeURL = new URL(includingSource, includeSystemId);
-                SAXParser includeSAXParser = parserFactory.newSAXParser();
-                XMLReader includeXMLReader = includeSAXParser.getXMLReader();
-    
-                if (recursionCheck.contains(includeURL)) {
-                    throw new SAXParseException("Circular include detected when including '" + 
-                                                includeURL + "'", getLocator());
-                }
-                recursionCheck.push(includeURL);                                                
-                IncludeRootHandler includeRootHandler 
-                    = new IncludeRootHandler(includeURL, includeXMLReader, project);
-                includeSAXParser.parse(includeURL.toString(), includeRootHandler);
-                if (recursionCheck.pop() != includeURL) {
-                    throw new RuntimeException("Failure to pop expected element off recursion stack");
-                }
-            }
-            catch (SAXParseException e) {
-                throw e;
-            }
-            catch (MalformedURLException e) {
-                throw new SAXParseException("Unable to include " + includeSystemId + 
-                                            ": " + e.getMessage(), 
-                                            getLocator());
-            }
-            catch (ParserConfigurationException e) {
-                throw new SAXParseException("Unable to parse include " + includeSystemId + 
-                                            ": " + e.getMessage(), 
-                                            getLocator());
-            }
-            catch (SAXException e) {
-                throw new SAXParseException("Unable to parse include " + includeSystemId + 
-                                            ": " + e.getMessage(), 
-                                            getLocator());
-            }
-            catch (IOException e) {
-                throw new SAXParseException("Error reading include " + includeSystemId + 
-                                            ": " + e.getMessage(), 
-                                            getLocator());
-            }
-        }
-
-        /**
-         * Include does not support nested elements. This method will always throw an
-         * exception
-         *
-         * @param uri The Namespace URI.
-         * @param localName The local name (without prefix).
-         * @param qualifiedName The qualified name (with prefix)
-         * @param attributes The attributes attached to the element. 
-         *
-         * @throws SAXParseException always.
-         */
-        public void startElement(String uri, String localName, String qualifiedName,
-                                 Attributes attributes) throws SAXParseException {
-            // everything is a task
-            throw new SAXParseException("<include> does not support nested elements", getLocator()); 
-        }
-        
-    }
-
-    /**
-     * A TargetHandler process the Target element.
-     */
-    private class TargetHandler extends ElementHandler {
-        /**
-         * The target being configured.
-         */
-        private Target target;
-        
-        /**
-         * Create a Target handler. Event element in a target is 
-         * considered to be a task
-         *
-         * @param xmlReader the XML parser being used to parse the target element.
-         * @param parent the parent element handler.
-         * @param locator the SAX locator object used to associate elements with source
-         *        locations.
-         * @param attributes attributes of the target
-         */
-        public TargetHandler(XMLReader xmlReader, ContentHandler parent,
-                             Locator locator, Attributes attributes) 
-                throws SAXParseException {
-            super(xmlReader, parent, locator);
-            String targetName = null;
-            String depends = null;
-            Map aspects = new HashMap();
-            for (int i = 0; i < attributes.getLength(); ++i) {
-                String attributeName = attributes.getQName(i);
-                String attributeValue = attributes.getValue(i);
-                if (attributeName.equals("name")) {
-                    targetName = attributeValue;
-                }
-                else if (attributeName.equals("depends")) {
-                    depends = attributeValue;
-                }
-                else if (attributeName.indexOf(":") != -1) {
-                    // potential aspect attribute
-                    aspects.put(attributeName, attributeValue);
-                }
-                else {
-                    throw new SAXParseException("The attribute '" + attributeName + "' is not " + 
-                                                "supported by the <target> element", getLocator());
-                }
-            }
-            if (targetName == null) {
-                throw new SAXParseException("Targets must have a name attribute", locator);
-            }
-            target = new Target(getLocation(locator), targetName);
-            target.setAspects(aspects);
-            
-            if (depends != null) {
-                StringTokenizer tokenizer = new StringTokenizer(depends, ",");
-                while (tokenizer.hasMoreTokens()) {
-                    String dependency = tokenizer.nextToken();
-                    target.addDependency(dependency);
-                }
-            }
-        }
-
-        /*
-         * Process an element within this target. All elements within the target are 
-         * treated as tasks.
-         *
-         * @param uri The Namespace URI.
-         * @param localName The local name (without prefix).
-         * @param qualifiedName The qualified name (with prefix)
-         * @param attributes The attributes attached to the element. 
-         *
-         * @throws SAXParseException if there is a parsing problem.
-         */
-        public void startElement(String uri, String localName, String qualifiedName,
-                                 Attributes attributes) throws SAXParseException {
-            // everything is a task
-            TaskElementHandler taskHandler 
-                = new TaskElementHandler(getXMLReader(), this, getLocator(), 
-                                                 attributes, qualifiedName);
-            target.addTask(taskHandler.getTaskElement());
-        }
-        
-        /**
-         * Get the target parsed by this handler.
-         *
-         * @return the Target model object parsed by this handler.
-         */
-        public Target getTarget() {
-            return target;
-        }
-    }
-
-    /**
-     * A TaskElementHandler parses the task elements of a build
-     */
-    private class TaskElementHandler extends ElementHandler  {
-        /**
-         * The task element being parsed by this handler.
-         */
-        private TaskElement taskElement;
-        
-        /**
-         * Create a task element handler to parse a task element
-         *
-         * @param xmlReader the XML parser being used to parse the task element.
-         * @param parent the parent element handler.
-         * @param locator the SAX locator object used to associate elements with source
-         *        locations.
-         * @param attributes attributes of the task element
-         * @param elementTagName the name of the task element.
-         */
-        public TaskElementHandler(XMLReader xmlReader, ContentHandler parent, Locator locator, 
-                                          Attributes attributes, String elementTagName) {
-            super(xmlReader, parent, locator);     
-            taskElement 
-                = new TaskElement(getLocation(locator), elementTagName);
-                
-            Map aspects = new HashMap();
-            for (int i = 0; i < attributes.getLength(); ++i) {
-                String attributeName = attributes.getQName(i);
-                String attributeValue = attributes.getValue(i);
-                if (attributeName.indexOf(":") != -1) {
-                    // potential aspect attribute
-                    aspects.put(attributeName, attributeValue);
-                }
-                else {
-                    taskElement.addAttribute(attributeName, attributeValue);
-                }
-            }
-            taskElement.setAspects(aspects);
-        }
-        
-        /** 
-         * Process a nested element of this task element. All nested elements
-         * of a taskElement are themselves taskElements.
-         *
-         * @param uri The Namespace URI.
-         * @param localName The local name (without prefix).
-         * @param qualifiedName The qualified name (with prefix)
-         * @param attributes The attributes attached to the element. 
-         *
-         * @throws SAXParseException if there is a parsing problem.
-         */
-        public void startElement(String uri, String localName, String qualifiedName,
-                                 Attributes attributes) throws SAXParseException {
-            // everything within a task element is also a task element
-            TaskElementHandler nestedHandler 
-                = new TaskElementHandler(getXMLReader(), this, getLocator(), 
-                                                 attributes, qualifiedName);
-            taskElement.addTaskElement(nestedHandler.getTaskElement());                                         
-        }
-        
-        public void characters(char[] buf, int start, int end) throws SAXParseException {
-            taskElement.addText(new String(buf, start, end));
-        }
-
-        /**
-         * Get the task element being parsed by this handler.
-         *
-         * @return the TaskElement being parsed.
-         */
-        public TaskElement getTaskElement() {
-            return taskElement;
-        }
-    }
-    
-    /**
-     * A NoProjectReadException is used to indicate that a project
-     * was not read from the particular source. This will happen
-     * if the source is empty.
-     */
-    private class NoProjectReadException extends Exception {
-    }
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/frontend/BuildLogger.java b/proposal/mutant/src/main/org/apache/ant/frontend/BuildLogger.java
deleted file mode 100644
index 8a654c8..0000000
--- a/proposal/mutant/src/main/org/apache/ant/frontend/BuildLogger.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * 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 "The Jakarta Project", "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.ant.frontend;
-
-import org.apache.ant.core.execution.*;
-
-import java.io.*;
-
-/**
- * Interface used by Ant to log the build output. 
- *
- * A build logger is a build listener which has the 'right' to send output to the
- * ant log, which is usually System.out unles redirected by the -logfile option.
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */
-public interface BuildLogger extends BuildListener {
-    /**
-     * Set the msgOutputLevel this logger is to respond to.
-     *
-     * Only messages with a message level lower than or equal to the given level are 
-     * output to the log.
-     *
-     * @param level the logging level for the logger.
-     */
-    public void setMessageOutputLevel(int level);
-    
-    /**
-     * Set the output stream to which this logger is to send its output.
-     *
-     * @param output the output stream for the logger.
-     */
-    public void setOutputPrintStream(PrintStream output);
-    
-    /**
-     * Set the output stream to which this logger is to send error messages.
-     *
-     * @param err the error stream for the logger.
-     */
-    public void setErrorPrintStream(PrintStream err);
-    
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/frontend/Commandline.java b/proposal/mutant/src/main/org/apache/ant/frontend/Commandline.java
deleted file mode 100644
index 809e8a8..0000000
--- a/proposal/mutant/src/main/org/apache/ant/frontend/Commandline.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.frontend;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import javax.xml.parsers.*;
-import org.xml.sax.SAXParseException;
-import java.lang.reflect.*;
-
-import org.apache.ant.core.execution.*;
-import org.apache.ant.core.support.*;
-import org.apache.ant.core.xml.*;
-import org.apache.ant.core.config.*;
-import org.apache.ant.core.model.*;
-
-/**
- * This is the command line front end to end. It drives the core
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class Commandline {
-    /** The default build file name */
-    static public final String DEFAULT_BUILD_FILENAME = "build.ant";
-
-    /** Stream that we are using for logging */
-    private PrintStream out = System.out;
-
-    /** Stream that we are using for logging error messages */
-    private PrintStream err = System.err;
-
-    /** Names of classes to add as listeners to project */
-    private List listeners = new ArrayList(2);
-
-    /** The list of targets to be evaluated in this invocation */
-    private List targets = new ArrayList(4);
-
-    /** Our current message output status. Follows Project.MSG_XXX */
-    private int messageOutputLevel = BuildEvent.MSG_VERBOSE;
-
-    /**
-     * This is the build file to run. By default it is a file: type URL
-     * but other URL protocols can be used.
-     */
-    private URL buildFileURL;
-    
-    /**
-     * The Ant logger class. There may be only one logger. It will have the
-     * right to use the 'out' PrintStream. The class must implements the BuildLogger
-     * interface
-     */
-    private String loggerClassname = null;
-
-    public static void start(String[] args) {
-        // create a command line and use it to run ant
-        Commandline commandline = new Commandline();
-        commandline.runAnt(args);
-    }
-    
-    public void runAnt(String[] args) {
-        ExecutionFrame mainFrame = null;
-        try {
-            parseArguments(args);
-            Project project = getProject();
-            for (Iterator i = project.getTargets(); i.hasNext();) {
-                Target target = (Target)i.next();
-            }
-
-            // Get the list of library components 
-            AntLibrary[] libraries = ComponentManager.getComponents();
-
-            mainFrame = new ExecutionFrame(project, libraries);
-            
-            // We iterate through all nodes of all projects and make sure every node is OK
-            Map state = new HashMap();
-            Stack visiting = new Stack();
-            List dependencyOrder = new ArrayList();
-    
-            mainFrame.checkTargets(dependencyOrder, state, visiting);
-            addBuildListeners(mainFrame);
-        }
-        catch (AntException e) {
-            Location location = e.getLocation();
-            Throwable cause = e.getCause();
-            if (location != null && location != Location.UNKNOWN_LOCATION) {
-                System.out.print(location);
-            }
-            System.out.println(e.getMessage());
-            
-            if (cause != null) {
-                System.out.println("Root cause: " + cause.getClass().getName() + ": " + cause.getMessage());
-            }
-            
-            System.exit(1);
-        }
-        
-        try {
-            mainFrame.runBuild(targets);
-            System.exit(0);
-        }
-        catch (Exception e) {
-            System.exit(1);
-        }
-    }
-    
-    protected void addBuildListeners(ExecutionFrame frame) 
-            throws ConfigException {
-
-        // Add the default listener
-        frame.addBuildListener(createLogger());
-
-        for (Iterator i = listeners.iterator(); i.hasNext(); ) {
-            String className = (String) i.next();
-            try {
-                BuildListener listener =
-                    (BuildListener) Class.forName(className).newInstance();
-                frame.addBuildListener(listener);
-            }
-            catch(Exception exc) {
-                throw new ConfigException("Unable to instantiate listener " + className, exc);
-            }
-        }
-    }
-    
-    /**
-     *  Creates the default build logger for sending build events to the ant log.
-     */
-    private BuildLogger createLogger() throws ConfigException {
-        BuildLogger logger = null;
-        if (loggerClassname != null) {
-            try {
-                logger = (BuildLogger)(Class.forName(loggerClassname).newInstance());
-            }
-            catch (ClassCastException e) {
-                System.err.println("The specified logger class " + loggerClassname +
-                                         " does not implement the BuildLogger interface");
-                throw new ConfigException("Unable to instantiate logger " + loggerClassname, e);
-            }
-            catch (Exception e) {
-                System.err.println("Unable to instantiate specified logger class " +
-                                           loggerClassname + " : " + e.getClass().getName());
-                throw new ConfigException("Unable to instantiate logger " + loggerClassname, e);
-            }
-        }
-        else {
-            logger = new DefaultLogger();
-        }
-
-        logger.setMessageOutputLevel(messageOutputLevel);
-        logger.setOutputPrintStream(out);
-        logger.setErrorPrintStream(err);
-
-        return logger;
-    }
-
-
-    /**
-     * Parse the command line arguments.
-     */
-    private void parseArguments(String[] args) throws ConfigException {
-        for (int i = 0; i < args.length; i++) {
-            String arg = args[i];
-
-            if (arg.equals("-buildfile") || arg.equals("-file") || arg.equals("-f")) {
-                try {
-                    String url = args[i+1];
-                    if (url.indexOf(":") == -1) {
-                        File file = new File(url);
-                        String uri = "file:" + file.getAbsolutePath().replace('\\', '/');
-                        for (int index = uri.indexOf('#'); index != -1; index = uri.indexOf('#')) {
-                            uri = uri.substring(0, index) + "%23" + uri.substring(index+1);
-                        }
-                        buildFileURL = new URL(uri);
-                        // We convert any hash characters to their URL escape.
-                    }
-                    else {
-                        buildFileURL = new URL(url);
-                    }
-                    i++;
-                }
-                catch (MalformedURLException e) {
-                    System.err.println("Buildfile is not valid: " + e.getMessage());
-                    throw new ConfigException("Build file is not valid", e);
-                } 
-                catch (ArrayIndexOutOfBoundsException e) {
-                    System.err.println("You must specify a buildfile when " +
-                                       "using the -buildfile argument");
-                    return;
-                }
-            }
-            else if (arg.equals("-logfile") || arg.equals("-l")) {
-                try {
-                    File logFile = new File(args[i+1]);
-                    i++;
-                    out = new PrintStream(new FileOutputStream(logFile));
-                    err = out;
-                } catch (IOException ioe) {
-                    System.err.println("Cannot write on the specified log file. " +
-                                       "Make sure the path exists and you have write permissions.");
-                    return;
-                } catch (ArrayIndexOutOfBoundsException aioobe) {
-                    System.err.println("You must specify a log file when " +
-                                       "using the -log argument");
-                    return;
-                }
-            }
-            else if (arg.equals("-listener")) {
-                try {
-                    listeners.add(args[i+1]);
-                    i++;
-                } catch (ArrayIndexOutOfBoundsException aioobe) {
-                    System.err.println("You must specify a classname when " +
-                                       "using the -listener argument");
-                    return;
-                }
-            } 
-            else if (arg.equals("-logger")) {
-                if (loggerClassname != null) {
-                    System.err.println("Only one logger class may be specified.");
-                    return;
-                }
-                try {
-                    loggerClassname = args[++i];
-                } catch (ArrayIndexOutOfBoundsException aioobe) {
-                    System.err.println("You must specify a classname when " +
-                                       "using the -logger argument");
-                    return;
-                }
-            }
-            else if (arg.startsWith("-")) {
-                // we don't have any more args to recognize!
-                System.out.println("Unknown argument: " + arg);
-                return;
-            } else {
-                // if it's no other arg, it must be a target
-                targets.add(arg);
-            }
-        }
-        
-        if (buildFileURL == null) {
-            File defaultBuildFile = new File(DEFAULT_BUILD_FILENAME);
-            try {
-                buildFileURL = defaultBuildFile.toURL();
-            }
-            catch (MalformedURLException e) {
-                System.err.println("Buildfile is not valid: " + e.getMessage());
-                throw new ConfigException("Build file is not valid", e);
-            } 
-        }
-    }
-    
-    private Project getProject() throws ConfigException {
-        XMLProjectParser parser = new XMLProjectParser();
-        Project project = parser.parseBuildFile(buildFileURL); 
-        return project;       
-    }
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/frontend/DefaultLogger.java b/proposal/mutant/src/main/org/apache/ant/frontend/DefaultLogger.java
deleted file mode 100644
index 211b9cc..0000000
--- a/proposal/mutant/src/main/org/apache/ant/frontend/DefaultLogger.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 1999 The Apache Software Foundation.  All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * 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 "The Jakarta Project", "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.ant.frontend;
-
-import org.apache.ant.core.support.*;
-import org.apache.ant.core.model.*;
-import org.apache.ant.core.execution.*;
-import java.io.*;
-
-/**
- *  Writes build event to a PrintStream. Currently, it
- *  only writes which targets are being executed, and
- *  any messages that get logged.
- */
-public class DefaultLogger implements BuildLogger {
-    private static int LEFT_COLUMN_SIZE = 12;
-
-    protected PrintStream out;
-    protected PrintStream err;
-    protected int msgOutputLevel = BuildEvent.MSG_ERR;
-    private long startTime = System.currentTimeMillis();
-
-    protected static String lSep = System.getProperty("line.separator");
-
-    protected boolean emacsMode = false;
-
-    /**
-     * Set the msgOutputLevel this logger is to respond to.
-     *
-     * Only messages with a message level lower than or equal to the given level are 
-     * output to the log.
-     * <P>
-     * Constants for the message levels are in Project.java. The order of
-     * the levels, from least to most verbose, is MSG_ERR, MSG_WARN,
-     * MSG_INFO, MSG_VERBOSE, MSG_DEBUG.
-     *
-     * The default message level for DefaultLogger is Project.MSG_ERR.
-     *
-     * @param level the logging level for the logger.
-     */
-    public void setMessageOutputLevel(int level) {
-        this.msgOutputLevel = level;
-    }
-
-    
-    /**
-     * Set the output stream to which this logger is to send its output.
-     *
-     * @param output the output stream for the logger.
-     */
-    public void setOutputPrintStream(PrintStream output) {
-        this.out = output;
-    }
-
-    /**
-     * Set the output stream to which this logger is to send error messages.
-     *
-     * @param err the error stream for the logger.
-     */
-    public void setErrorPrintStream(PrintStream err) {
-        this.err = err;
-    }
-
-    /**
-     * Set this logger to produce emacs (and other editor) friendly output.
-     *
-     * @param emacsMode true if output is to be unadorned so that emacs and other
-     * editors can parse files names, etc.
-     */
-    public void setEmacsMode(boolean emacsMode) {
-        this.emacsMode = emacsMode;
-    }
-
-    public void reportException(Throwable t) {
-        if (t instanceof AntException) {
-            AntException e = (AntException)t;
-            Location location = e.getLocation();
-            Throwable cause = e.getCause();
-            if (location != null && location != Location.UNKNOWN_LOCATION) {
-                out.print(location);
-            }
-            out.println(e.getMessage());
-            
-            if (cause != null) {
-                out.println("Root cause: " + cause.toString());
-            }
-        }
-        else {
-            t.printStackTrace(err);
-        }
-    }
-    
-    public void processBuildEvent(BuildEvent event) {
-        switch (event.getEventType()) {
-            case BuildEvent.BUILD_STARTED:
-                startTime = System.currentTimeMillis();
-                break;
-            case BuildEvent.BUILD_FINISHED:
-                Throwable cause = event.getCause();
-        
-                if (cause == null) {
-                    out.println(lSep + "BUILD SUCCESSFUL");
-                }
-                else {
-                    err.println(lSep + "BUILD FAILED" + lSep);
-        
-                    reportException(cause);
-                }
-        
-                out.println(lSep + "Total time: " + formatTime(System.currentTimeMillis() - startTime));
-                break;
-            case BuildEvent.TARGET_STARTED:
-                if (BuildEvent.MSG_INFO <= msgOutputLevel) {
-                    Target target = (Target)event.getBuildElement();
-                    out.println(lSep + target.getName() + ":");
-                }
-                break;
-            case BuildEvent.TARGET_FINISHED:
-                break;
-            case BuildEvent.TASK_STARTED:
-                break;
-            case BuildEvent.TASK_FINISHED:
-                break;
-            case BuildEvent.MESSAGE:
-                PrintStream logTo = event.getPriority() == BuildEvent.MSG_ERR ? err : out;
-        
-                // Filter out messages based on priority
-                if (event.getPriority() <= msgOutputLevel) {
-        
-                    // Print out the name of the task if we're in one
-                    Object buildElement = event.getBuildElement();
-                    if (buildElement instanceof TaskElement) {
-                        TaskElement taskElement = (TaskElement)buildElement;
-                        String name = taskElement.getType();
-        
-                        if (!emacsMode) {
-                            String msg = "[" + name + "] ";
-                            for (int i = 0; i < (LEFT_COLUMN_SIZE - msg.length()); i++) {
-                                logTo.print(" ");
-                            }
-                            logTo.print(msg);
-                        }
-                    }
-        
-                    // Print the message
-                    logTo.println(event.getMessage());
-                }
-                break;
-            default:
-                err.println("Unrecognized event type = " + event.getEventType());
-                break;
-        }
-    }            
-
-    protected static String formatTime(long millis) {
-        long seconds = millis / 1000;
-        long minutes = seconds / 60;
-
-
-        if (minutes > 0) {
-            return Long.toString(minutes) + " minute"
-                + (minutes == 1 ? " " : "s ")
-                + Long.toString(seconds%60) + " second"
-                + (seconds%60 == 1 ? "" : "s");
-        }
-        else {
-            return Long.toString(seconds) + " second"
-                + (seconds%60 == 1 ? "" : "s");
-        }
-
-    }
-
-}
diff --git a/proposal/mutant/src/main/org/apache/ant/frontend/EmbedTest.java b/proposal/mutant/src/main/org/apache/ant/frontend/EmbedTest.java
deleted file mode 100644
index 10f0018..0000000
--- a/proposal/mutant/src/main/org/apache/ant/frontend/EmbedTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.frontend;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import javax.xml.parsers.*;
-import org.xml.sax.SAXParseException;
-import java.lang.reflect.*;
-
-import org.apache.ant.core.support.*;
-import org.apache.ant.core.xml.*;
-import org.apache.ant.core.config.*;
-
-/**
- * This class illustrates the use of the ExecutionFrame class
- * standalone to execute tasks
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class EmbedTest {
-    
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/frontend/Launcher.java b/proposal/mutant/src/main/org/apache/ant/frontend/Launcher.java
deleted file mode 100644
index ccc0248..0000000
--- a/proposal/mutant/src/main/org/apache/ant/frontend/Launcher.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.frontend;
-
-import java.io.*;
-import java.net.*;
-import javax.xml.parsers.*;
-import java.lang.reflect.*;
-
-import org.apache.ant.core.support.*;
-
-/**
- * This is the command line front end to end. It drives the core
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class Launcher {
-    public static void main(String[] args) throws Exception {
-        
-        // we need to find the parser jars and makre sure we are going to use
-        // those in preference to anything else that may be lying about in the
-        // user's classpath
-        AntClassLoader coreClassLoader = AntLocator.getCoreClassLoader(System.getProperties());
-
-        URL frontEndURL = AntLocator.getClassLocationURL(Launcher.class);
-        coreClassLoader.addURL(frontEndURL);
-        
-        Class commandLineClass = Class.forName("org.apache.ant.frontend.Commandline", true, coreClassLoader);
-        
-        final Class[] param = {Class.forName("[Ljava.lang.String;")};
-        Class target = null;
-        final Method startMethod = commandLineClass.getMethod("start", param);
-        final Object[] argument = {args};
-        startMethod.invoke(null, argument);
-    }
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/frontend/RemoteLauncher.java b/proposal/mutant/src/main/org/apache/ant/frontend/RemoteLauncher.java
deleted file mode 100644
index 63cea5a..0000000
--- a/proposal/mutant/src/main/org/apache/ant/frontend/RemoteLauncher.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2001 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 "The Jakarta Project", "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.ant.frontend;
-
-import java.io.*;
-import java.net.*;
-import javax.xml.parsers.*;
-import java.lang.reflect.*;
-
-import org.apache.ant.core.support.*;
-
-/**
- * Command line to run Ant core from a remote server
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- */ 
-public class RemoteLauncher {
-    public static void main(String[] args) throws Exception {
-
-        String antHome = args[0];
-        String parserHome = args[1];
-        
-        URL[] remoteCore = new URL[3];
-        remoteCore[0] = new URL(antHome + "/lib/core.jar");
-        remoteCore[1] = new URL(antHome + "/lib/frontend.jar");
-        remoteCore[2] = new URL(parserHome);
-        AntClassLoader coreClassLoader = new AntClassLoader(remoteCore);
-
-        String[] realArgs = new String[args.length - 2];
-        System.arraycopy(args, 2, realArgs, 0, realArgs.length);
-                
-
-        System.out.print("Loading remote Ant ... ");        
-        Class launcher = Class.forName("org.apache.ant.frontend.Commandline", true, coreClassLoader);
-        
-        final Class[] param = { Class.forName("[Ljava.lang.String;") };
-        Class target = null;
-        final Method startMethod = launcher.getMethod("start", param);
-        final Object[] argument = {realArgs};
-        System.out.println("Done");        
-        System.out.println("Starting remote Ant");        
-        startMethod.invoke(null, argument);
-    }
-}
-
diff --git a/proposal/mutant/src/main/org/apache/ant/frontend/eggmanifest.mf b/proposal/mutant/src/main/org/apache/ant/frontend/eggmanifest.mf
deleted file mode 100644
index 99001c2..0000000
--- a/proposal/mutant/src/main/org/apache/ant/frontend/eggmanifest.mf
+++ /dev/null
@@ -1,5 +0,0 @@
-Manifest-Version: 1.0
-Created-By: Ant 2.0alpha
-Main-Class: org.apache.ant.frontend.RemoteLauncher
-Class-Path: core.jar
-Sealed: true
\ No newline at end of file
diff --git a/proposal/mutant/src/main/org/apache/ant/frontend/manifest.mf b/proposal/mutant/src/main/org/apache/ant/frontend/manifest.mf
deleted file mode 100644
index bffb780..0000000
--- a/proposal/mutant/src/main/org/apache/ant/frontend/manifest.mf
+++ /dev/null
@@ -1,5 +0,0 @@
-Manifest-Version: 1.0
-Created-By: Ant 2.0alpha
-Main-Class: org.apache.ant.frontend.Launcher
-Class-Path: core.jar
-Sealed: true
\ No newline at end of file
diff --git a/proposal/myrmidon/.cvsignore b/proposal/myrmidon/.cvsignore
deleted file mode 100644
index d6bf360..0000000
--- a/proposal/myrmidon/.cvsignore
+++ /dev/null
@@ -1,8 +0,0 @@
-.ant.properties
-docs
-prj.el
-test
-emacs-jprj.el
-dist
-build
-
diff --git a/proposal/myrmidon/WARNING b/proposal/myrmidon/WARNING
deleted file mode 100644
index 0e048b1..0000000
--- a/proposal/myrmidon/WARNING
+++ /dev/null
@@ -1,28 +0,0 @@
-*****************************  W A R N I N G  **********************************
-
-  All user accessible points in this software package are to be considered
-  "alpha". This means that the developer team is not investing _any_ effort
-  in providing back compatibility between alpha releases.
-  
-  This software will continue to be released as "alpha" until both code, 
-  schemas and APIs will be considered stable.
-  
-  Until then, there will be no warranty that newer versions will maintain back
-  compatibility even in the most simple cases.
-  
-  On the other hand, once "beta" status is reached, back incompatible changes
-  will be made only if absolutely necessary to reach "final" status.
-  
-  The Ant development team understands the importance of reliable
-  software as well as the importance of protecting user investiments by the
-  creation of a solid development platform that doesn't change.
-
-  On the other hand, being the Ant project a pioneer in many fields, this
-  cannot be guaranteed before a final status is reached for the software.
-  
-  Until then, no effort will be provided to guarantee back compatibility.
-  
-  You have been warned.
-
-*****************************  W A R N I N G  **********************************
-
diff --git a/proposal/myrmidon/build.sh b/proposal/myrmidon/build.sh
deleted file mode 100644
index aff1fe2..0000000
--- a/proposal/myrmidon/build.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-echo
-echo "Myrmidon Build System"
-echo "---------------------"
-
-export MYRMIDON_HOME=tools
-
-chmod u+x $MYRMIDON_HOME/bin/antRun
-chmod u+x $MYRMIDON_HOME/bin/ant
-
-export ANT_HOME=
-export CLASSPATH=lib/crimson.jar:lib/jaxp.jar
-
-$MYRMIDON_HOME/bin/ant -logger org.apache.tools.ant.NoBannerLogger -emacs $@
diff --git a/proposal/myrmidon/build.xml b/proposal/myrmidon/build.xml
deleted file mode 100644
index 22c487e..0000000
--- a/proposal/myrmidon/build.xml
+++ /dev/null
@@ -1,204 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
-==============================================================================
-
- Ant build file
-
-Authors:
- Peter Donald <donaldp@apache.org>
-
-Legal:
-  Copyright (c) 2000 The Apache Software Foundation. All Rights Reserved.
-
-==============================================================================
--->
-
-<project default="main" basedir=".">
-
-  <!--
-    Give user a chance to override without editing this file
-    (and without typing -D each time he compiles it)
-  -->
-  <property file=".ant.properties"/>
-  <property file="${user.home}/.ant.properties"/>
-
-  <property name="name" value="ant"/>
-  <property name="Name" value="Ant"/>
-  <property name="version" value="0.01-myrmidon"/>
-  <property name="year" value="2000"/>
-
-  <!-- 
-    these are here only for those who use jikes compiler. For other 
-    developers this part makes no difference.
-  -->
-  <property name="build.compiler.emacs" value="on"/>
-  <property name="build.compiler.warnings" value="true"/>
-  <property name="build.compiler.pedantic" value="true"/>
-  <property name="build.compiler.depend" value="true"/>
-  <property name="build.compiler.fulldepend" value="true"/>
-
-  <property name="debug" value="on"/>
-  <property name="optimize" value="off"/>
-  <property name="deprecation" value="on"/>
-
-  <property name="build.dir" value="build"/>
-  <property name="build.lib" value="${build.dir}/lib"/>
-  <property name="build.src" value="${build.dir}/src"/>
-  <property name="build.classes" value="${build.dir}/classes"/>
-
-  <property name="src.base" value="src"/>
-  <property name="manifest.dir" value="${src.base}/manifest"/>
-  <property name="java.dir" value="${src.base}/java"/>
-  <property name="script.dir" value="${src.base}/script"/>
-  <property name="lib.dir" value="lib"/>
-
-  <property name="dist.name" value="${Name}-${version}"/>
-  <property name="dist.dir" value="dist"/>
-  <property name="dist.bin" value="${dist.dir}/bin"/>
-  <property name="dist.lib" value="${dist.dir}/lib"/>
-  <property name="dist.ext" value="${dist.dir}/ext"/>
-
-  <property name="constants.file" value="org/apache/myrmidon/Constants.java"/>
-
-  <path id="project.class.path">
-    <pathelement path="${java.class.path}" />
-    <fileset dir="${lib.dir}">
-      <include name="*.jar" />
-    </fileset>
-    <pathelement path="${build.classes}" />
-  </path>
-
-  <!-- Main target -->
-  <target name="main" depends="dist" />
- 
-  <!-- Compiles the source code -->
-  <target name="compile">
-
-    <tstamp/>
-    <mkdir dir="${build.src}"/>
-    <copy file="${java.dir}/${constants.file}" tofile="${build.src}/${constants.file}"/>
-    <replace file="${build.src}/${constants.file}" token="@@VERSION@@" value="${version}" />
-    <replace file="${build.src}/${constants.file}" token="@@DATE@@" value="${TODAY}" />
-
-    <mkdir dir="${build.classes}"/>
-    <javac srcdir="${java.dir}"
-           destdir="${build.classes}"
-           debug="${debug}"
-           optimize="${optimize}"
-           deprecation="${deprecation}">
-        <classpath refid="project.class.path"/>        
-        <exclude name="org/apache/ant/gui/**"/>
-        <exclude name="${constants.file}"/>
-        <src path="${build.src}" />
-    </javac>
-
-  </target>
-
-  <!-- Creates the jars file -->
-  <target name="jars" depends="compile">
-
-    <mkdir dir="${build.lib}"/>
-
-    <jar jarfile="${build.lib}/ant.jar" 
-         basedir="${build.classes}" 
-         manifest="${manifest.dir}/ant-manifest.mf">
-      <include name="org/apache/myrmidon/launcher/*" />
-    </jar>
-
-    <jar jarfile="${build.lib}/myrmidon.jar" 
-         basedir="${build.classes}" 
-         manifest="${manifest.dir}/myrmidon-manifest.mf">
-      <include name="org/apache/**" />
-      <exclude name="org/apache/myrmidon/launcher/*" />
-      <exclude name="org/apache/myrmidon/libs/*" />
-      <exclude name="org/apache/ant/**" />
-
-      <zipfileset dir="${manifest.dir}" fullpath="META-INF/ant-roles.xml">
-        <include name="builtin-ant-roles.xml"/>
-      </zipfileset>
-
-      <zipfileset dir="${manifest.dir}" fullpath="META-INF/ant-descriptor.xml">
-        <include name="builtin-ant-descriptor.xml"/>
-      </zipfileset>
-
-    </jar>
-
-    <jar jarfile="${build.lib}/core.atl" basedir="${build.classes}">
-      <include name="org/apache/ant/modules/**" />
-      <include name="org/apache/myrmidon/libs/core/**" />
-      <zipfileset dir="${manifest.dir}" fullpath="META-INF/ant-descriptor.xml">
-        <include name="core-ant-descriptor.xml"/>
-      </zipfileset>
-    </jar>
-
-    <jar jarfile="${build.lib}/selftest.atl" basedir="${build.classes}">
-      <include name="org/apache/myrmidon/libs/selftest/**" />
-      <zipfileset dir="${manifest.dir}" fullpath="META-INF/ant-descriptor.xml">
-        <include name="selftest-ant-descriptor.xml"/>
-      </zipfileset>
-    </jar>
-
-    <jar jarfile="${build.lib}/runtime.atl" basedir="${build.classes}">
-      <include name="org/apache/myrmidon/libs/runtime/**"/>
-      <zipfileset dir="${manifest.dir}" fullpath="META-INF/ant-descriptor.xml">
-        <include name="runtime-ant-descriptor.xml"/>
-      </zipfileset>
-    </jar>
-
-    <jar jarfile="${build.lib}/ant1.atl" basedir="${build.classes}">
-      <include name="org/apache/myrmidon/libs/ant1/**"/>
-      <zipfileset dir="${manifest.dir}" fullpath="META-INF/ant-descriptor.xml">
-        <include name="ant1-ant-descriptor.xml"/>
-      </zipfileset>
-    </jar>
-
-  </target>
-
-  <!-- Creates the distribution -->
-  <target name="dist" depends="jars">
-
-    <mkdir dir="${dist.bin}"/>
-    <mkdir dir="${dist.lib}"/>
-    <mkdir dir="${dist.ext}"/>
-
-    <copy file="tools/lib/ant.jar" tofile="${dist.lib}/ant1-compat.jar" />
-
-    <copy todir="${dist.lib}">
-      <fileset dir="${build.lib}">
-        <exclude name="selftest.atl"/>
-      </fileset>
-    </copy>
-
-    <copy todir="${dist.ext}">
-      <fileset dir="${build.lib}">
-        <include name="selftest.atl"/>
-      </fileset>
-    </copy>
-
-    <copy todir="${dist.lib}">
-      <fileset dir="${lib.dir}"/>
-    </copy>
-
-    <copy todir="${dist.bin}">
-      <fileset dir="${script.dir}"/>
-    </copy>
-
-    <chmod dir="${dist.dir}" perm="go-rwx" />
-    <chmod file="${dist.bin}/ant" perm="u+x"/>
-    <fixcrlf srcdir="${dist.bin}" cr="add" includes="**/*.bat" />
-    <fixcrlf srcdir="${dist.bin}" cr="remove" includes="**/*.sh" />
-    <fixcrlf srcdir="${dist.bin}" cr="remove" includes="ant" />
-
-  </target>
-
-  <!-- Cleans up build and distribution directories -->
-  <target name="clean">
-    <delete dir="${build.dir}"/>
-    <delete dir="${dist.dir}"/>
-    <delete>
-      <fileset dir="." includes="**/*~" defaultexcludes="no"/>
-    </delete>
-  </target>
-
-</project>
diff --git a/proposal/myrmidon/lib/avalon-excalibur.jar b/proposal/myrmidon/lib/avalon-excalibur.jar
deleted file mode 100644
index 29c3af6..0000000
--- a/proposal/myrmidon/lib/avalon-excalibur.jar
+++ /dev/null
Binary files differ
diff --git a/proposal/myrmidon/lib/avalon-framework.jar b/proposal/myrmidon/lib/avalon-framework.jar
deleted file mode 100644
index bbc88e5..0000000
--- a/proposal/myrmidon/lib/avalon-framework.jar
+++ /dev/null
Binary files differ
diff --git a/proposal/myrmidon/lib/logkit.jar b/proposal/myrmidon/lib/logkit.jar
deleted file mode 100644
index 13e43d1..0000000
--- a/proposal/myrmidon/lib/logkit.jar
+++ /dev/null
Binary files differ
diff --git a/proposal/myrmidon/lib/xalan.jar b/proposal/myrmidon/lib/xalan.jar
deleted file mode 100644
index aa2a5c2..0000000
--- a/proposal/myrmidon/lib/xalan.jar
+++ /dev/null
Binary files differ
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/Constants.java b/proposal/myrmidon/src/java/org/apache/myrmidon/Constants.java
deleted file mode 100644
index 5116f0b..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/Constants.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon;
-
-/**
- * Abstract interface to hold constants.
- * 
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public interface Constants
-{
-    //Constants to indicate the build of Myrmidon
-    String  BUILD_DATE         = "@@DATE@@";
-    String  BUILD_VERSION      = "@@VERSION@@";
-
-    String  BUILD_DESCRIPTION  = "Myrmidon " + BUILD_VERSION + " compiled on " + BUILD_DATE;
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/api/AbstractTask.java b/proposal/myrmidon/src/java/org/apache/myrmidon/api/AbstractTask.java
deleted file mode 100644
index 29d37ff..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/api/AbstractTask.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.api;
-
-import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.activity.Initializable;
-import org.apache.avalon.framework.context.Context;
-import org.apache.avalon.framework.context.Contextualizable;
-import org.apache.avalon.framework.logger.AbstractLoggable;
-
-/**
- * This is the class that Task writers should extend to provide custom tasks.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public abstract class AbstractTask
-    extends AbstractLoggable
-    implements Task, Contextualizable, Initializable, Disposable
-{
-    ///Variable to hold context for use by sub-classes
-    private TaskContext            m_context;
-
-    /**
-     * Retrieve context from container.
-     *
-     * @param context the context
-     */
-    public void contextualize( final Context context )
-    {
-        m_context = (TaskContext)context;
-    }
-
-    /**
-     * This will be called before execute() method and checks any preconditions.
-     *
-     * @exception Exception if an error occurs
-     */
-    public void initialize()
-        throws Exception
-    {
-    }
-
-    /**
-     * Execute task. 
-     * This method is called to perform actual work associated with task.
-     * It is called after Task has been Configured and Initialized and before
-     * beig Disposed (If task implements appropriate interfaces).
-     *
-     * @exception Exception if an error occurs
-     */
-    public abstract void execute()
-        throws TaskException;
-
-    /**
-     * This will be called after execute() method.
-     * Use this to clean up any resources associated with task.
-     *
-     * @exception Exception if an error occurs
-     */
-    public void dispose()
-    {
-    }
-
-    /**
-     * Convenience method for sub-class to retrieve context.
-     *
-     * @return the context
-     */
-    protected final TaskContext getContext()
-    {
-        return m_context;
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/api/DefaultTaskContext.java b/proposal/myrmidon/src/java/org/apache/myrmidon/api/DefaultTaskContext.java
deleted file mode 100644
index c2c4d7b..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/api/DefaultTaskContext.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.api;
-
-import java.io.File;
-import java.util.Map;
-import org.apache.avalon.excalibur.io.FileUtil;
-import org.apache.avalon.excalibur.property.PropertyException;
-import org.apache.avalon.excalibur.property.PropertyUtil;
-import org.apache.avalon.framework.context.ContextException;
-import org.apache.avalon.framework.context.DefaultContext;
-
-/**
- * Default implementation of TaskContext.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class DefaultTaskContext
-    extends DefaultContext
-    implements TaskContext
-{
-    /**
-     * Constructor for Context with no parent contexts.
-     */
-    public DefaultTaskContext( final Map contextData )
-    {
-        super( contextData );
-    }
-
-    /**
-     * Constructor for Context with no parent contexts.
-     */
-    public DefaultTaskContext()
-    {
-        this( (TaskContext)null );
-    }
-
-    /**
-     * Constructor.
-     */
-    public DefaultTaskContext( final TaskContext parent )
-    {
-        super( parent );
-    }
-
-    /**
-     * Retrieve JavaVersion running under.
-     *
-     * @return the version of JVM
-     */
-    public JavaVersion getJavaVersion()
-    {
-        try { return (JavaVersion)get( JAVA_VERSION ); }
-        catch( final ContextException ce )
-        {
-            throw new IllegalStateException( "No JavaVersion in Context" );
-        }
-    }
-
-
-    /**
-     * Retrieve Name of tasklet.
-     *
-     * @return the name
-     */
-    public String getName()
-    {
-        try { return (String)get( NAME ); }
-        catch( final ContextException ce )
-        {
-            throw new IllegalStateException( "No Name in Context" );
-        }
-    }
-
-    /**
-     * Retrieve base directory.
-     *
-     * @return the base directory
-     */
-    public File getBaseDirectory()
-    {
-        try { return (File)get( BASE_DIRECTORY ); }
-        catch( final ContextException ce )
-        {
-            throw new IllegalStateException( "No Base Directory in Context" );
-        }
-    }
-
-    /**
-     * Resolve filename.
-     * This involves resolving it against baseDirectory and
-     * removing ../ and ./ references. It also means formatting
-     * it appropriately for the particular OS (ie different OS have
-     * different volumes, file conventions etc)
-     *
-     * @param filename the filename to resolve
-     * @return the resolved filename
-     */
-    public File resolveFile( final String filename )
-    {
-        return FileUtil.resolveFile( getBaseDirectory(), filename );
-    }
-
-    /**
-     * Retrieve property for name.
-     *
-     * @param name the name of property
-     * @return the value of the property
-     */
-    public Object getProperty( final String name )
-    {
-        try { return get( name ); }
-        catch( final ContextException ce )
-        {
-            return null;
-        }
-    }
-
-    /**
-     * Set property value in current context.
-     *
-     * @param name the name of property
-     * @param value the value of property
-     */
-    public void setProperty( final String name, final Object value )
-        throws TaskException
-    {
-        setProperty( name, value, CURRENT );
-    }
-
-    /**
-     * Set property value.
-     *
-     * @param property the property
-     */
-    public void setProperty( final String name, final Object value, final ScopeEnum scope )
-        throws TaskException
-    {
-        checkPropertyValid( name, value );
-
-        if( CURRENT == scope ) put( name, value );
-        else if( PARENT == scope )
-        {
-            if( null == getParent() )
-            {
-                throw new TaskException( "Can't set a property with parent scope when context " +
-                                         " has no parent" );
-            }
-            else
-            {
-                ((TaskContext)getParent()).setProperty( name, value );
-            }
-        }
-        else if( TOP_LEVEL == scope )
-        {
-            DefaultTaskContext context = this;
-
-            while( null != context.getParent() )
-            {
-                context = (DefaultTaskContext)context.getParent();
-            }
-
-            context.put( name, value );
-        }
-        else
-        {
-            throw new IllegalStateException( "Unknown property scope! (" + scope + ")" );
-        }
-    }
-
-    /**
-     * Make sure property is valid if it is one of the "magic" properties.
-     *
-     * @param name the name of property
-     * @param value the value of proeprty
-     * @exception TaskException if an error occurs
-     */
-    protected void checkPropertyValid( final String name, final Object value )
-        throws TaskException
-    {
-        if( BASE_DIRECTORY.equals( name ) && !( value instanceof File ) )
-        {
-            throw new TaskException( "Property " + BASE_DIRECTORY +
-                                     " must have a value of type " +
-                                     File.class.getName() );
-        }
-        else if( NAME.equals( name ) && !( value instanceof String ) )
-        {
-            throw new TaskException( "Property " + NAME +
-                                     " must have a value of type " +
-                                     String.class.getName() );
-        }
-        else if( JAVA_VERSION.equals( name ) && !( value instanceof JavaVersion ) )
-        {
-            throw new TaskException( "Property " + JAVA_VERSION +
-                                     " must have a value of type " +
-                                     JavaVersion.class.getName() );
-        }
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/api/JavaVersion.java b/proposal/myrmidon/src/java/org/apache/myrmidon/api/JavaVersion.java
deleted file mode 100644
index df47b18..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/api/JavaVersion.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.api;
-
-import org.apache.avalon.framework.ValuedEnum;
-
-/**
- * Type safe wrapper class for Java Version enums.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public final class JavaVersion
-    extends ValuedEnum
-{
-    //standard enums for version of JVM
-    public final static JavaVersion  JAVA1_0  = new JavaVersion( "Java 1.0", 100 );
-    public final static JavaVersion  JAVA1_1  = new JavaVersion( "Java 1.1", 110 );
-    public final static JavaVersion  JAVA1_2  = new JavaVersion( "Java 1.2", 120 );
-    public final static JavaVersion  JAVA1_3  = new JavaVersion( "Java 1.3", 130 );
-
-    /**
-     * Private constructor so no instance except here can be defined.
-     *
-     * @param name the java version name
-     * @param value the version * 100
-     */
-    private JavaVersion( final String name, final int value )
-    {
-        super( name, value );
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/api/Task.java b/proposal/myrmidon/src/java/org/apache/myrmidon/api/Task.java
deleted file mode 100644
index ccc6615..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/api/Task.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.api;
-
-/**
- * This is the interface that tasks implement to be executed in Myrmidon runtime.
- * 
- * Instances can also implement the Avalon lifecycle methods 
- * Loggable, Contextualizable, Composable, Initializable and Disposable.
- * Each of these lifecycle stages will be executed at appropriate time.
- *
- * Tasks can also choose to implement Configurable if they wish to directly
- * receive the Configuration data representing the task. If this interface is
- * not implemented then the engine will be responsbil for mapping configuration
- * to task object.
- *
- * The Components passed in via ComponentManager are determined by container.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public interface Task
-{
-    String ROLE = "org.apache.myrmidon.api.Task";
-
-    /**
-     * Execute task. 
-     * This method is called to perform actual work associated with task.
-     * It is called after Task has been Configured and Initialized and before
-     * being Disposed (If task implements appropriate interfaces).
-     *
-     * @exception TaskException if an error occurs
-     */
-    void execute()
-        throws TaskException;
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/api/TaskContext.java b/proposal/myrmidon/src/java/org/apache/myrmidon/api/TaskContext.java
deleted file mode 100644
index 9880861..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/api/TaskContext.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.api;
-
-import java.io.File;
-import org.apache.avalon.framework.Enum;
-import org.apache.avalon.framework.context.Context;
-
-/**
- * This interface represents the <em>Context</em> in which Task is executed.
- * Like other Component APIs the TaskContext represents the communication
- * path between the container and the Task.
- * Unlike other APIs the Logging is provided through another interface (Loggable)
- * as is access to Peer components (via Composable).
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public interface TaskContext
-    extends Context
-{
-    //these values are used when setting properties to indicate the scope at
-    //which properties are set
-    ScopeEnum       CURRENT            = new ScopeEnum( "Current" );
-    ScopeEnum       PARENT             = new ScopeEnum( "Parent" );
-    ScopeEnum       TOP_LEVEL          = new ScopeEnum( "TopLevel" );
-
-    //these are the names of properties that every TaskContext must contain
-    String          JAVA_VERSION       = "myrmidon.java.version";
-    String          BASE_DIRECTORY     = "myrmidon.base.directory";
-    String          NAME               = "myrmidon.task.name";
-
-    /**
-     * Retrieve JavaVersion running under.
-     *
-     * @return the version of JVM
-     */
-    JavaVersion getJavaVersion();
-
-    /**
-     * Retrieve Name of tasklet.
-     *
-     * @return the name
-     */
-    String getName();
-
-    /**
-     * Retrieve base directory.
-     *
-     * @return the base directory
-     */
-    File getBaseDirectory();
-
-    /**
-     * Resolve filename.
-     * This involves resolving it against baseDirectory and
-     * removing ../ and ./ references. It also means formatting
-     * it appropriately for the particular OS (ie different OS have
-     * different volumes, file conventions etc)
-     *
-     * @param filename the filename to resolve
-     * @return the resolved file
-     */
-    File resolveFile( String filename )
-        throws TaskException;
-
-    /**
-     * Retrieve property for name.
-     *
-     * @param name the name of property
-     * @return the value of property
-     */
-    Object getProperty( String name );
-
-    /**
-     * Set property value in current context.
-     *
-     * @param name the name of property
-     * @param value the value of property
-     */
-    void setProperty( String name, Object value )
-        throws TaskException;
-
-    /**
-     * Set property value.
-     *
-     * @param name the name of property
-     * @param value the value of property
-     * @param scope the scope at which to set property
-     */
-    void setProperty( String name, Object value, ScopeEnum scope )
-        throws TaskException;
-
-    /**
-     * Create a Child Context.
-     * This allows separate hierarchly contexts to be easily constructed.
-     *
-     * @param name the name of sub-context
-     * @return the created TaskContext
-     * @exception TaskException if an error occurs
-     */
-    //TaskContext createSubContext( String name )
-    //throws TaskException;
-
-    /**
-     * Safe wrapper class for Scope enums.
-     */
-    final class ScopeEnum
-        extends Enum
-    {
-        ScopeEnum( final String name )
-        {
-            super( name );
-        }
-    }
-}
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/api/TaskException.java b/proposal/myrmidon/src/java/org/apache/myrmidon/api/TaskException.java
deleted file mode 100644
index 44e108d..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/api/TaskException.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.api;
-
-import org.apache.avalon.framework.CascadingException;
-
-/**
- * TaskException thrown when a problem with tasks etc.
- * It is cascading so that further embedded information can be contained.
- * ie TaskException was caused by IOException etc.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class TaskException
-    extends CascadingException
-{
-    /**
-     * Basic constructor with a message
-     *
-     * @param message the message
-     */
-    public TaskException( final String message )
-    {
-        this( message, null );
-    }
-
-    /**
-     * Constructor that builds cascade so that other exception information can be retained.
-     *
-     * @param message the message
-     * @param throwable the throwable
-     */
-    public TaskException( final String message, final Throwable throwable )
-    {
-        super( message, throwable );
-    }
-}
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/aspects/AbstractAspectHandler.java b/proposal/myrmidon/src/java/org/apache/myrmidon/aspects/AbstractAspectHandler.java
deleted file mode 100644
index 74a34a7..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/aspects/AbstractAspectHandler.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.aspects;
-
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.parameters.Parameters;
-import org.apache.log.Logger;
-import org.apache.myrmidon.api.Task;
-import org.apache.myrmidon.api.TaskException;
-
-/**
- * AspectHandler is the interface through which aspects are handled.
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public abstract class AbstractAspectHandler
-    implements AspectHandler
-{
-    private Parameters       m_aspectParameters;
-    private Configuration[]  m_aspectElements;
-
-    private Task             m_task;
-    private Logger           m_logger;
-    private Configuration    m_taskModel;
-
-    public Configuration preCreate( final Configuration taskModel )
-        throws TaskException
-    {
-        return taskModel;
-    }
-
-    public void aspectSettings( final Parameters parameters, final Configuration[] elements )
-        throws TaskException
-    {
-        m_aspectParameters = parameters;
-        m_aspectElements = elements;
-    }
-
-    public void postCreate( final Task task )
-        throws TaskException
-    {
-        m_task = task;
-    }
-
-    public void preLoggable( final Logger logger )
-        throws TaskException
-    {
-        m_logger = logger;
-    }
-
-    public void preConfigure( final Configuration taskModel )
-        throws TaskException
-    {
-        m_taskModel = taskModel;
-    }
-
-    public void preExecute()
-        throws TaskException
-    {
-    }
-
-    public void preDestroy()
-        throws TaskException
-    {
-        reset();
-    }
-
-    public boolean error( final TaskException te )
-        throws TaskException
-    {
-        reset();
-        return false;
-    }
-
-    protected void reset()
-    {
-        m_aspectParameters = null;
-        m_aspectElements = null;
-        m_task = null;
-        m_logger = null;
-        m_taskModel = null;
-    }
-
-    protected final Configuration getTaskModel()
-    {
-        return m_taskModel;
-    }
-
-    protected final Task getTask()
-    {
-        return m_task;
-    }
-
-    protected final Logger getLogger()
-    {
-        return m_logger;
-    }
-
-    protected final Configuration[] getAspectElements()
-    {
-        return m_aspectElements;
-    }
-
-    protected final Parameters getAspectParameters()
-    {
-        return m_aspectParameters;
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/aspects/AspectHandler.java b/proposal/myrmidon/src/java/org/apache/myrmidon/aspects/AspectHandler.java
deleted file mode 100644
index d5ac6d1..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/aspects/AspectHandler.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.aspects;
-
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.parameters.Parameters;
-import org.apache.log.Logger;
-import org.apache.myrmidon.api.Task;
-import org.apache.myrmidon.api.TaskException;
-
-/**
- * AspectHandler is the interface through which aspects are handled.
- *
- * @author <a href="mailto:conor@apache.org">Conor MacNeill</a>
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public interface AspectHandler
-{
-    String ROLE = "org.apache.myrmidon.aspects.AspectHandler";
-
-    Configuration preCreate( Configuration taskModel )
-        throws TaskException;
-
-    void aspectSettings( Parameters parameters, Configuration[] children )
-        throws TaskException;
-
-    void postCreate( Task task )
-        throws TaskException;
-
-    void preLoggable( Logger logger )
-        throws TaskException;
-
-    void preConfigure( Configuration taskModel )
-        throws TaskException;
-
-    void preExecute()
-        throws TaskException;
-
-    void preDestroy()
-        throws TaskException;
-
-    boolean error( TaskException te )
-        throws TaskException;
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/aspects/NoopAspectHandler.java b/proposal/myrmidon/src/java/org/apache/myrmidon/aspects/NoopAspectHandler.java
deleted file mode 100644
index 2ca3525..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/aspects/NoopAspectHandler.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.aspects;
-
-/**
- * A Noop aspect handler that does nothing.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class NoopAspectHandler
-    extends AbstractAspectHandler
-{
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/aspect/AspectManager.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/aspect/AspectManager.java
deleted file mode 100644
index 2706ffd..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/aspect/AspectManager.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.aspect;
-
-import org.apache.avalon.framework.component.Component;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.parameters.Parameters;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.aspects.AspectHandler;
-
-/**
- * Manage and propogate Aspects.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public interface AspectManager
-    extends Component, AspectHandler
-{
-    String ROLE = "org.apache.myrmidon.components.aspect.AspectManager";
-
-    String[] getNames();
-
-    void dispatchAspectSettings( String name, Parameters parameters, Configuration[] elements )
-        throws TaskException;
-
-    void addAspectHandler( String name, AspectHandler handler )
-        throws TaskException;
-
-    void removeAspectHandler( String name, AspectHandler handler )
-        throws TaskException;
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/aspect/DefaultAspectManager.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/aspect/DefaultAspectManager.java
deleted file mode 100644
index de94dc5..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/aspect/DefaultAspectManager.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.aspect;
-
-import java.util.HashMap;
-import org.apache.avalon.framework.activity.Initializable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.parameters.Parameters;
-import org.apache.log.Logger;
-import org.apache.myrmidon.api.Task;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.aspects.AspectHandler;
-import org.apache.myrmidon.aspects.NoopAspectHandler;
-
-/**
- * Manage and propogate Aspects.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class DefaultAspectManager
-    implements AspectManager, Initializable
-{
-    private HashMap          m_aspectMap  = new HashMap();
-    private AspectHandler[]  m_aspects    = new AspectHandler[ 0 ];
-    private String[]         m_names      = new String[ 0 ];
-
-    public void initialize()
-        throws Exception
-    {
-        ///UGLY HACK!!!!
-        addAspectHandler( "ant", new NoopAspectHandler() );
-        addAspectHandler( "doc", new NoopAspectHandler() );
-    }
-
-    public synchronized void addAspectHandler( final String name, final AspectHandler handler )
-        throws TaskException
-    {
-        m_aspectMap.put( name, handler );
-        rebuildArrays();
-    }
-
-    public synchronized void removeAspectHandler( final String name, final AspectHandler handler )
-        throws TaskException
-    {
-        final AspectHandler entry = (AspectHandler)m_aspectMap.remove( name );
-        if( null == entry )
-        {
-            throw new TaskException( "No such aspect with name '" + name + "'" );
-        }
-
-        rebuildArrays();
-    }
-
-    private void rebuildArrays()
-    {
-        m_aspects = (AspectHandler[])m_aspectMap.values().toArray( m_aspects );
-        m_names = (String[])m_aspectMap.keySet().toArray( m_names );
-    }
-
-    public String[] getNames()
-    {
-        return m_names;
-    }
-
-    public void dispatchAspectSettings( final String name,
-                                        final Parameters parameters,
-                                        final Configuration[] elements )
-        throws TaskException
-    {
-        final AspectHandler handler = (AspectHandler)m_aspectMap.get( name );
-        if( null == handler )
-        {
-            throw new TaskException( "No such aspect with name '" + name + "'" );
-        }
-
-        handler.aspectSettings( parameters, elements );
-    }
-
-    public Configuration preCreate( final Configuration configuration )
-        throws TaskException
-    {
-        Configuration model = configuration;
-
-        final AspectHandler[] aspects = m_aspects;
-        for( int i = 0; i < aspects.length; i++ )
-        {
-            model = aspects[ i ].preCreate( model );
-        }
-
-        return model;
-    }
-
-    public void aspectSettings( final Parameters parameters, final Configuration[] elements )
-        throws TaskException
-    {
-        throw new UnsupportedOperationException( "Can not provide Settings to AspectManager" );
-    }
-
-    public void postCreate( final Task task )
-        throws TaskException
-    {
-        final AspectHandler[] aspects = m_aspects;
-        for( int i = 0; i < aspects.length; i++ )
-        {
-            aspects[ i ].postCreate( task );
-        }
-    }
-
-    public void preLoggable( final Logger logger )
-        throws TaskException
-    {
-        final AspectHandler[] aspects = m_aspects;
-        for( int i = 0; i < aspects.length; i++ )
-        {
-            aspects[ i ].preLoggable( logger );
-        }
-    }
-
-    public void preConfigure( final Configuration taskModel )
-        throws TaskException
-    {
-        final AspectHandler[] aspects = m_aspects;
-        for( int i = 0; i < aspects.length; i++ )
-        {
-            aspects[ i ].preConfigure( taskModel );
-        }
-    }
-
-    public void preExecute()
-        throws TaskException
-    {
-        final AspectHandler[] aspects = m_aspects;
-        for( int i = 0; i < aspects.length; i++ )
-        {
-            aspects[ i ].preExecute();
-        }
-    }
-
-    public void preDestroy()
-        throws TaskException
-    {
-        final AspectHandler[] aspects = m_aspects;
-        for( int i = 0; i < aspects.length; i++ )
-        {
-            aspects[ i ].preDestroy();
-        }
-    }
-
-    public boolean error( final TaskException te )
-        throws TaskException
-    {
-        final AspectHandler[] aspects = m_aspects;
-        for( int i = 0; i < aspects.length; i++ )
-        {
-            if( true == aspects[ i ].error( te ) )
-            {
-                return true;
-            }
-        }
-
-        return false;
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/builder/ATIProjectBuilder.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/builder/ATIProjectBuilder.java
deleted file mode 100644
index 878c7bc..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/builder/ATIProjectBuilder.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.builder;
-
-import java.net.URL;
-import java.io.InputStream;
-import java.util.Properties;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import org.apache.avalon.framework.configuration.SAXConfigurationHandler;
-import org.apache.avalon.framework.parameters.Parameterizable;
-import org.apache.avalon.framework.parameters.Parameters;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.sax.SAXResult;
-import javax.xml.transform.sax.SAXSource;
-import javax.xml.transform.sax.SAXTransformerFactory;
-import javax.xml.transform.sax.TransformerHandler;
-import javax.xml.transform.stream.StreamSource;
-import javax.xml.transform.stream.StreamResult;
-
-/**
- * Default implementation to construct project from a build file.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class ATIProjectBuilder
-    extends DefaultProjectBuilder
-    implements Parameterizable
-{
-    private final static String PARAM_EXCEPTION = 
-        "Malformed PI: expected <?xsl-param name=\"foo\" value=\"bar\"?>";
-
-    private final static String PARAMS_EXCEPTION = 
-        "Malformed PI: expected <?xsl-params location=\"myparams.properties\"?>";
-
-    private final static String STYLE_EXCEPTION = 
-        "Malformed PI: expected <?xsl-params href=\"mystylesheet.xsl\"?>";
-
-    private Parameters     m_parameters;
-    private URL            m_systemID;
-
-    public void parameterize( final Parameters parameters )
-    {
-        m_parameters = parameters;
-    }
-
-    protected void process( final URL sourceID,
-                            final SAXConfigurationHandler handler )
-        throws Exception
-    {
-        final SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
-        final SAXParser saxParser = saxParserFactory.newSAXParser();
-        final XMLReader reader = saxParser.getXMLReader();
-        reader.setFeature( "http://xml.org/sax/features/validation", false );
-        reader.setErrorHandler( handler );
-
-        final ReactorPIHandler reactorHandler = new ReactorPIHandler();
-        reader.setContentHandler( reactorHandler );
-
-        try { reader.parse( sourceID.toString() ); }
-        catch( final StopParsingException spe )
-        {
-            //Ignore me
-        }
-
-        Transformer transformer = null;
-
-        final int size = reactorHandler.getPICount();
-        for( int i = 0; i < size; i++ )
-        {
-            final String target = reactorHandler.getTarget( i );
-            final String data = reactorHandler.getData( i );
-
-            if( target.equals( "xsl-param" ) ) handleParameter( data );
-            else if( target.equals( "xsl-params" ) ) handleParameters( data, sourceID );
-            else if( target.equals( "xsl-stylesheet" ) ) 
-            {
-                if( null != transformer )
-                {
-                    throw new SAXException( "Build file can not contain " + 
-                                            "two xsl-stylesheet PIs" );
-                }
-
-                final TransformerFactory factory = TransformerFactory.newInstance();
-                final String stylesheet = getStylesheet( data, sourceID );
-                transformer = factory.newTransformer( new StreamSource( stylesheet ) );
-            }
-        }
-
-        if( null == transformer )
-        {
-            reader.setContentHandler( handler );
-            reader.parse( sourceID.toString() );
-        }
-        else
-        {
-            final String[] names = m_parameters.getNames();
-            for( int i = 0; i < names.length; i++ )
-            {
-                final String name = names[ i ];
-                final String value = m_parameters.getParameter( name );
-                transformer.setParameter( name, value );
-            }
-
-            final SAXResult result = new SAXResult( handler );
-            transformer.transform( new StreamSource( sourceID.toString() ), result );
-            //transformer.transform( new StreamSource( sourceID.toString() ), 
-            //new StreamResult( System.out ) );
-        }        
-    }
-
-    private void handleParameter( final String data )
-        throws SAXException
-    {
-        int index = data.indexOf( '\"' );
-        if( -1 == index )
-        {
-            throw new SAXException( PARAM_EXCEPTION );
-        }
-
-        index = data.indexOf( '\"', index + 1 );
-        if( -1 == index )
-        {
-            throw new SAXException( PARAM_EXCEPTION );
-        }
-
-        //split between two "attributes" occurs on index
-        final String[] name = parseAttribute( data.substring( 0, index + 1 ) );
-        final String[] value = parseAttribute( data.substring( index + 1 ).trim() );
-        
-        if( !name[ 0 ].equals( "name" ) || !value[ 0 ].equals( "value" ) )
-        {
-            throw new SAXException( PARAM_EXCEPTION );
-        }
-
-        m_parameters.setParameter( name[ 1 ], value[ 1 ] );
-    }
-
-    private void handleParameters( final String data, final URL baseSource )
-        throws SAXException
-    {
-        final String[] params = parseAttribute( data );
-        if( !params[ 0 ].equals( "location" ) )
-        {
-            throw new SAXException( PARAMS_EXCEPTION );
-        }
-
-        try
-        {
-            final Properties properties = new Properties();
-            final URL url = new URL( baseSource, params[ 1 ] );
-            final InputStream input = url.openStream();
-            properties.load( input );
-            final Parameters parameters = Parameters.fromProperties( properties );
-            m_parameters.merge( parameters );
-        }
-        catch( final Exception e )
-        {
-            throw new SAXException( "Error loading parameters: " + e );
-        }
-    }
-
-    private String getStylesheet( final String data, final URL baseSource )
-        throws SAXException
-    {
-        final String[] stylesheet = parseAttribute( data );
-        if( !stylesheet[ 0 ].equals( "href" ) )
-        {
-            throw new SAXException( STYLE_EXCEPTION );
-        }
-
-        try { return new URL( baseSource, stylesheet[ 1 ] ).toString(); }
-        catch( final Exception e )
-        {
-            throw new SAXException( "Error locating stylesheet '" + stylesheet[ 1 ] + 
-                                    "' due to " + e );
-        }
-    }
-
-    private String[] parseAttribute( final String data )
-        throws SAXException
-    {
-        //name="value"
-        int index = data.indexOf( '=' );
-        if( -1 == index )
-        {
-            throw new SAXException( "Expecting an attribute but received '" + 
-                                    data + "'" );
-        }
-
-        final int size = data.length();
-        if( '\"' != data.charAt( index + 1 ) || 
-            '\"' != data.charAt( size - 1 ) ||
-            size - 1 == index )
-        {
-            throw new SAXException( "Expecting the value of attribute " + 
-                                    data.substring( 0, index ) +
-                                    " to be enclosed in quotes" );
-        }
-        
-        final String[] result = new String[ 2 ];
-        result[ 0 ] = data.substring( 0, index );
-        result[ 1 ] = data.substring( index + 2, size - 1 );
-
-        return result;
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/builder/DefaultProjectBuilder.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/builder/DefaultProjectBuilder.java
deleted file mode 100644
index 2464b10..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/builder/DefaultProjectBuilder.java
+++ /dev/null
@@ -1,374 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.builder;
-
-import java.net.URL;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import org.apache.avalon.framework.ExceptionUtil;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.configuration.SAXConfigurationHandler;
-import org.apache.avalon.framework.logger.AbstractLoggable;
-import org.apache.avalon.framework.parameters.Parameters;
-import org.apache.log.Logger;
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.framework.Condition;
-import org.apache.myrmidon.components.model.DefaultProject;
-import org.apache.myrmidon.components.model.TypeLib;
-import org.apache.myrmidon.components.model.Project;
-import org.apache.myrmidon.components.model.Target;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-
-/**
- * Default implementation to construct project from a build file.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class DefaultProjectBuilder
-    extends AbstractLoggable
-    implements ProjectBuilder
-{
-    private final static int    PROJECT_REFERENCES  = 0;
-    private final static int    LIBRARY_IMPORTS     = 1;
-    private final static int    IMPLICIT_TASKS      = 2;
-    private final static int    TARGETS             = 3;
-
-    /**
-     * build a project from file.
-     *
-     * @param source the source
-     * @return the constructed Project
-     * @exception IOException if an error occurs
-     * @exception Exception if an error occurs
-     */
-    public Project build( final String source )
-        throws Exception
-    {
-        final File file = new File( source );
-        return build( file, new HashMap() );
-    }
-
-    private Project build( final File file, final HashMap projects )
-        throws Exception
-    {
-        final URL systemID = file.toURL();
-        final Project result = (Project)projects.get( systemID.toString() );
-        if( null != result )
-        {
-            return result;
-        }
-
-        final SAXConfigurationHandler handler = new SAXConfigurationHandler();
-
-        process( systemID, handler );
-
-        final Configuration configuration = handler.getConfiguration();
-
-        final DefaultProject project = buildProject( file, configuration );
-
-        projects.put( systemID.toString(), project );
-
-        //build using all top-level attributes
-        buildTopLevelProject( project, configuration, projects );
-
-        return project;
-    }
-
-    protected void process( final URL systemID, 
-                            final SAXConfigurationHandler handler )
-        throws Exception
-    {
-        final SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
-        final SAXParser saxParser = saxParserFactory.newSAXParser();
-        final XMLReader parser = saxParser.getXMLReader();
-        parser.setFeature( "http://xml.org/sax/features/namespace-prefixes", false );
-        parser.setFeature( "http://xml.org/sax/features/namespaces", false );
-        //parser.setFeature( "http://xml.org/sax/features/validation", false );
-
-        parser.setContentHandler( handler );
-        parser.setErrorHandler( handler );
-        parser.parse( systemID.toString() );
-    }
-
-    /**
-     * build project from configuration.
-     *
-     * @param file the file from which configuration was loaded
-     * @param configuration the configuration loaded
-     * @return the created Project
-     * @exception IOException if an error occurs
-     * @exception Exception if an error occurs
-     * @exception ConfigurationException if an error occurs
-     */
-    private DefaultProject buildProject( final File file,
-                                         final Configuration configuration )
-        throws Exception
-    {
-        if( !configuration.getName().equals( "project" ) )
-        {
-            throw new Exception( "Project file must be enclosed in project element" );
-        }
-
-        //get project-level attributes
-        final String baseDirectoryName = configuration.getAttribute( "basedir" );
-        final String defaultTarget = configuration.getAttribute( "default" );
-        //final String name = configuration.getAttribute( "name" );
-
-        //determine base directory for project
-        final File baseDirectory =
-            (new File( file.getParentFile(), baseDirectoryName )).getAbsoluteFile();
-
-        getLogger().debug( "Project " + file + " base directory: " + baseDirectory );
-
-        //create project and ...
-        final DefaultProject project = new DefaultProject();
-        project.setDefaultTargetName( defaultTarget );
-        project.setBaseDirectory( baseDirectory );
-        //project.setName( name );
-
-        return project;
-    }
-
-    /**
-     * Handle all top level elements in configuration.
-     *
-     * @param project the project
-     * @param configuration the Configuration
-     * @exception Exception if an error occurs
-     */
-    private void buildTopLevelProject( final DefaultProject project, 
-                                       final Configuration configuration,
-                                       final HashMap projects )
-        throws Exception
-    {
-        final ArrayList implicitTaskList = new ArrayList();
-        final Configuration[] children = configuration.getChildren();
-
-        int state = PROJECT_REFERENCES;
-
-        for( int i = 0; i < children.length; i++ )
-        {
-            final Configuration element = children[ i ];
-            final String name = element.getName();
-
-            if( PROJECT_REFERENCES == state )
-            {
-                if( name.equals( "projectref" ) )
-                {
-                    buildProjectRef( project, element, projects );
-                    continue;
-                }
-                else
-                {
-                    state = LIBRARY_IMPORTS;
-                }
-            }
-
-            if( LIBRARY_IMPORTS == state )
-            {
-                if( name.equals( "import" ) )
-                {
-                    buildTypeLib( project, element );
-                    continue;
-                }
-                else
-                {
-                    state = IMPLICIT_TASKS;
-                }
-            }
-
-            if( IMPLICIT_TASKS == state )
-            {
-                //Check for any implicit tasks here
-                if( !name.equals( "target" ) )
-                {
-                    implicitTaskList.add( element );
-                    continue;
-                }
-                else
-                {
-                    state = TARGETS;
-                }
-            }
-
-            if( name.equals( "target" ) ) buildTarget( project, element );
-            else
-            {
-                throw new Exception( "Unknown top-level element " + name +
-                                     " at " + element.getLocation() +
-                                     ". Expecting target" );
-            }
-        }
-
-        final Configuration[] implicitTasks =
-            (Configuration[])implicitTaskList.toArray( new Configuration[ 0 ] );
-
-        final Target implicitTarget = new Target( null, implicitTasks, null );
-        project.setImplicitTarget( implicitTarget );
-    }
-
-    private void buildProjectRef( final DefaultProject project,
-                                  final Configuration element,
-                                  final HashMap projects )
-        throws Exception
-    {
-        final String name = element.getAttribute( "name", null );
-        final String location = element.getAttribute( "location", null );
-
-        if( null == name )
-        {
-            throw new Exception( "Malformed projectref without a name attribute at " +
-                                 element.getLocation() );
-        }
-
-        if( !validName( name ) )
-        {
-            throw new Exception( "Projectref with an invalid name attribute at " +
-                                 element.getLocation() );
-        }
-
-        if( null == location )
-        {
-            throw new Exception( "Malformed projectref without a location attribute at " +
-                                 element.getLocation() );
-        }
-
-        final File baseDirectory = project.getBaseDirectory();
-
-        //TODO: standardize and migrate to Avalon-Excalibur.io
-        final File file = new File( baseDirectory, location );
-
-        final String systemID = file.toURL().toString();
-        Project other = (Project)projects.get( systemID );
-
-        if( null == other )
-        {
-            other = build( file, projects );
-        }
-
-        project.addProject( name, other );
-    }
-
-    private void buildTypeLib( final DefaultProject project,
-                               final Configuration element )
-        throws Exception
-    {
-        final String library = element.getAttribute( "library", null );
-        final String name = element.getAttribute( "name", null );
-        final String type = element.getAttribute( "type", null );
-
-        if( null == library )
-        {
-            throw new Exception( "Malformed import without a library attribute at " +
-                                 element.getLocation() );
-        }
-
-        if( null == name || null == type )
-        {
-            if( null != name || null != type )
-            {
-                throw new Exception( "Malformed import at " + element.getLocation() +
-                                     ". If name or type attribute is specified, both " +
-                                     "attributes must be specified." );
-            }
-        }
-
-        project.addTypeLib( new TypeLib( library, type, name ) );
-    }
-
-    /**
-     * Build a target from configuration.
-     *
-     * @param project the project
-     * @param task the Configuration
-     */
-    private void buildTarget( final DefaultProject project, final Configuration target )
-        throws Exception
-    {
-        final String name = target.getAttribute( "name", null );
-        final String depends = target.getAttribute( "depends", null );
-        final String ifCondition = target.getAttribute( "if", null );
-        final String unlessCondition = target.getAttribute( "unless", null );
-
-        if( null == name )
-        {
-            throw new Exception( "Discovered un-named target at " +
-                                 target.getLocation() );
-        }
-
-        if( !validName( name ) )
-        {
-            throw new Exception( "Target with an invalid name at " +
-                                 target.getLocation() );
-        }
-
-        getLogger().debug( "Parsing target: " + name );
-
-        if( null != ifCondition && null != unlessCondition )
-        {
-            throw new Exception( "Discovered invalid target that has both a if and " +
-                                    "unless condition at " + target.getLocation() );
-        }
-
-        Condition condition = null;
-
-        if( null != ifCondition )
-        {
-            getLogger().debug( "Target if condition: " + ifCondition );
-            condition = new Condition( true, ifCondition );
-        }
-        else if( null != unlessCondition )
-        {
-            getLogger().debug( "Target unless condition: " + unlessCondition );
-            condition = new Condition( false, unlessCondition );
-        }
-
-        String[] dependencies = null;
-
-        //apply depends attribute
-        if( null != depends )
-        {
-            final String[] elements = ExceptionUtil.splitString( depends, "," );
-            final ArrayList dependsList = new ArrayList();
-
-            for( int i = 0; i < elements.length; i++ )
-            {
-                final String dependency = elements[ i ].trim();
-
-                if( 0 == dependency.length() )
-                {
-                    throw new Exception( "Discovered empty dependency in target " +
-                                         target.getName() + " at " + target.getLocation() );
-                }
-
-                getLogger().debug( "Target dependency: " + dependency );
-                dependsList.add( dependency );
-            }
-
-            dependencies = (String[])dependsList.toArray( new String[ 0 ] );
-        }
-
-        final Target defaultTarget =
-            new Target( condition, target.getChildren(), dependencies );
-
-        //add target to project
-        project.addTarget( name, defaultTarget );
-    }
-
-    protected boolean validName( final String name )
-    {
-        if( -1 != name.indexOf( "->" ) ) return false;
-        else return true;
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/builder/ProjectBuilder.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/builder/ProjectBuilder.java
deleted file mode 100644
index 9016751..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/builder/ProjectBuilder.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.builder;
-
-import java.io.File;
-import java.io.IOException;
-import org.apache.avalon.framework.component.Component;
-import org.apache.myrmidon.components.model.Project;
-
-/**
- * Interface implemented by components that build projects from sources.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public interface ProjectBuilder
-    extends Component
-{
-    String ROLE = "org.apache.myrmidon.components.builder.ProjectBuilder";
-
-    /**
-     * build a project from source.
-     *
-     * @param source the source
-     * @return the constructed Project
-     * @exception IOException if an error occurs
-     * @exception AntException if an error occurs
-     */
-    Project build( String source )
-        throws Exception;
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/builder/ReactorPIHandler.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/builder/ReactorPIHandler.java
deleted file mode 100644
index b75b524..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/builder/ReactorPIHandler.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.builder;
-
-import java.util.ArrayList;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- * Handler that reacts to PIs before first element.
- * Have to do it this way as there doesn't seem to be a *safe* way
- * of redirecting content handlers at runtime while using transformers.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class ReactorPIHandler
-    extends DefaultHandler
-{
-    private ArrayList    m_targets    = new ArrayList();
-    private ArrayList    m_data       = new ArrayList();
-
-    public int getPICount()
-    {
-        return m_targets.size();
-    }
-
-    public String getTarget( final int index )
-    {
-        return (String)m_targets.get( index );
-    }
-
-    public String getData( final int index )
-    {
-        return (String)m_data.get( index );
-    }
-
-    public void processingInstruction( final String target, final String data )
-        throws SAXException
-    {
-        m_targets.add( target );
-        m_data.add( data );
-    }
-    
-    public void startElement( final String uri,
-                              final String localName,
-                              final String qName,
-                              final Attributes atts )
-        throws SAXException
-    {
-        //Workaround to stop SAX pipeline
-        throw new StopParsingException();
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/builder/StopParsingException.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/builder/StopParsingException.java
deleted file mode 100644
index d81bb8f..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/builder/StopParsingException.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.builder;
-
-import org.xml.sax.SAXException;
-
-/**
- * Dummy exception to stop parsing "safely".
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-class StopParsingException
-    extends SAXException
-{
-    public StopParsingException()
-    {
-        super( "" );
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/configurer/Configurer.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/configurer/Configurer.java
deleted file mode 100644
index 021cb8d..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/configurer/Configurer.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.configurer;
-
-import org.apache.avalon.framework.component.Component;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.context.Context;
-
-/**
- * Class used to configure tasks.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public interface Configurer
-    extends Component
-{
-    String ROLE = "org.apache.myrmidon.components.configurer.Configurer";
-
-    /**
-     * Configure an object based on a configuration in a particular context.
-     * This configuring can be done in different ways for different
-     * configurers.
-     *
-     * @param object the object
-     * @param configuration the configuration
-     * @param context the Context
-     * @exception ConfigurationException if an error occurs
-     */
-    void configure( Object object, Configuration configuration, Context context )
-        throws ConfigurationException;
-
-    /**
-     * Configure named attribute of object in a particular context.
-     * This configuring can be done in different ways for different
-     * configurers.
-     *
-     * @param object the object
-     * @param name the attribute name
-     * @param value the attribute value
-     * @param context the Context
-     * @exception ConfigurationException if an error occurs
-     */
-    void configure( Object object, String name, String value, Context context )
-        throws ConfigurationException;
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/configurer/DefaultConfigurer.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/configurer/DefaultConfigurer.java
deleted file mode 100644
index 4ba57dc..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/configurer/DefaultConfigurer.java
+++ /dev/null
@@ -1,508 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.configurer;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Iterator;
-import org.apache.avalon.excalibur.property.PropertyException;
-import org.apache.avalon.excalibur.property.PropertyUtil;
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.Composable;
-import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.context.Context;
-import org.apache.avalon.framework.logger.AbstractLoggable;
-import org.apache.avalon.framework.logger.Loggable;
-import org.apache.log.Logger;
-import org.apache.myrmidon.components.converter.MasterConverter;
-import org.apache.myrmidon.converter.Converter;
-import org.apache.myrmidon.converter.ConverterException;
-
-/**
- * Class used to configure tasks.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class DefaultConfigurer
-    extends AbstractLoggable
-    implements Configurer, Composable, Loggable
-{
-    ///Compile time constant to turn on extreme debugging
-    private final static boolean   DEBUG         = false;
-
-    /*
-     * TODO: Should reserved names be "configurable" ?
-     */
-
-    ///Attribute names that are reserved
-    private final static String  RESERVED_ATTRIBUTES[] =
-    {
-        "logger"
-    };
-
-    ///Element names that are reserved
-    private final static String  RESERVED_ELEMENTS[] =
-    {
-        "content"
-    };
-
-    ///Converter to use for converting between values
-    private MasterConverter        m_converter;
-
-    public void compose( final ComponentManager componentManager )
-        throws ComponentException
-    {
-        m_converter = (MasterConverter)componentManager.lookup( MasterConverter.ROLE );
-    }
-
-    /**
-     * Configure a task based on a configuration in a particular context.
-     * This configuring can be done in different ways for different
-     * configurers.
-     * This one does it by first checking if object implements Configurable
-     * and if it does will pass the task the configuration - else it will use
-     * mapping rules to map configuration to types
-     *
-     * @param object the object
-     * @param configuration the configuration
-     * @param context the Context
-     * @exception ConfigurationException if an error occurs
-     */
-    public void configure( final Object object,
-                           final Configuration configuration,
-                           final Context context )
-        throws ConfigurationException
-    {
-        if( DEBUG )
-        {
-            getLogger().debug( "Configuring " + object );
-        }
-
-        if( object instanceof Configurable )
-        {
-            if( DEBUG )
-            {
-                getLogger().debug( "Configuring object via Configurable interface" );
-            }
-
-            ((Configurable)object).configure( configuration );
-        }
-        else
-        {
-            if( DEBUG )
-            {
-                getLogger().debug( "Configuring object via Configurable reflection" );
-            }
-
-            final String[] attributes = configuration.getAttributeNames();
-            for( int i = 0; i < attributes.length; i++ )
-            {
-                final String name = attributes[ i ];
-                final String value = configuration.getAttribute( name );
-
-                if( DEBUG )
-                {
-                    getLogger().debug( "Configuring attribute name=" + name +
-                                       " value=" + value );
-                }
-
-                configureAttribute( object, name, value, context );
-            }
-
-            final Configuration[] children = configuration.getChildren();
-
-            for( int i = 0; i < children.length; i++ )
-            {
-                final Configuration child = children[ i ];
-
-                if( DEBUG )
-                {
-                    getLogger().debug( "Configuring subelement name=" + child.getName() );
-                }
-
-                configureElement( object, child, context );
-            }
-
-            final String content = configuration.getValue( null );
-
-            if( null != content )
-            {
-                if( !content.trim().equals( "" ) )
-                {
-                    if( DEBUG )
-                    {
-                        getLogger().debug( "Configuring content " + content );
-                    }
-
-                    configureContent( object, content, context );
-                }
-            }
-        }
-    }
-
-    /**
-     * Configure named attribute of object in a particular context.
-     * This configuring can be done in different ways for different
-     * configurers.
-     *
-     * @param object the object
-     * @param name the attribute name
-     * @param value the attribute value
-     * @param context the Context
-     * @exception ConfigurationException if an error occurs
-     */
-    public void configure( final Object object, 
-                           final String name, 
-                           final String value, 
-                           final Context context )
-        throws ConfigurationException
-    {
-        configureAttribute( object, name, value, context );
-    }
-
-    /**
-     * Try to configure content of an object.
-     *
-     * @param object the object
-     * @param content the content value to be set
-     * @param context the Context
-     * @exception ConfigurationException if an error occurs
-     */
-    private void configureContent( final Object object,
-                                   final String content,
-                                   final Context context )
-        throws ConfigurationException
-    {
-        setValue( object, "addContent", content, context );
-    }
-
-    private void configureAttribute( final Object object,
-                                     final String name,
-                                     final String value,
-                                     final Context context )
-        throws ConfigurationException
-    {
-        for( int i = 0; i < RESERVED_ATTRIBUTES.length; i++ )
-        {
-            if( RESERVED_ATTRIBUTES[ i ].equals( name ) ) 
-            {
-                throw new ConfigurationException( "Can not specify reserved attribute " + 
-                                                  name );
-            }
-        }
-
-        final String methodName = getMethodNameFor( name );
-        setValue( object, methodName, value, context );
-    }
-
-    private void setValue( final Object object,
-                           final String methodName,
-                           final String value,
-                           final Context context )
-        throws ConfigurationException
-    {
-        // OMFG the rest of this is soooooooooooooooooooooooooooooooo
-        // slow. Need to cache results per class etc.
-
-        final Class clazz = object.getClass();
-        final Method methods[] = getMethodsFor( clazz, methodName );
-
-        if( 0 == methods.length )
-        {
-            throw new ConfigurationException( "Unable to set attribute via " + methodName +
-                                              " due to not finding any appropriate " +
-                                              "accessor method" );
-        }
-
-        setValue( object, value, context, methods );
-    }
-
-    private void setValue( final Object object,
-                           final String value,
-                           final Context context,
-                           final Method methods[] )
-        throws ConfigurationException
-    {
-        try
-        {
-            final Object objectValue =
-                PropertyUtil.resolveProperty( value, context, false );
-
-            setValue( object, objectValue, methods, context );
-        }
-        catch( final PropertyException pe )
-        {
-            throw new ConfigurationException( "Error resolving property " + value,
-                                              pe );
-        }
-    }
-
-    private void setValue( final Object object,
-                           Object value,
-                           final Method methods[],
-                           final Context context )
-        throws ConfigurationException
-    {
-        final Class sourceClass = value.getClass();
-        final String source = sourceClass.getName();
-
-        for( int i = 0; i < methods.length; i++ )
-        {
-            if( setValue( object, value, methods[ i ], sourceClass, source, context ) )
-            {
-                return;
-            }
-        }
-
-        throw new ConfigurationException( "Unable to set attribute via " +
-                                          methods[ 0 ].getName() + " as could not convert " +
-                                          source + " to a matching type" );
-    }
-
-    private boolean setValue( final Object object,
-                              Object value,
-                              final Method method,
-                              final Class sourceClass,
-                              final String source,
-                              final Context context )
-        throws ConfigurationException
-    {
-        Class parameterType = method.getParameterTypes()[ 0 ];
-        if( parameterType.isPrimitive() )
-        {
-            parameterType = getComplexTypeFor( parameterType );
-        }
-
-        try
-        {
-            value = m_converter.convert( parameterType, value, context );
-        }
-        catch( final ConverterException ce )
-        {
-            if( DEBUG )
-            {
-                getLogger().debug( "Failed to find converter ", ce );
-            }
-
-            return false;
-        }
-        catch( final Exception e )
-        {
-            throw new ConfigurationException( "Error converting attribute for " +
-                                              method.getName(),
-                                              e );
-        }
-
-        try
-        {
-            method.invoke( object, new Object[] { value } );
-        }
-        catch( final IllegalAccessException iae )
-        {
-            //should never happen ....
-            throw new ConfigurationException( "Error retrieving methods with " +
-                                              "correct access specifiers",
-                                              iae );
-        }
-        catch( final InvocationTargetException ite )
-        {
-            throw new ConfigurationException( "Error calling method attribute " +
-                                              method.getName(),
-                                              ite );
-        }
-
-        return true;
-    }
-
-    private Class getComplexTypeFor( final Class clazz )
-    {
-        if( String.class == clazz ) return String.class;
-        else if( Integer.TYPE.equals( clazz ) ) return Integer.class;
-        else if( Long.TYPE.equals( clazz ) ) return Long.class;
-        else if( Short.TYPE.equals( clazz ) ) return Short.class;
-        else if( Byte.TYPE.equals( clazz ) ) return Byte.class;
-        else if( Boolean.TYPE.equals( clazz ) ) return Boolean.class;
-        else if( Float.TYPE.equals( clazz ) ) return Float.class;
-        else if( Double.TYPE.equals( clazz ) ) return Double.class;
-        else
-        {
-            throw new IllegalArgumentException( "Can not get complex type for non-primitive " +
-                                                "type " + clazz.getName() );
-        }
-    }
-
-    private Method[] getMethodsFor( final Class clazz, final String methodName )
-    {
-        final Method methods[] = clazz.getMethods();
-        final ArrayList matches = new ArrayList();
-
-        for( int i = 0; i < methods.length; i++ )
-        {
-            final Method method = methods[ i ];
-            if( methodName.equals( method.getName() ) &&
-                Method.PUBLIC == (method.getModifiers() & Method.PUBLIC) )
-            {
-                if( method.getReturnType().equals( Void.TYPE ) )
-                {
-                    final Class parameters[] = method.getParameterTypes();
-                    if( 1 == parameters.length )
-                    {
-                        matches.add( method );
-                    }
-                }
-            }
-        }
-
-        return (Method[])matches.toArray( new Method[0] );
-    }
-
-    private Method[] getCreateMethodsFor( final Class clazz, final String methodName )
-    {
-        final Method methods[] = clazz.getMethods();
-        final ArrayList matches = new ArrayList();
-
-        for( int i = 0; i < methods.length; i++ )
-        {
-            final Method method = methods[ i ];
-            if( methodName.equals( method.getName() ) &&
-                Method.PUBLIC == (method.getModifiers() & Method.PUBLIC) )
-            {
-                final Class returnType = method.getReturnType();
-                if( !returnType.equals( Void.TYPE ) &&
-                    !returnType.isPrimitive() )
-                {
-                    final Class parameters[] = method.getParameterTypes();
-                    if( 0 == parameters.length )
-                    {
-                        matches.add( method );
-                    }
-                }
-            }
-        }
-
-        return (Method[])matches.toArray( new Method[0] );
-    }
-
-    private String getMethodNameFor( final String attribute )
-    {
-        return "set" + getJavaNameFor( attribute.toLowerCase() );
-    }
-
-    private String getJavaNameFor( final String name )
-    {
-        final StringBuffer sb = new StringBuffer();
-
-        int index = name.indexOf( '-' );
-        int last = 0;
-
-        while( -1 != index )
-        {
-            final String word = name.substring( last, index ).toLowerCase();
-            sb.append( Character.toUpperCase( word.charAt( 0 ) ) );
-            sb.append( word.substring( 1, word.length() ) );
-            last = index + 1;
-            index = name.indexOf( '-', last );
-        }
-
-        index = name.length();
-        final String word = name.substring( last, index ).toLowerCase();
-        sb.append( Character.toUpperCase( word.charAt( 0 ) ) );
-        sb.append( word.substring( 1, word.length() ) );
-
-        return sb.toString();
-    }
-
-    private void configureElement( final Object object,
-                                   final Configuration configuration,
-                                   final Context context )
-        throws ConfigurationException
-    {
-        final String name = configuration.getName();
-
-        for( int i = 0; i < RESERVED_ELEMENTS.length; i++ )
-        {
-            if( RESERVED_ATTRIBUTES[ i ].equals( name ) ) return;
-        }
-
-        final String javaName = getJavaNameFor( name );
-
-        // OMFG the rest of this is soooooooooooooooooooooooooooooooo
-        // slow. Need to cache results per class etc.
-        final Class clazz = object.getClass();
-        Method methods[] = getMethodsFor( clazz, "add" + javaName );
-
-        if( 0 != methods.length )
-        {
-            //guess it is first method ????
-            addElement( object, methods[ 0 ], configuration, context );
-        }
-        else
-        {
-            methods = getCreateMethodsFor( clazz, "create" + javaName );
-
-            if( 0 == methods.length )
-            {
-                throw new ConfigurationException( "Unable to set attribute " + javaName +
-                                                  " due to not finding any appropriate " +
-                                                  "accessor method" );
-            }
-
-            //guess it is first method ????
-            createElement( object, methods[ 0 ], configuration, context );
-        }
-    }
-
-    private void createElement( final Object object,
-                                final Method method,
-                                final Configuration configuration,
-                                final Context context )
-        throws ConfigurationException
-    {
-        try
-        {
-            final Object created = method.invoke( object, new Object[ 0 ] );
-            configure( created, configuration, context );
-        }
-        catch( final ConfigurationException ce )
-        {
-            throw ce;
-        }
-        catch( final Exception e )
-        {
-            throw new ConfigurationException( "Error creating sub-element", e );
-        }
-    }
-
-    private void addElement( final Object object,
-                             final Method method,
-                             final Configuration configuration,
-                             final Context context )
-        throws ConfigurationException
-    {
-        try
-        {
-            final Class clazz = method.getParameterTypes()[ 0 ];
-            final Object created = clazz.newInstance();
-
-            configure( created, configuration, context );
-            method.invoke( object, new Object[] { created } );
-        }
-        catch( final ConfigurationException ce )
-        {
-            throw ce;
-        }
-        catch( final Exception e )
-        {
-            throw new ConfigurationException( "Error creating sub-element", e );
-        }
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/ConverterRegistry.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/ConverterRegistry.java
deleted file mode 100644
index fffbc61..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/ConverterRegistry.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.converter;
-
-import org.apache.avalon.framework.component.Component;
-
-/**
- * Interface for registry for ConverterInfos.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public interface ConverterRegistry
-    extends Component
-{
-    String ROLE = "org.apache.myrmidon.components.converter.ConverterRegistry";
-
-    /**
-     * Retrieve name of ConverterInfo that describes converter that converts
-     * from source to destination.
-     *
-     * @param source the source classname
-     * @param destination the destination classname
-     * @return the className of converter or null if none available
-     */
-    String getConverterName( String source, String destination );
-
-    /**
-     * Register a converter
-     *
-     * @param className the className of converter
-     * @param source the source classname
-     * @param destination the destination classname
-     */
-    void registerConverter( String className, String source, String destination );
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/DefaultConverterRegistry.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/DefaultConverterRegistry.java
deleted file mode 100644
index b2d0def..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/DefaultConverterRegistry.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.converter;
-
-import java.util.HashMap;
-
-/**
- * Default implementation of Converter registry.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class DefaultConverterRegistry
-    implements ConverterRegistry
-{
-    private final HashMap      m_mapping   = new HashMap();
-
-    public String getConverterName( final String source, final String destination )
-    {
-        final HashMap map = (HashMap)m_mapping.get( source );
-        if( null == map ) return null;
-        return (String)map.get( destination );
-    }
-
-    public void registerConverter( final String className, 
-                                   final String source, 
-                                   final String destination )
-    {
-        HashMap map = (HashMap)m_mapping.get( source );
-        if( null == map )
-        {
-            map = new HashMap();
-            m_mapping.put( source, map );
-        }
-
-        map.put( destination, className );
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/DefaultMasterConverter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/DefaultMasterConverter.java
deleted file mode 100644
index c457968..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/DefaultMasterConverter.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.converter;
-
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.Composable;
-import org.apache.avalon.framework.context.Context;
-import org.apache.avalon.framework.logger.AbstractLoggable;
-import org.apache.myrmidon.components.converter.MasterConverter;
-import org.apache.myrmidon.components.type.TypeException;
-import org.apache.myrmidon.components.type.TypeFactory;
-import org.apache.myrmidon.components.type.TypeManager;
-import org.apache.myrmidon.converter.Converter;
-import org.apache.myrmidon.converter.ConverterException;
-
-/**
- * Converter engine to handle converting between types.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class DefaultMasterConverter
-    extends AbstractLoggable
-    implements MasterConverter, Composable
-{
-    private final static boolean DEBUG                = false;
-
-    private ConverterRegistry    m_registry;
-    private TypeFactory          m_factory;
-
-    /**
-     * Retrieve relevent services needed to deploy.
-     *
-     * @param componentManager the ComponentManager
-     * @exception ComponentException if an error occurs
-     */
-    public void compose( final ComponentManager componentManager )
-        throws ComponentException
-    {
-        m_registry = (ConverterRegistry)componentManager.lookup( ConverterRegistry.ROLE );
-
-        final TypeManager typeManager = (TypeManager)componentManager.lookup( TypeManager.ROLE );
-        try { m_factory = typeManager.getFactory( Converter.ROLE ); }
-        catch( final TypeException te )
-        {
-            throw new ComponentException( "Unable to retrieve factory from TypeManager", te );
-        }
-    }
-
-    /**
-     * Convert object to destination type.
-     *
-     * @param destination the destination type
-     * @param original the original object
-     * @param context the context in which to convert
-     * @return the converted object
-     * @exception Exception if an error occurs
-     */
-    public Object convert( Class destination, final Object original, final Context context )
-        throws ConverterException
-    {
-        final Class originalClass = original.getClass();
-
-        if( destination.isAssignableFrom( originalClass ) )
-        {
-            return original;
-        }
-
-        if( DEBUG )
-        {
-            getLogger().debug( "Looking for converter from " + originalClass.getName() +
-                               " to " + destination.getName() );
-        }
-
-        //TODO: Start searching inheritance hierarchy for converter
-        final String name = m_registry.getConverterName( originalClass.getName(),
-                                                         destination.getName() );
-
-        if( null == name )
-        {
-            throw new ConverterException( "Unable to find converter for " +
-                                          originalClass.getName() + " to " +
-                                          destination.getName() + " conversion" );
-        }
-
-        try
-        {
-            //TODO: Start caching converters instead of repeatedly instantiating em.
-            final Converter converter = (Converter)m_factory.create( name );
-
-
-            if( DEBUG )
-            {
-                getLogger().debug( "Found Converter: " + converter );
-            }
-
-            return converter.convert( destination, original, context );
-        }
-        catch( final TypeException te )
-        {
-            throw new ConverterException( "Badly configured TypeManager missing " +
-                                          "converter definition", te );
-        }
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/MasterConverter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/MasterConverter.java
deleted file mode 100644
index 16cf9c0..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/converter/MasterConverter.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.converter;
-
-import org.apache.avalon.framework.component.Component;
-import org.apache.myrmidon.converter.Converter;
-
-/**
- * Master Converter to handle converting between types.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public interface MasterConverter
-    extends Component, Converter
-{
-    String ROLE = "org.apache.myrmidon.components.converter.MasterConverter";
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DefaultDeployer.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DefaultDeployer.java
deleted file mode 100644
index c92de15..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DefaultDeployer.java
+++ /dev/null
@@ -1,307 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.deployer;
-
-import java.io.File;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.Enumeration;
-import java.util.HashMap;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import org.apache.avalon.framework.activity.Initializable;
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.Composable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.configuration.SAXConfigurationHandler;
-import org.apache.avalon.framework.logger.AbstractLoggable;
-import org.apache.myrmidon.api.Task;
-import org.apache.myrmidon.components.converter.ConverterRegistry;
-import org.apache.myrmidon.components.type.DefaultTypeFactory;
-import org.apache.myrmidon.components.type.TypeManager;
-import org.apache.myrmidon.components.role.RoleManager;
-import org.apache.myrmidon.converter.Converter;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-
-/**
- * This class deploys a .tsk file into a registry.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class DefaultDeployer
-    extends AbstractLoggable
-    implements Deployer, Initializable, Composable
-{
-    private final static String TYPE_DESCRIPTOR = "META-INF/ant-types.xml";
-
-    private ConverterRegistry            m_converterRegistry;
-    private TypeManager                  m_typeManager;
-    private RoleManager                  m_roleManager;
-
-    /**
-     * Retrieve relevent services needed to deploy.
-     *
-     * @param componentManager the ComponentManager
-     * @exception ComponentException if an error occurs
-     */
-    public void compose( final ComponentManager componentManager )
-        throws ComponentException
-    {
-        m_converterRegistry = (ConverterRegistry)componentManager.lookup( ConverterRegistry.ROLE );
-        m_typeManager = (TypeManager)componentManager.lookup( TypeManager.ROLE );
-        m_roleManager = (RoleManager)componentManager.lookup( RoleManager.ROLE );
-    }
-
-    public void initialize()
-        throws Exception
-    {
-        final SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
-        final SAXParser saxParser = saxParserFactory.newSAXParser();
-        final XMLReader parser = saxParser.getXMLReader();
-        //parser.setFeature( "http://xml.org/sax/features/namespace-prefixes", false );
-
-        final SAXConfigurationHandler handler = new SAXConfigurationHandler();
-        parser.setContentHandler( handler );
-        parser.setErrorHandler( handler );
-
-        final ClassLoader classLoader = getClass().getClassLoader();
-        final DefaultTypeFactory factory = new DefaultTypeFactory( classLoader );
-
-        final Enumeration enum = classLoader.getResources( Deployment.DESCRIPTOR_NAME );
-        while( enum.hasMoreElements() )
-        {
-            final URL url = (URL)enum.nextElement();
-            parser.parse( url.toString() );
-            getLogger().debug( "deploying " + url );
-            deployFromDescriptor( handler.getConfiguration(), classLoader, url );
-        }
-    }
-
-    public void deploy( final File file )
-        throws DeploymentException
-    {
-        getLogger().info( "Deploying AntLib file (" + file + ")" );
-
-        checkFile( file );
-
-        final Deployment deployment = new Deployment( file );
-        final Configuration descriptor = deployment.getDescriptor();
-        final URL[] urls = new URL[] { deployment.getURL() };
-        final URLClassLoader classLoader = 
-            new URLClassLoader( urls, Thread.currentThread().getContextClassLoader() );
-
-        try
-        {
-            deployFromDescriptor( descriptor, classLoader, deployment.getURL() );
-        }
-        catch( final DeploymentException de )
-        {
-            throw de;
-        }
-        catch( final Exception e )
-        {
-            throw new DeploymentException( "Error deploying library", e );
-        }
-    }
-
-    public void deployConverter( final String name, final File file )
-        throws DeploymentException
-    {
-        checkFile( file );
-
-        final Deployment deployment = new Deployment( file );
-        final Configuration descriptor = deployment.getDescriptor();
-        final DefaultTypeFactory factory = new DefaultTypeFactory( deployment.getURL() );
-
-        try
-        {
-            final Configuration[] converters =
-                descriptor.getChild( "converters" ).getChildren( "converter" );
-
-            for( int i = 0; i < converters.length; i++ )
-            {
-                if( converters[ i ].getAttribute( "classname" ).equals( name ) )
-                {
-                    handleConverter( converters[ i ], factory );
-                    break;
-                }
-            }
-        }
-        catch( final ConfigurationException ce )
-        {
-            throw new DeploymentException( "Malformed taskdefs.xml", ce );
-        }
-        catch( final Exception e )
-        {
-            throw new DeploymentException( "Failed to deploy " + name, e );
-        }
-    }
-
-    public void deployType( final String role, final String name, final File file )
-        throws DeploymentException
-    {
-        checkFile( file );
-
-        final String shorthand = getNameForRole( role );
-        final Deployment deployment = new Deployment( file );
-        final Configuration descriptor = deployment.getDescriptor();
-        final DefaultTypeFactory factory = new DefaultTypeFactory( deployment.getURL() );
-
-        try
-        {
-            final Configuration[] datatypes =
-                descriptor.getChild( "types" ).getChildren( shorthand );
-
-            for( int i = 0; i < datatypes.length; i++ )
-            {
-                if( datatypes[ i ].getAttribute( "name" ).equals( name ) )
-                {
-                    handleType( role, datatypes[ i ], factory );
-                    break;
-                }
-            }
-        }
-        catch( final ConfigurationException ce )
-        {
-            throw new DeploymentException( "Malformed taskdefs.xml", ce );
-        }
-        catch( final Exception e )
-        {
-            throw new DeploymentException( "Failed to deploy " + name, e );
-        }
-    }
-
-    private void deployFromDescriptor( final Configuration descriptor,
-                                       final ClassLoader classLoader,
-                                       final URL url )
-        throws DeploymentException, Exception
-    {
-        try
-        {
-            //Have to keep a new factory per role
-            //To avoid name clashes (ie a datatype and task with same name)
-            final HashMap factorys = new HashMap();
-
-            final Configuration[] types = descriptor.getChild( "types" ).getChildren();
-            for( int i = 0; i < types.length; i++ )
-            {
-                final String name = types[ i ].getName();
-                final String role = getRoleForName( name );
-                final DefaultTypeFactory factory = getFactory( role, classLoader, factorys );
-                handleType( role, types[ i ], factory );
-            }
-
-            final DefaultTypeFactory factory = new DefaultTypeFactory( classLoader );
-            final Configuration[] converters = descriptor.getChild( "converters" ).getChildren();
-            for( int i = 0; i < converters.length; i++ )
-            {
-                final String name = converters[ i ].getName();
-                handleConverter( converters[ i ], factory );
-            }
-        }
-        catch( final DeploymentException de )
-        {
-            throw de;
-        }
-        catch( final Exception e )
-        {
-            throw new DeploymentException( "Error deploying library from " + url, e );
-        }
-    }
-
-    private DefaultTypeFactory getFactory( final String role, 
-                                           final ClassLoader classLoader, 
-                                           final HashMap factorys )
-    {
-        DefaultTypeFactory factory = (DefaultTypeFactory)factorys.get( role );
-
-        if( null == factory )
-        {
-            factory = new DefaultTypeFactory( classLoader );
-            factorys.put( role, factory );
-        }
-
-        return factory;
-    }
-
-    private String getNameForRole( final String role )
-        throws DeploymentException
-    {
-        final String name = m_roleManager.getNameForRole( role );
-
-        if( null == name )
-        {
-            throw new DeploymentException( "RoleManager does not know name for role " + role );
-        }
-
-        return name;
-    }
-
-    private String getRoleForName( final String name )
-        throws DeploymentException
-    {
-        final String role = m_roleManager.getRoleForName( name );
-
-        if( null == role )
-        {
-            throw new DeploymentException( "RoleManager does not know role for name " + name );
-        }
-
-        return role;
-    }
-
-    private void checkFile( final File file )
-        throws DeploymentException
-    {
-        if( !file.exists() )
-        {
-            throw new DeploymentException( "Could not find application archive at " +
-                                           file );
-        }
-
-        if( file.isDirectory() )
-        {
-            throw new DeploymentException( "Could not find application archive at " +
-                                           file + " as it is a directory." );
-        }
-    }
-
-    private void handleConverter( final Configuration converter,
-                                  final DefaultTypeFactory factory )
-        throws Exception
-    {
-        final String name = converter.getAttribute( "classname" );
-        final String source = converter.getAttribute( "source" );
-        final String destination = converter.getAttribute( "destination" );
-
-        m_converterRegistry.registerConverter( name, source, destination );
-
-        factory.addNameClassMapping( name, name );
-        m_typeManager.registerType( Converter.ROLE, name, factory );
-
-        getLogger().debug( "Registered converter " + name + " that converts from " +
-                           source + " to " + destination );
-    }
-
-    private void handleType( final String role,
-                             final Configuration type,
-                             final DefaultTypeFactory factory )
-        throws Exception
-    {
-        final String name = type.getAttribute( "name" );
-        final String className = type.getAttribute( "classname" );
-
-        factory.addNameClassMapping( name, className );
-        m_typeManager.registerType( role, name, factory );
-
-        getLogger().debug( "Registered " + role + "/" + name + " as " + className );
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/Deployer.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/Deployer.java
deleted file mode 100644
index 6c4e878..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/Deployer.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.deployer;
-
-import java.io.File;
-import org.apache.avalon.framework.component.Component;
-
-/**
- * This class deploys a .tsk file into a registry.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public interface Deployer
-    extends Component
-{
-    String ROLE = "org.apache.myrmidon.components.deployer.Deployer";
-
-    /**
-     * Deploy a library.
-     *
-     * @param file the file deployment
-     * @exception DeploymentException if an error occurs
-     */
-    void deploy( File file )
-        throws DeploymentException;
-
-    void deployConverter( String name, File file )
-        throws DeploymentException;
-
-    void deployType( String role, String name, File file )
-        throws DeploymentException;
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/Deployment.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/Deployment.java
deleted file mode 100644
index 99e1cd9..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/Deployment.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.deployer;
-
-import java.io.File;
-import java.net.URL;
-import java.net.MalformedURLException;
-import java.io.IOException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.configuration.SAXConfigurationHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-
-/**
- * This class deploys a .tsk file into a registry.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class Deployment
-{
-    public final static String   DESCRIPTOR_NAME     = "META-INF/ant-descriptor.xml";
-
-    private File            m_file;
-
-    private Configuration   m_descriptor;
-
-    public Deployment( final File file )
-    {
-        m_file = file;
-    }
-    
-    public Configuration getDescriptor()
-        throws DeploymentException
-    {
-        if( null == m_descriptor )
-        {
-            m_descriptor = buildDescriptor();
-        }
-
-        return m_descriptor;
-    }
-
-    public URL getURL()
-        throws DeploymentException
-    {
-        try { return m_file.getCanonicalFile().toURL(); }
-        catch( final IOException ioe )
-        {
-            throw new DeploymentException( "Unable to form url", ioe );
-        }
-    }
-
-    private Configuration buildDescriptor()
-        throws DeploymentException
-    {
-        final String systemID = "jar:" + getURL() + "!/" + DESCRIPTOR_NAME;
-
-        try
-        {
-            final SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
-            final SAXParser saxParser = saxParserFactory.newSAXParser();
-            final XMLReader parser = saxParser.getXMLReader();
-            //parser.setFeature( "http://xml.org/sax/features/namespace-prefixes", false );
-
-            final SAXConfigurationHandler handler = new SAXConfigurationHandler();
-            parser.setContentHandler( handler );
-            parser.setErrorHandler( handler );
-
-            parser.parse( systemID );
-            return handler.getConfiguration();
-        }
-        catch( final SAXException se )
-        {
-            throw new DeploymentException( "Malformed configuration data", se );
-        }
-        catch( final ParserConfigurationException pce )
-        {
-            throw new DeploymentException( "Error configuring parser", pce );
-        }
-        catch( final IOException ioe )
-        {
-            throw new DeploymentException( "Error reading configuration", ioe );
-        }
-    }
-}
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DeploymentException.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DeploymentException.java
deleted file mode 100644
index 78881f8..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/deployer/DeploymentException.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.deployer;
-
-import org.apache.avalon.framework.CascadingException;
-
-/**
- * Exception to indicate error deploying.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public final class DeploymentException
-    extends CascadingException
-{
-    /**
-     * Construct a new <code>DeploymentException</code> instance.
-     *
-     * @param message The detail message for this exception.
-     */
-    public DeploymentException( final String message )
-    {
-        this( message, null );
-    }
-
-    /**
-     * Construct a new <code>DeploymentException</code> instance.
-     *
-     * @param message The detail message for this exception.
-     * @param throwable the root cause of the exception
-     */
-    public DeploymentException( final String message, final Throwable throwable )
-    {
-        super( message, throwable );
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/DefaultEmbeddor.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/DefaultEmbeddor.java
deleted file mode 100644
index 654ec04..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/DefaultEmbeddor.java
+++ /dev/null
@@ -1,530 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.embeddor;
-
-import java.io.File;
-import java.io.FilenameFilter;
-import java.util.Map;
-import org.apache.avalon.excalibur.io.ExtensionFileFilter;
-import org.apache.avalon.excalibur.io.FileUtil;
-import org.apache.avalon.framework.activity.Initializable;
-import org.apache.avalon.framework.component.Component;
-import org.apache.avalon.framework.component.Composable;
-import org.apache.avalon.framework.component.DefaultComponentManager;
-import org.apache.avalon.framework.logger.AbstractLoggable;
-import org.apache.avalon.framework.parameters.Parameterizable;
-import org.apache.avalon.framework.parameters.Parameters;
-import org.apache.myrmidon.api.JavaVersion;
-import org.apache.myrmidon.components.aspect.AspectManager;
-import org.apache.myrmidon.components.builder.ProjectBuilder;
-import org.apache.myrmidon.components.configurer.Configurer;
-import org.apache.myrmidon.components.converter.ConverterRegistry;
-import org.apache.myrmidon.components.converter.MasterConverter;
-import org.apache.myrmidon.components.deployer.Deployer;
-import org.apache.myrmidon.components.deployer.DeploymentException;
-import org.apache.myrmidon.components.executor.Executor;
-import org.apache.myrmidon.components.workspace.Workspace;
-import org.apache.myrmidon.components.model.Project;
-import org.apache.myrmidon.components.role.RoleManager;
-import org.apache.myrmidon.components.type.TypeFactory;
-import org.apache.myrmidon.components.type.TypeManager;
-
-/**
- * Default implementation of Embeddor.
- * Instantiate this to embed inside other applications.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class DefaultEmbeddor
-    extends AbstractLoggable
-    implements Embeddor
-{
-    private Deployer                 m_deployer;
-    private RoleManager              m_roleManager;
-
-    private AspectManager            m_aspectManager;
-    private TypeManager              m_typeManager;
-    private MasterConverter          m_converter;
-    private ConverterRegistry        m_converterRegistry;
-
-    private Executor                 m_executor;
-    private Configurer               m_configurer;
-
-    private DefaultComponentManager  m_componentManager;
-    private Parameters               m_parameters;
-    private Parameters               m_defaults;
-
-    private File                     m_homeDir;
-    private File                     m_binDir;
-    private File                     m_libDir;
-    private File                     m_taskLibDir;
-
-    /**
-     * Setup basic properties of engine.
-     * Called before init() and can be used to specify alternate components in system.
-     *
-     * @param properties the properties
-     */
-    public void parameterize( final Parameters parameters )
-    {
-        m_parameters = parameters;
-    }
-
-    public Project createProject( final String location, 
-                                  String type, 
-                                  final Parameters parameters )
-        throws Exception
-    {
-        if( null == type )
-        {
-            type = guessTypeFor( location );
-        }
-
-        final ProjectBuilder builder = getProjectBuilder( type, parameters );
-        return builder.build( location );
-    }
-
-    private String guessTypeFor( final String location )
-    {
-        return FileUtil.getExtension( location );
-    }
-
-    private ProjectBuilder getProjectBuilder( final String type, 
-                                              final Parameters parameters )
-        throws Exception
-    {
-
-        final TypeFactory factory = m_typeManager.getFactory( ProjectBuilder.ROLE );
-        final ProjectBuilder builder = (ProjectBuilder)factory.create( type );
-
-        setupLogger( builder );
-
-        if( builder instanceof Composable )
-        {
-            ((Composable)builder).compose( m_componentManager );
-        }
-
-        if( builder instanceof Parameterizable )
-        {
-            ((Parameterizable)builder).parameterize( parameters );
-        }        
-
-        if( builder instanceof Initializable )
-        {
-            ((Initializable)builder).initialize();
-        }        
-
-        return builder;
-    }
-
-    public Workspace createWorkspace( final Parameters parameters )
-        throws Exception
-    {
-        final String component = getParameter( Workspace.ROLE );
-        final Workspace workspace = 
-            (Workspace)createComponent( component, Workspace.class );
-
-        setupLogger( workspace );
-
-
-        if( workspace instanceof Composable )
-        {
-            ((Composable)workspace).compose( m_componentManager );
-        }
-
-        if( workspace instanceof Parameterizable )
-        {
-            ((Parameterizable)workspace).parameterize( parameters );
-        }        
-
-        if( workspace instanceof Initializable )
-        {
-            ((Initializable)workspace).initialize();
-        }        
-
-        return workspace;
-    }
-
-    /**
-     * Initialize the system.
-     *
-     * @exception Exception if an error occurs
-     */
-    public void initialize()
-        throws Exception
-    {
-        //setup default properties
-        m_defaults = createDefaultParameters();
-
-        //create all the components
-        createComponents();
-
-        //setup the component manager
-        m_componentManager = createComponentManager();
-
-        setupComponents();
-
-        setupFiles();
-    }
-
-    public void start()
-        throws Exception
-    {
-        final ExtensionFileFilter filter = new ExtensionFileFilter( ".atl" );
-        deployFromDirectory( m_deployer, m_taskLibDir, filter );
-    }
-
-    public void stop()
-    {
-        //Undeploy all the tasks by killing ExecutionFrame???
-    }
-
-    /**
-     * Dispose engine.
-     *
-     * @exception Exception if an error occurs
-     */
-    public void dispose()
-    {
-        m_aspectManager = null;
-        m_roleManager = null;
-        m_converterRegistry = null;
-        m_converter = null;
-        m_executor = null;
-        m_deployer = null;
-        m_configurer = null;
-        m_componentManager = null;
-        m_parameters = null;
-        m_defaults = null;
-        m_homeDir = null;
-        m_binDir = null;
-        m_libDir = null;
-        m_taskLibDir = null;
-    }
-
-    /**
-     * Create default properties which includes default names of all components.
-     * Overide this in sub-classes to change values.
-     *
-     * @return the Parameters
-     */
-    private Parameters createDefaultParameters()
-    {
-        final Parameters defaults = new Parameters();
-
-        //create all the default properties for files/directories
-        defaults.setParameter( "myrmidon.bin.path", "bin" );
-        defaults.setParameter( "myrmidon.lib.path", "lib" );
-
-        //create all the default properties for components
-        defaults.setParameter( AspectManager.ROLE,
-                               "org.apache.myrmidon.components.aspect.DefaultAspectManager" );
-        defaults.setParameter( RoleManager.ROLE,
-                               "org.apache.myrmidon.components.role.DefaultRoleManager" );
-        defaults.setParameter( MasterConverter.ROLE,
-                               "org.apache.myrmidon.components.converter.DefaultMasterConverter" );
-        defaults.setParameter( ConverterRegistry.ROLE,
-                               "org.apache.myrmidon.components.converter.DefaultConverterRegistry" );
-        defaults.setParameter( TypeManager.ROLE,
-                               "org.apache.myrmidon.components.type.DefaultTypeManager" );
-        defaults.setParameter( Executor.ROLE,
-                               //"org.apache.myrmidon.components.executor.DefaultExecutor" );
-                               //"org.apache.myrmidon.components.executor.PrintingExecutor" );
-                               "org.apache.myrmidon.components.executor.AspectAwareExecutor" );
-        defaults.setParameter( Workspace.ROLE,
-                               "org.apache.myrmidon.components.workspace.DefaultWorkspace" );
-        defaults.setParameter( Deployer.ROLE,
-                               "org.apache.myrmidon.components.deployer.DefaultDeployer" );
-        defaults.setParameter( Configurer.ROLE,
-                               "org.apache.myrmidon.components.configurer.DefaultConfigurer" );
-
-        return defaults;
-    }
-
-    /**
-     * Create a ComponentManager containing all components in engine.
-     *
-     * @return the ComponentManager
-     */
-    private DefaultComponentManager createComponentManager()
-    {
-        final DefaultComponentManager componentManager = new DefaultComponentManager();
-
-        componentManager.put( MasterConverter.ROLE, m_converter );
-
-        //Following components required when Myrmidon is used as build tool
-        componentManager.put( Embeddor.ROLE, this );
-
-        //Following components required when Myrmidon allows user deployment of tasks etal.
-        componentManager.put( RoleManager.ROLE, m_roleManager );
-        componentManager.put( Deployer.ROLE, m_deployer );
-
-        //Following components used when want to types (ie tasks/mappers etc)
-        componentManager.put( TypeManager.ROLE, m_typeManager );
-        componentManager.put( ConverterRegistry.ROLE, m_converterRegistry );
-
-        componentManager.put( AspectManager.ROLE, m_aspectManager );
-
-        //Following components required when allowing Container tasks
-        componentManager.put( Configurer.ROLE, m_configurer );
-        componentManager.put( Executor.ROLE, m_executor );
-
-        return componentManager;
-    }
-
-    /**
-     * Create all required components.
-     *
-     * @exception Exception if an error occurs
-     */
-    private void createComponents()
-        throws Exception
-    {
-        String component = null;
-
-        component = getParameter( ConverterRegistry.ROLE );
-        m_converterRegistry = (ConverterRegistry)createComponent( component, ConverterRegistry.class );
-
-        component = getParameter( MasterConverter.ROLE );
-        m_converter = (MasterConverter)createComponent( component, MasterConverter.class );
-
-        component = getParameter( Configurer.ROLE );
-        m_configurer = (Configurer)createComponent( component, Configurer.class );
-
-        component = getParameter( TypeManager.ROLE );
-        m_typeManager = (TypeManager)createComponent( component, TypeManager.class );
-
-        component = getParameter( RoleManager.ROLE );
-        m_roleManager = (RoleManager)createComponent( component, RoleManager.class );
-
-        component = getParameter( AspectManager.ROLE );
-        m_aspectManager = (AspectManager)createComponent( component, AspectManager.class );
-
-        component = getParameter( Deployer.ROLE );
-        m_deployer = (Deployer)createComponent( component, Deployer.class );
-
-        component = getParameter( Executor.ROLE );
-        m_executor = (Executor)createComponent( component, Executor.class );
-    }
-
-    /**
-     * Setup all the components. (ir run all required lifecycle methods).
-     *
-     * @exception Exception if an error occurs
-     */
-    private void setupComponents()
-        throws Exception
-    {
-        setupComponent( m_roleManager );
-        setupComponent( m_aspectManager );
-        setupComponent( m_converterRegistry );
-        setupComponent( m_converter );
-        setupComponent( m_executor );
-        setupComponent( m_deployer );
-        setupComponent( m_configurer );
-    }
-
-    /**
-     * Setup an individual component.
-     *
-     * @param component the component
-     * @exception Exception if an error occurs
-     */
-    private void setupComponent( final Component component )
-        throws Exception
-    {
-        setupLogger( component );
-
-        if( component instanceof Composable )
-        {
-            ((Composable)component).compose( m_componentManager );
-        }
-
-        if( component instanceof Initializable )
-        {
-            ((Initializable)component).initialize();
-        }
-    }
-
-    /**
-     * Setup all the files attributes.
-     */
-    private void setupFiles()
-        throws Exception
-    {
-        String filepath = null;
-
-        filepath = getParameter( "myrmidon.home" );
-        m_homeDir = (new File( filepath )).getAbsoluteFile();
-        checkDirectory( m_homeDir, "home" );
-
-        filepath = getParameter( "myrmidon.bin.path" );
-        m_binDir = resolveDirectory( filepath, "bin-dir" );
-
-        filepath = getParameter( "myrmidon.lib.path" );
-        m_taskLibDir = resolveDirectory( filepath, "task-lib-dir" );
-    }
-
-    /**
-     * Retrieve value of named property.
-     * First access passed in properties and then the default properties.
-     *
-     * @param name the name of property
-     * @return the value of property or null
-     */
-    private String getParameter( final String name )
-    {
-        String value = m_parameters.getParameter( name, null );
-
-        if( null == value )
-        {
-            value = m_defaults.getParameter( name, null );
-        }
-
-        return value;
-    }
-
-    /**
-     * Resolve a directory relative to another base directory.
-     *
-     * @param dir the base directory
-     * @param name the relative directory
-     * @return the created File
-     * @exception Exception if an error occurs
-     */
-    private File resolveDirectory( final String dir, final String name )
-        throws Exception
-    {
-        final File file = FileUtil.resolveFile( m_homeDir, dir );
-        checkDirectory( file, name );
-        return file;
-    }
-
-    /**
-     * Verify file is a directory else throw an exception.
-     *
-     * @param file the File
-     * @param name the name of file type (used in error messages)
-     */
-    private void checkDirectory( final File file, final String name )
-        throws Exception
-    {
-        if( !file.exists() )
-        {
-            throw new Exception( name + " (" + file + ") does not exist" );
-        }
-        else if( !file.isDirectory() )
-        {
-            throw new Exception( name + " (" + file + ") is not a directory" );
-        }
-    }
-
-    /**
-     * Helper method to retrieve current JVM version.
-     *
-     * @return the current JVM version
-     */
-    private JavaVersion getJavaVersion()
-    {
-        JavaVersion version = JavaVersion.JAVA1_0;
-
-        try
-        {
-            Class.forName( "java.lang.Void" );
-            version = JavaVersion.JAVA1_1;
-            Class.forName( "java.lang.ThreadLocal" );
-            version = JavaVersion.JAVA1_2;
-            Class.forName( "java.lang.StrictMath" );
-            version = JavaVersion.JAVA1_3;
-        }
-        catch( final ClassNotFoundException cnfe ) {}
-
-        return version;
-    }
-
-    /**
-     * Create a component that implements an interface.
-     *
-     * @param component the name of the component
-     * @param clazz the name of interface/type
-     * @return the created object
-     * @exception Exception if an error occurs
-     */
-    private Object createComponent( final String component, final Class clazz )
-        throws Exception
-    {
-        try
-        {
-            final Object object = Class.forName( component ).newInstance();
-
-            if( !clazz.isInstance( object ) )
-            {
-                throw new Exception( "Object " + component + " is not an instance of " +
-                                     clazz );
-            }
-
-            return object;
-        }
-        catch( final IllegalAccessException iae )
-        {
-            throw new Exception( "Non-public constructor for " + clazz + " " + component );
-        }
-        catch( final InstantiationException ie )
-        {
-            throw new Exception( "Error instantiating class for " + clazz + " " + component );
-        }
-        catch( final ClassNotFoundException cnfe )
-        {
-            throw new Exception( "Could not find the class for " + clazz +
-                                 " (" + component + ")" );
-        }
-    }
-
-
-    private void deployFromDirectory( final Deployer deployer,
-                                      final File directory,
-                                      final FilenameFilter filter )
-        throws DeploymentException
-    {
-        final File[] files = directory.listFiles( filter );
-
-        if( null != files )
-        {
-            deployFiles( deployer, files );
-        }
-    }
-
-    private void deployFiles( final Deployer deployer, final File[] files )
-        throws DeploymentException
-    {
-        for( int i = 0; i < files.length; i++ )
-        {
-            final String filename = files[ i ].getName();
-
-            int index = filename.lastIndexOf( '.' );
-            if( -1 == index ) index = filename.length();
-
-            final String name = filename.substring( 0, index );
-
-            try
-            {
-                final File file = files[ i ].getCanonicalFile();
-                deployer.deploy( file );
-            }
-            catch( final DeploymentException de )
-            {
-                throw de;
-            }
-            catch( final Exception e )
-            {
-                throw new DeploymentException( "Unable to retrieve filename for file " +
-                                               files[ i ], e );
-            }
-        }
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/Embeddor.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/Embeddor.java
deleted file mode 100644
index e844ade..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/embeddor/Embeddor.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.embeddor;
-
-import java.util.Map;
-import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.activity.Initializable;
-import org.apache.avalon.framework.activity.Startable;
-import org.apache.avalon.framework.component.Component;
-import org.apache.avalon.framework.parameters.Parameters;
-import org.apache.avalon.framework.parameters.Parameterizable;
-import org.apache.myrmidon.components.model.Project;
-import org.apache.myrmidon.components.workspace.Workspace;
-
-/**
- * Interface through which you embed Myrmidon into applications.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public interface Embeddor
-    extends Component, Parameterizable, Initializable, Startable, Disposable
-{
-    String ROLE = "org.apache.myrmidon.components.embeddor.Embeddor";
-
-    /**
-     * Create a project.
-     *
-     * @return the created Project
-     */
-    Project createProject( String location, String type, Parameters parameters )
-        throws Exception;
-
-    /**
-     * Create a Workspace for a particular project.
-     *
-     * @param defines the defines in workspace
-     * @return the Workspace
-     */
-    Workspace createWorkspace( Parameters parameters )
-        throws Exception;
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/AspectAwareExecutor.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/AspectAwareExecutor.java
deleted file mode 100644
index 965dde3..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/AspectAwareExecutor.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.executor;
-
-import java.util.HashMap;
-import java.util.ArrayList;
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.parameters.Parameters;
-import org.apache.avalon.framework.configuration.DefaultConfiguration;
-import org.apache.log.Logger;
-import org.apache.myrmidon.api.Task;
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.aspects.AspectHandler;
-import org.apache.myrmidon.components.aspect.AspectManager;
-
-public class AspectAwareExecutor
-    extends DefaultExecutor
-{
-    private final static Parameters       EMPTY_PARAMETERS;
-    private final static Configuration[]  EMPTY_ELEMENTS       = new Configuration[ 0 ];
-
-    static
-    {
-        EMPTY_PARAMETERS = new Parameters();
-        EMPTY_PARAMETERS.makeReadOnly();
-    }
-
-    private AspectManager        m_aspectManager;
-
-    /**
-     * Retrieve relevent services.
-     *
-     * @param componentManager the ComponentManager
-     * @exception ComponentException if an error occurs
-     */
-    public void compose( final ComponentManager componentManager )
-        throws ComponentException
-    {
-        super.compose( componentManager );
-
-        m_aspectManager = (AspectManager)componentManager.lookup( AspectManager.ROLE );
-    }
-
-    public void execute( final Configuration taskModel, final ExecutionFrame frame )
-        throws TaskException
-    {
-        try
-        {
-            executeTask( taskModel, frame );
-        }
-        catch( final TaskException te )
-        {
-            if( false == getAspectManager().error( te ) )
-            {
-                throw te;
-            }
-        }
-    }
-
-    private void executeTask( Configuration taskModel, final ExecutionFrame frame )
-        throws TaskException
-    {
-        taskModel = getAspectManager().preCreate( taskModel );
-        taskModel = prepareAspects( taskModel );
-
-        getLogger().debug( "Pre-Create" );
-        final Task task = createTask( taskModel.getName(), frame );
-        getAspectManager().postCreate( task );
-
-        getLogger().debug( "Pre-Loggable" );
-        final Logger logger = frame.getLogger();
-        getAspectManager().preLoggable( logger );
-        doLoggable( task, taskModel, logger );
-
-        getLogger().debug( "Contextualizing" );
-        doContextualize( task, taskModel, frame.getContext() );
-
-        getLogger().debug( "Composing" );
-        doCompose( task, taskModel, frame.getComponentManager() );
-
-        getLogger().debug( "Configuring" );
-        getAspectManager().preConfigure( taskModel );
-        doConfigure( task, taskModel, frame.getContext() );
-
-        getLogger().debug( "Initializing" );
-        doInitialize( task, taskModel );
-
-        getLogger().debug( "Executing" );
-        getAspectManager().preExecute();
-        doExecute( taskModel, task );
-
-        getLogger().debug( "Disposing" );
-        getAspectManager().preDestroy();
-        doDispose( task, taskModel );
-    }
-
-    protected void doExecute( final Configuration taskModel, final Task task )
-        throws TaskException
-    {
-        task.execute();
-    }
-
-    //TODO: Extract and clean taskModel here.
-    //Get all parameters from model and provide to appropriate aspect.
-    //aspect( final Parameters parameters, final Configuration[] elements )
-    private final Configuration prepareAspects( final Configuration taskModel )
-        throws TaskException
-    {
-        final DefaultConfiguration newTaskModel = 
-            new DefaultConfiguration( taskModel.getName(), taskModel.getLocation() );
-        final HashMap parameterMap = new HashMap();
-        final HashMap elementMap = new HashMap();
-
-        processAttributes( taskModel, newTaskModel, parameterMap );
-        processElements( taskModel, newTaskModel, elementMap );
-
-        dispatchAspectsSettings( parameterMap, elementMap );
-        checkForUnusedSettings( parameterMap, elementMap );
-
-        return newTaskModel;
-    }
-
-    private final void dispatchAspectsSettings( final HashMap parameterMap, 
-                                                final HashMap elementMap )
-        throws TaskException
-    {
-        final String[] names = getAspectManager().getNames();
-        
-        for( int i = 0; i < names.length; i++ )
-        {
-            final ArrayList elementList = (ArrayList)elementMap.remove( names[ i ] );
-
-            Parameters parameters = (Parameters)parameterMap.remove( names[ i ] );
-            if( null == parameters ) parameters = EMPTY_PARAMETERS;
-
-            Configuration[] elements = null;
-            if( null == elementList ) elements = EMPTY_ELEMENTS;
-            else
-            {
-                elements = (Configuration[])elementList.toArray( EMPTY_ELEMENTS );
-            }
-            
-            dispatch( names[ i ], parameters, elements );
-        }
-    }
-
-    private final void checkForUnusedSettings( final HashMap parameterMap, 
-                                               final HashMap elementMap )
-        throws TaskException
-    {
-        if( 0 != parameterMap.size() )
-        {
-            final String[] namespaces = 
-                (String[])parameterMap.keySet().toArray( new String[ 0 ] );
-
-            for( int i = 0; i < namespaces.length; i++ )
-            {
-                final String namespace = namespaces[ i ];
-                final Parameters parameters = (Parameters)parameterMap.get( namespace );
-                final ArrayList elementList = (ArrayList)elementMap.remove( namespace );
-                
-                Configuration[] elements = null;
-                
-                if( null == elementList ) elements = EMPTY_ELEMENTS;
-                else
-                {
-                    elements = (Configuration[])elementList.toArray( EMPTY_ELEMENTS );
-                }
-                
-                unusedSetting( namespace, parameters, elements );
-            }
-        }
-
-        if( 0 != elementMap.size() )
-        {
-            final String[] namespaces = 
-                (String[])elementMap.keySet().toArray( new String[ 0 ] );
-            
-            for( int i = 0; i < namespaces.length; i++ )
-            {
-                final String namespace = namespaces[ i ];
-                final ArrayList elementList = (ArrayList)elementMap.remove( namespace );
-                final Configuration[] elements = 
-                    (Configuration[])elementList.toArray( EMPTY_ELEMENTS );
-                
-                unusedSetting( namespace, EMPTY_PARAMETERS, elements );
-            }
-        }
-    }
-
-    private void unusedSetting( final String namespace, 
-                                final Parameters parameters, 
-                                final Configuration[] elements )
-        throws TaskException
-    {
-        throw new TaskException( "Unused aspect settings for namespace " + namespace + 
-                                " (parameterCount=" + parameters.getNames().length + 
-                                 " elementCount=" + elements.length + ")" ); 
-    }
-
-    private void dispatch( final String namespace, 
-                           final Parameters parameters, 
-                           final Configuration[] elements )
-        throws TaskException
-    {
-        getAspectManager().dispatchAspectSettings( namespace, parameters, elements );
-
-        if( getLogger().isDebugEnabled() )
-        {
-            getLogger().debug( "Dispatching Aspect Settings to: " + namespace + 
-                               " parameterCount=" + parameters.getNames().length + 
-                               " elementCount=" + elements.length ); 
-        }
-    }
-
-    private final void processElements( final Configuration taskModel, 
-                                        final DefaultConfiguration newTaskModel,
-                                        final HashMap map )
-    {
-        final Configuration[] elements = taskModel.getChildren();
-        for( int i = 0; i < elements.length; i++ )
-        {
-            final String name = elements[ i ].getName();
-            final int index = name.indexOf( ':' );
-            
-            if( -1 == index ) 
-            {
-                newTaskModel.addChild( elements[ i ] );
-            }
-            else
-            {
-                final String namespace = name.substring( 0, index );
-                final String localName = name.substring( index + 1 );
-                final ArrayList elementSet = getElements( namespace, map );
-                elementSet.add( elements[ i ] );
-            }
-        }
-    }
-
-    private final void processAttributes( final Configuration taskModel, 
-                                          final DefaultConfiguration newTaskModel,
-                                          final HashMap map )
-    {
-        final String[] attributes = taskModel.getAttributeNames();
-        for( int i = 0; i < attributes.length; i++ )
-        {
-            final String name = attributes[ i ];
-            final String value = taskModel.getAttribute( name, null );
-
-            final int index = name.indexOf( ':' );
-            
-            if( -1 == index ) 
-            {
-                newTaskModel.setAttribute( name, value );
-            }
-            else
-            {
-                final String namespace = name.substring( 0, index );
-                final String localName = name.substring( index + 1 );
-                final Parameters parameters = getParameters( namespace, map );
-                parameters.setParameter( localName, value );
-            }
-        }
-    }
-
-    private final ArrayList getElements( final String namespace, final HashMap map )
-    {
-        ArrayList elements = (ArrayList)map.get( namespace );
-
-        if( null == elements )
-        {
-            elements = new ArrayList();
-            map.put( namespace, elements );
-        }
-
-        return elements;
-    }
-
-    private final Parameters getParameters( final String namespace, final HashMap map )
-    {
-        Parameters parameters = (Parameters)map.get( namespace );
-
-        if( null == parameters )
-        {
-            parameters = new Parameters();
-            map.put( namespace, parameters );
-        }
-
-        return parameters;
-    }
-
-    protected final AspectManager getAspectManager()
-    {
-        return m_aspectManager;
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/DefaultExecutionFrame.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/DefaultExecutionFrame.java
deleted file mode 100644
index 345939c..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/DefaultExecutionFrame.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.executor;
-
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.Composable;
-import org.apache.avalon.framework.component.DefaultComponentManager;
-import org.apache.avalon.framework.context.Context;
-import org.apache.avalon.framework.context.Contextualizable;
-import org.apache.avalon.framework.logger.Loggable;
-import org.apache.log.Logger;
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.components.aspect.AspectManager;
-import org.apache.myrmidon.components.builder.ProjectBuilder;
-import org.apache.myrmidon.components.configurer.Configurer;
-import org.apache.myrmidon.components.converter.ConverterRegistry;
-import org.apache.myrmidon.components.converter.MasterConverter;
-import org.apache.myrmidon.components.deployer.Deployer;
-import org.apache.myrmidon.components.executor.Executor;
-import org.apache.myrmidon.components.role.RoleManager;
-import org.apache.myrmidon.components.type.TypeManager;
-
-/**
- * Frames in which tasks are executed.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class DefaultExecutionFrame
-    implements ExecutionFrame, Loggable, Contextualizable, Composable
-{
-    private TypeManager              m_typeManager;
-
-    private Logger                   m_logger;
-    private TaskContext              m_context;
-    private ComponentManager         m_componentManager;
-
-    public void setLogger( final Logger logger )
-    {
-        m_logger = logger;
-    }
-
-    public void contextualize( final Context context )
-    {
-        m_context = (TaskContext)context;
-    }
-
-    /**
-     * Retrieve relevent services needed to deploy.
-     *
-     * @param componentManager the ComponentManager
-     * @exception ComponentException if an error occurs
-     */
-    public void compose( final ComponentManager componentManager )
-        throws ComponentException
-    {
-        m_componentManager = componentManager;
-
-        m_typeManager = (TypeManager)componentManager.lookup( TypeManager.ROLE );
-    }
-
-    public TypeManager getTypeManager()
-    {
-        return m_typeManager;
-    }
-
-    public Logger getLogger()
-    {
-        return m_logger;
-    }
-
-    public TaskContext getContext()
-    {
-        return m_context;
-    }
-
-    public ComponentManager getComponentManager()
-    {
-        return m_componentManager;
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/DefaultExecutor.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/DefaultExecutor.java
deleted file mode 100644
index 2e22a30..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/DefaultExecutor.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.executor;
-
-import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.activity.Initializable;
-import org.apache.avalon.framework.component.Component;
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.Composable;
-import org.apache.avalon.framework.component.DefaultComponentManager;
-import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.context.Context;
-import org.apache.avalon.framework.context.Contextualizable;
-import org.apache.avalon.framework.logger.AbstractLoggable;
-import org.apache.avalon.framework.logger.Loggable;
-import org.apache.log.Logger;
-import org.apache.myrmidon.api.Task;
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.components.configurer.Configurer;
-import org.apache.myrmidon.components.type.TypeException;
-import org.apache.myrmidon.components.type.TypeFactory;
-import org.apache.myrmidon.components.type.TypeManager;
-
-public class DefaultExecutor
-    extends AbstractLoggable
-    implements Executor, Composable
-{
-    private Configurer           m_configurer;
-
-    /**
-     * Retrieve relevent services needed to deploy.
-     *
-     * @param componentManager the ComponentManager
-     * @exception ComponentException if an error occurs
-     */
-    public void compose( final ComponentManager componentManager )
-        throws ComponentException
-    {
-        m_configurer = (Configurer)componentManager.lookup( Configurer.ROLE );
-    }
-
-    public void execute( final Configuration taskModel, final ExecutionFrame frame )
-        throws TaskException
-    {
-        getLogger().debug( "Creating" );
-        final Task task = createTask( taskModel.getName(), frame );
-        doLoggable( task, taskModel, frame.getLogger() );
-
-        getLogger().debug( "Contextualizing" );
-        doContextualize( task, taskModel, frame.getContext() );
-
-        getLogger().debug( "Composing" );
-        doCompose( task, taskModel, frame.getComponentManager() );
-
-        getLogger().debug( "Configuring" );
-        doConfigure( task, taskModel, frame.getContext() );
-
-        getLogger().debug( "Initializing" );
-        doInitialize( task, taskModel );
-
-        getLogger().debug( "Running" );
-
-        task.execute();
-
-        getLogger().debug( "Disposing" );
-        doDispose( task, taskModel );
-    }
-
-    protected final Task createTask( final String name, final ExecutionFrame frame )
-        throws TaskException
-    {
-        try
-        {
-            final TypeFactory factory = frame.getTypeManager().getFactory( Task.ROLE );
-            return (Task)factory.create( name );
-        }
-        catch( final TypeException te )
-        {
-            throw new TaskException( "Unable to create task " + name, te );
-        }
-    }
-
-    protected final void doConfigure( final Task task,
-                                      final Configuration taskModel,
-                                      final TaskContext context )
-        throws TaskException
-    {
-        try { m_configurer.configure( task, taskModel, context ); }
-        catch( final Throwable throwable )
-        {
-            throw new TaskException( "Error configuring task " +  taskModel.getName() + " at " +
-                                     taskModel.getLocation() + "(Reason: " +
-                                     throwable.getMessage() + ")", throwable );
-        }
-    }
-
-    protected final void doCompose( final Task task, 
-                                    final Configuration taskModel,
-                                    final ComponentManager componentManager )
-        throws TaskException
-    {
-        if( task instanceof Composable )
-        {
-            try { ((Composable)task).compose( componentManager ); }
-            catch( final Throwable throwable )
-            {
-                throw new TaskException( "Error composing task " +  taskModel.getName() + " at " +
-                                         taskModel.getLocation() + "(Reason: " +
-                                         throwable.getMessage() + ")", throwable );
-            }
-        }
-    }
-
-    protected final void doContextualize( final Task task,
-                                          final Configuration taskModel,
-                                          final TaskContext context )
-        throws TaskException
-    {
-        try
-        {
-            if( task instanceof Contextualizable )
-            {
-                ((Contextualizable)task).contextualize( context );
-            }
-        }
-        catch( final Throwable throwable )
-        {
-            throw new TaskException( "Error contextualizing task " +  taskModel.getName() + " at " +
-                                     taskModel.getLocation() + "(Reason: " +
-                                     throwable.getMessage() + ")", throwable );
-        }
-    }
-
-    protected final void doDispose( final Task task, final Configuration taskModel )
-        throws TaskException
-    {
-        if( task instanceof Disposable )
-        {
-            try { ((Disposable)task).dispose(); }
-            catch( final Throwable throwable )
-            {
-                throw new TaskException( "Error disposing task " +  taskModel.getName() + " at " +
-                                         taskModel.getLocation() + "(Reason: " +
-                                         throwable.getMessage() + ")", throwable );
-            }
-        }
-    }
-
-    protected final void doLoggable( final Task task, 
-                                     final Configuration taskModel, 
-                                     final Logger logger )
-        throws TaskException
-    {
-        if( task instanceof Loggable )
-        {
-            try { ((Loggable)task).setLogger( logger ); }
-            catch( final Throwable throwable )
-            {
-                throw new TaskException( "Error setting logger for task " +  taskModel.getName() + 
-                                         " at " + taskModel.getLocation() + "(Reason: " +
-                                         throwable.getMessage() + ")", throwable );
-            }
-        }
-    }
-
-    protected final void doInitialize( final Task task, final Configuration taskModel )
-        throws TaskException
-    {
-        if( task instanceof Initializable )
-        {
-            try { ((Initializable)task).initialize(); }
-            catch( final Throwable throwable )
-            {
-                throw new TaskException( "Error initializing task " +  taskModel.getName() + " at " +
-                                         taskModel.getLocation() + "(Reason: " +
-                                         throwable.getMessage() + ")", throwable );
-            }
-        }
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/ExecutionFrame.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/ExecutionFrame.java
deleted file mode 100644
index 22f354c..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/ExecutionFrame.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.executor;
-
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.log.Logger;
-import org.apache.myrmidon.components.type.TypeManager;
-import org.apache.myrmidon.api.TaskContext;
-
-/**
- * Frames in which tasks are executed.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public interface ExecutionFrame
-{
-    TypeManager getTypeManager();
-    Logger getLogger();
-    TaskContext getContext();
-    ComponentManager getComponentManager();
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/Executor.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/Executor.java
deleted file mode 100644
index e41dcf9..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/Executor.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.executor;
-
-import org.apache.avalon.framework.component.Component;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.api.TaskException;
- 
-/**
- * Engine inteface that should be implemented by all tasklet engines.
- * 
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public interface Executor
-    extends Component
-{
-    String ROLE = "org.apache.myrmidon.components.executor.Executor";
-
-    /**
-     * execute a task.
-     *
-     * @param task the configruation data for task
-     * @exception TaskException if an error occurs
-     */
-    void execute( Configuration task, ExecutionFrame frame )
-        throws TaskException;
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/PrintingExecutor.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/PrintingExecutor.java
deleted file mode 100644
index 6ba68aa..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/executor/PrintingExecutor.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.executor;
-
-import org.apache.myrmidon.api.Task;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.avalon.framework.configuration.Configuration;
-
-public class PrintingExecutor
-    extends AspectAwareExecutor
-{
-    protected void doExecute( final Configuration taskModel, final Task task )
-        throws TaskException
-    {
-        final StringBuffer sb = new StringBuffer();
-        printConfiguration( taskModel, 0, sb );
-        
-        System.out.println( sb.toString() );
-    }
-
-    private void printConfiguration( final Configuration taskModel, 
-                                     final int level, 
-                                     final StringBuffer sb )
-    {
-        for( int i = 0; i < level; i++ )
-        {
-            sb.append( ' ' );
-        }
-        
-        sb.append( '<' );
-        sb.append( taskModel.getName() );
-
-
-        final String[] names = taskModel.getAttributeNames();
-        for( int i = 0; i < names.length; i++ )
-        {
-            final String name = names[ i ];
-            final String value = taskModel.getAttribute( name, null );
-
-            sb.append( ' ' );
-            sb.append( name );
-            sb.append( "=\"" );
-            sb.append( value );
-            sb.append( '\"' );
-        }
-
-        final Configuration[] children = taskModel.getChildren();
-        if( 0 == children.length )
-        {
-            sb.append( "/>\n" );
-        }
-        else
-        {
-            sb.append( ">\n" );
-
-            for( int i = 0; i < children.length; i++ )
-            {
-                printConfiguration( children[ i ], level + 1, sb );
-            }
-
-            for( int i = 0; i < level; i++ )
-            {
-                sb.append( ' ' );
-            }
-
-            sb.append( "</" );
-            sb.append( taskModel.getName() );
-            sb.append( ">\n" );
-        }
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/model/DefaultProject.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/model/DefaultProject.java
deleted file mode 100644
index 83ec132..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/model/DefaultProject.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.model;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-
-/**
- * Default project implementation.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class DefaultProject
-    implements Project
-{
-    ///The imports
-    private final ArrayList m_imports         = new ArrayList();
-
-    ///The projects refferred to by this project
-    private final HashMap   m_projects        = new HashMap();
-
-    ///The targets contained by this project
-    private final HashMap   m_targets         = new HashMap();
-
-    ///The implicit target (not present in m_targets)
-    private Target          m_implicitTarget;
-
-    ///The name of the default target
-    private String          m_defaultTarget;
-
-    ///The base directory of project
-    private File            m_baseDirectory;
-
-    /**
-     * Get the imports for project.
-     *
-     * @return the imports
-     */
-    public TypeLib[] getTypeLibs()
-    {
-        return (TypeLib[])m_imports.toArray( new TypeLib[ 0 ] );
-    }
-
-    /**
-     * Get names of projects referred to by this project.
-     *
-     * @return the names
-     */
-    public String[] getProjectNames()
-    {
-        return (String[])m_projects.keySet().toArray( new String[ 0 ] );
-    }
-
-    /**
-     * Retrieve project reffered to by this project.
-     *
-     * @param name the project name
-     * @return the Project or null if none by that name
-     */
-    public Project getProject( final String name )
-    {
-        return (Project)m_projects.get( name );
-    }
-
-    /**
-     * Retrieve base directory of project.
-     *
-     * @return the projects base directory
-     */
-    public final File getBaseDirectory()
-    {
-        return m_baseDirectory;
-    }
-
-    /**
-     * Retrieve implicit target.
-     * The implicit target contains all the top level tasks.
-     *
-     * @return the Target
-     */
-    public final Target getImplicitTarget()
-    {
-        return m_implicitTarget;
-    }
-
-    /**
-     * Set ImplicitTarget.
-     *
-     * @param target the implicit target
-     */
-    public final void setImplicitTarget( final Target target )
-    {
-        m_implicitTarget = target;
-    }
-
-    /**
-     * Retrieve a target by name.
-     *
-     * @param name the name of target
-     * @return the Target or null if no target exists with name
-     */
-    public final Target getTarget( final String targetName )
-    {
-        return (Target)m_targets.get( targetName );
-    }
-
-    /**
-     * Get name of default target.
-     *
-     * @return the default target name
-     */
-    public final String getDefaultTargetName()
-    {
-        return m_defaultTarget;
-    }
-
-    /**
-     * Retrieve names of all targets in project.
-     *
-     * @return an array target names
-     */
-    public final String[] getTargetNames()
-    {
-        return (String[])m_targets.keySet().toArray( new String[ 0 ] );
-    }
-
-    /**
-     * Set DefaultTargetName.
-     *
-     * @param defaultTarget the default target name
-     */
-    public final void setDefaultTargetName( final String defaultTarget )
-    {
-        m_defaultTarget = defaultTarget;
-    }
-
-    /**
-     * Retrieve base directory of project.
-     *
-     * @return the projects base directory
-     */
-    public final void setBaseDirectory( final File baseDirectory )
-    {
-        m_baseDirectory = baseDirectory;
-    }
-
-    public final void addTypeLib( final TypeLib typeLib )
-    {
-        m_imports.add( typeLib );
-    }
-
-    /**
-     * Add a target.
-     *
-     * @param name the name of target
-     * @param target the Target
-     * @exception IllegalArgumentException if target already exists with same name
-     */
-    public final void addTarget( final String name, final Target target )
-    {
-        if( null != m_targets.get( name ) )
-        {
-            throw new IllegalArgumentException( "Can not have two targets in a " +
-                                                "file with the name " + name );
-        }
-        else
-        {
-            m_targets.put( name, target );
-        }
-    }
-
-    /**
-     * Add a project reference.
-     *
-     * @param name the name of target
-     * @param project the Project
-     * @exception IllegalArgumentException if project already exists with same name
-     */
-    public final void addProject( final String name, final Project project )
-    {
-        if( null != m_projects.get( name ) )
-        {
-            throw new IllegalArgumentException( "Can not have two projects referenced in a " +
-                                                "file with the name " + name );
-        }
-        else
-        {
-            m_projects.put( name, project );
-        }
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/model/Project.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/model/Project.java
deleted file mode 100644
index 18ca3e7..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/model/Project.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.model;
-
-import java.io.File;
-import org.apache.avalon.framework.component.Component;
-
-/**
- * Abstraction used to interact with projects.
- * Implementations may choose to structure it anyway they choose.
- *
- * TODO: Determine if projects should carry their own name. Breaks IOC but
- * Can be useful as project files embed own name (or should that be description).
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public interface Project
-    extends Component
-{
-    String ROLE = "org.apache.myrmidon.components.model.Project";
-
-    // the name of currently executing project
-    String PROJECT          = "myrmidon.project.name";
-
-    // the name of currently executing project
-    //String PROJECT_FILE     = "myrmidon.project.file";
-
-    // the name of currently executing target
-    //String TARGET           = "myrmidon.target.name";
-
-    /**
-     * Get the imports for project.
-     *
-     * @return the imports
-     */
-    TypeLib[] getTypeLibs();
-
-    /**
-     * Get names of projects referred to by this project.
-     *
-     * @return the names
-     */
-    String[] getProjectNames();
-
-    /**
-     * Retrieve project reffered to by this project.
-     *
-     * @param name the project name
-     * @return the Project or null if none by that name
-     */
-    Project getProject( String name );
-
-    /**
-     * Get name of default target.
-     *
-     * @return the default target name
-     */
-    String getDefaultTargetName();
-
-    /**
-     * Retrieve implicit target.
-     * The implicit target is top level tasks.
-     * Currently restricted to property tasks.
-     *
-     * @return the Target
-     */
-    Target getImplicitTarget();
-
-    /**
-     * Retrieve a target by name.
-     *
-     * @param name the name of target
-     * @return the Target or null if no target exists with name
-     */
-    Target getTarget( String name );
-
-    /**
-     * Retrieve names of all targets in project.
-     *
-     * @return the iterator of project names
-     */
-    String[] getTargetNames();
-
-    /**
-     * Retrieve base directory of project.
-     *
-     * @return the projects base directory
-     */
-    File getBaseDirectory();
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/model/Target.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/model/Target.java
deleted file mode 100644
index 3e88fd2..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/model/Target.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.model;
-
-import java.util.ArrayList;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.myrmidon.framework.Condition;
-
-/**
- * Targets in build file.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class Target
-{
-    private final ArrayList   m_dependencies     = new ArrayList();
-    private final ArrayList   m_tasks            = new ArrayList();
-    private final Condition   m_condition;
-
-    /**
-     * Constructor taking condition for target.
-     *
-     * @param condition the condition
-     */
-    public Target( final Condition condition, 
-                   final Configuration[] tasks, 
-                   final String[] dependencies )
-    {
-        m_condition = condition;
-
-        for( int i = 0; i < tasks.length; i++ )
-        {
-            m_tasks.add( tasks[ i ] );
-        }
-
-        if( null != dependencies )
-        {
-            for( int i = 0; i < dependencies.length; i++ )
-            {
-                m_dependencies.add( dependencies[ i ] );
-            }
-        }
-    }
-
-    /**
-     * Get condition under which target is executed.
-     *
-     * @return the condition for target or null
-     */
-    public final Condition getCondition()
-    {
-        return m_condition;
-    }
-    /**
-     * Get dependencies of target
-     *
-     * @return the dependency list
-     */
-    public final String[] getDependencies()
-    {
-        return (String[])m_dependencies.toArray( new String[ 0 ] );
-    }
-
-    /**
-     * Get tasks in target
-     *
-     * @return the target list
-     */
-    public final Configuration[] getTasks()
-    {
-        return (Configuration[])m_tasks.toArray( new Configuration[ 0 ] );
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/model/TypeLib.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/model/TypeLib.java
deleted file mode 100644
index 60410a3..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/model/TypeLib.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.model;
-
-/**
- * Imports in a build file.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class TypeLib
-{
-    //Name of library (this is location independent)
-    private final String    m_library;
-
-    //Do we need this??
-    //private final String    m_namespace;
-
-    //The role of object to be imported
-    private final String    m_role;
-
-    //The name of type instance
-    private final String    m_name;
-
-    public TypeLib( final String library )
-    {
-        this( library, null, null );
-    }
-
-    public TypeLib( final String library, final String role, final String name )
-    {
-        m_library = library;
-        m_role = role;
-        m_name = name;
-       
-        //If only one of name or type is null, throw an exception
-        if( null == m_role || null == m_name )
-        {
-            if( null != m_role || null != m_name )
-            {
-                throw new IllegalArgumentException( "Can not have an import that specifies " +
-                                                    "only one of; name or role" );
-            }
-        }
-    }
-
-    /**
-     * Get role
-     *
-     * @return the role
-     */
-    public final String getRole()
-    {
-        return m_role;
-    }
-
-    /**
-     * Get name of imported 
-     *
-     * @return the name
-     */
-    public final String getName()
-    {
-        return m_name;
-    }
-
-    /**
-     * Get name of library 
-     *
-     * @return the library name
-     */
-    public final String getLibrary()
-    {
-        return m_library;
-    }
-}
-
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/role/DefaultRoleManager.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/role/DefaultRoleManager.java
deleted file mode 100644
index ff0c391..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/role/DefaultRoleManager.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included  with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.role;
-
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.HashMap;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import org.apache.avalon.framework.activity.Initializable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.configuration.SAXConfigurationHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-
-/**
- * Interface to manage roles and mapping to names.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- * @version CVS $Revision$ $Date$
- */
-public class DefaultRoleManager
-    implements RoleManager, Initializable
-{
-    private final static String ROLE_DESCRIPTOR = "META-INF/ant-roles.xml";
-
-    /** Parent <code>RoleManager</code> for nested resolution */
-    private final RoleManager  m_parent;
-
-    /** Map for name to role mapping */
-    private final HashMap      m_names = new HashMap();
-
-    /** Map for role to name mapping */
-    private final HashMap      m_roles = new HashMap();
-
-    /**
-     *  constructor--this RoleManager has no parent.
-     */
-    public DefaultRoleManager()
-    {
-        this( null );
-    }
-
-    /**
-     * Alternate constructor--this RoleManager has the specified
-     * parent.
-     *
-     * @param parent The parent <code>RoleManager</code>.
-     */
-    public DefaultRoleManager( final RoleManager parent )
-    {
-        m_parent = parent;
-    }
-
-    /**
-     * initialize the RoleManager.
-     * This involves reading all Role descriptors in common classloader.
-     *
-     * @exception Exception if an error occurs
-     */
-    public void initialize()
-        throws Exception
-    {
-        final SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
-        final SAXParser saxParser = saxParserFactory.newSAXParser();
-        final XMLReader parser = saxParser.getXMLReader();
-        //parser.setFeature( "http://xml.org/sax/features/namespace-prefixes", false );
-
-        final SAXConfigurationHandler handler = new SAXConfigurationHandler();
-        parser.setContentHandler( handler );
-        parser.setErrorHandler( handler );
-
-        final Enumeration enum = getClass().getClassLoader().getResources( ROLE_DESCRIPTOR );
-        while( enum.hasMoreElements() )
-        {
-            final URL url = (URL)enum.nextElement();
-            parser.parse( url.toString() );
-            handleDescriptor( handler.getConfiguration() );
-        }
-    }
-
-    /**
-     * Configure RoleManager based on contents of single descriptor.
-     *
-     * @param descriptor the descriptor
-     * @exception ConfigurationException if an error occurs
-     */
-    private void handleDescriptor( final Configuration descriptor )
-        throws ConfigurationException
-    {
-        final Configuration[] types = descriptor.getChildren( "role" );
-        for( int i = 0; i < types.length; i++ )
-        {
-            final String name = types[ i ].getAttribute( "shorthand" );
-            final String role = types[ i ].getAttribute( "name" );
-            addNameRoleMapping( name, role );
-        }
-    }
-
-    /**
-     * Find Role name based on shorthand name.
-     *
-     * @param name the shorthand name
-     * @return the role
-     */
-    public String getRoleForName( final String name )
-    {
-        final String role = (String)m_names.get( name );
-
-        if( null == role && null != m_parent )
-        {
-            return m_parent.getRoleForName( name );
-        }
-
-        return role;
-    }
-
-    /**
-     * Find name based on role.
-     *
-     * @param role the role
-     * @return the name
-     */
-    public String getNameForRole( final String role )
-    {
-        final String name = (String)m_roles.get( role );
-
-        if( null == name && null != m_parent )
-        {
-            return m_parent.getNameForRole( name );
-        }
-
-        return name;
-    }
-
-    /**
-     * Add a mapping between name and role
-     *
-     * @param name the shorthand name
-     * @param role the role
-     * @exception IllegalArgumentException if an name is already mapped to a different role
-     */
-    public void addNameRoleMapping( final String name, final String role )
-        throws IllegalArgumentException
-    {
-        final String oldRole = (String)m_names.get( name );
-        if( null != oldRole && oldRole.equals( role ) )
-        {
-            throw new IllegalArgumentException( "Name already mapped to another role (" +
-                                                oldRole + ")" );
-        }
-
-        final String oldName = (String)m_roles.get( role );
-        if( null != oldName && oldName.equals( name ) )
-        {
-            throw new IllegalArgumentException( "Role already mapped to another name (" +
-                                                oldName + ")" );
-        }
-
-        m_names.put( name, role );
-        m_roles.put( role, name );
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/role/RoleManager.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/role/RoleManager.java
deleted file mode 100644
index afc1a5d..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/role/RoleManager.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included  with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.role;
-
-import org.apache.avalon.framework.component.Component;
-
-/**
- * Interface to manage roles and mapping to shorthand names.
- *
- * @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
- * @author <a href="mailto:ricardo@apache,org">Ricardo Rocha</a>
- * @author <a href="mailto:giacomo@apache,org">Giacomo Pati</a>
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- * @version CVS $Revision$ $Date$
- */
-public interface RoleManager
-    extends Component
-{
-    String ROLE = "org.apache.myrmidon.components.deployer.RoleManager";
-
-    /**
-     * Find Role name based on shorthand name.
-     *
-     * @param shorthandName the shorthand name
-     * @return the role
-     */
-    String getRoleForName( String name );
-
-    /**
-     * Find name based on role.
-     *
-     * @param role the role
-     * @return the name
-     */
-    String getNameForRole( String role );
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/DefaultTypeFactory.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/DefaultTypeFactory.java
deleted file mode 100644
index 5293c8a..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/DefaultTypeFactory.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.type;
-
-import java.net.URL;
-import java.util.HashMap;
-import java.net.URLClassLoader;
-
-/**
- * Create a type instance based on name.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- * @version CVS $Revision$ $Date$
- */
-public class DefaultTypeFactory
-    implements TypeFactory
-{
-    ///A Map of shortnames to classnames
-    private final HashMap        m_classNames = new HashMap();
-
-    ///A list of URLs from which classLoader is constructed
-    private final URL[]          m_urls;
-
-    ///The parent classLoader (if any)
-    private final ClassLoader    m_parent;
-
-    ///The parent classLoader (if any)
-    private ClassLoader          m_classLoader;
-
-    public DefaultTypeFactory( final URL url )
-    {
-        this( new URL[] { url } );
-    }
-
-    public DefaultTypeFactory( final URL[] urls )
-    {
-        this( urls, Thread.currentThread().getContextClassLoader() );
-    }
-
-    public DefaultTypeFactory( final URL[] urls, final ClassLoader parent )
-    {
-        m_urls = urls;
-        m_parent = parent;
-    }
-
-    public DefaultTypeFactory( final ClassLoader classLoader )
-    {
-        this( null, null );
-        m_classLoader = classLoader;
-    }
-
-    public void addNameClassMapping( final String name, final String className )
-    {
-        m_classNames.put( name, className );
-    }
-
-    /**
-     * Create a type instance with appropriate name.
-     *
-     * @param name the name
-     * @return the created instance
-     * @exception TypeException if an error occurs
-     */
-    public Object create( final String name )
-        throws TypeException
-    {
-        final String className = getClassName( name );
-
-        try
-        {
-            return getClassLoader().loadClass( className ).newInstance();
-        }
-        catch( final Exception e )
-        {
-            throw new TypeException( "Unable to instantiate '" + name + "'", e );
-        }
-    }
-
-    private String getClassName( final String name )
-        throws TypeException
-    {
-        final String className = (String)m_classNames.get( name );
-
-        if( null == className )
-        {
-            throw new TypeException( "Malconfigured factory, no clasname for '" + 
-                                     name + "'" );
-        }
-        
-        return className;
-    }
-
-    private ClassLoader getClassLoader()
-    {
-        if( null == m_classLoader )
-        {
-            m_classLoader = new URLClassLoader( m_urls, m_parent );
-        }
-        
-        return m_classLoader;
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/DefaultTypeManager.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/DefaultTypeManager.java
deleted file mode 100644
index 37a30f9..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/DefaultTypeManager.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.type;
-
-import java.util.HashMap;
-
-/**
- * The interface that is used to manage types.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class DefaultTypeManager
-    implements TypeManager
-{
-    ///Parent type manager to inherit values from.
-    private final DefaultTypeManager  m_parent;
-
-    ///Maps role to MultiSourceTypeFactory.
-    private final HashMap             m_roleMap      = new HashMap();
-
-    public DefaultTypeManager()
-    {
-        this( null );
-    }
-
-    public DefaultTypeManager( final DefaultTypeManager parent )
-    {
-        m_parent = parent;
-    }
-
-    public void registerType( final String role, 
-                              final String shorthandName, 
-                              final TypeFactory factory ) 
-        throws TypeException
-    {
-        final MultiSourceTypeFactory msFactory = createFactory( role );
-        msFactory.register( shorthandName, factory );
-    }
-
-    public TypeFactory getFactory( final String role )
-        throws TypeException
-    {
-        return createFactory( role );
-    }
-
-    public TypeManager createChildTypeManager()
-    {
-        return new DefaultTypeManager( this );
-    }
-
-    protected final MultiSourceTypeFactory lookupFactory( final String role )
-    {
-        return (MultiSourceTypeFactory)m_roleMap.get( role );
-    }
-
-    /**
-     * Get a factory of appropriate role.
-     * Create a Factory if none exists with same name.
-     *
-     * @param role the role name(must be name of work interface)
-     * @return the Factory for interface
-     * @exception TypeException role does not specify accessible work interface 
-     */
-    private MultiSourceTypeFactory createFactory( final String role )
-        throws TypeException
-    {
-        MultiSourceTypeFactory factory = (MultiSourceTypeFactory)m_roleMap.get( role );
-        if( null != factory ) 
-        {
-            return factory;
-        }
-
-        final MultiSourceTypeFactory parentFactory = getParentTypedFactory( role );       
-        if( null != parentFactory )
-        {
-            factory = new MultiSourceTypeFactory( parentFactory );
-        }
-
-        ///If we haven't got factory try to create a new one
-        if( null == factory )
-        {
-            try
-            {
-                //TODO: Should we use ContextClassLoader here ??? Or perhaps try that on failure??
-                final Class clazz = Class.forName( role );
-                factory = new MultiSourceTypeFactory( clazz );
-            }
-            catch( final Exception e )
-            {
-                throw new TypeException( "Role '" + role + "' does not specify " +
-                                         "accessible work interface" );
-            }
-        }        
-
-        m_roleMap.put( role, factory );
-
-        return factory;
-    }
-
-    private MultiSourceTypeFactory getParentTypedFactory( final String role )
-    {
-        if( null != m_parent )
-        {
-            return m_parent.lookupFactory( role );
-        }
-        else
-        {       
-            return null;
-        }
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/MultiSourceTypeFactory.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/MultiSourceTypeFactory.java
deleted file mode 100644
index 887c127..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/MultiSourceTypeFactory.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.type;
-
-import java.util.HashMap;
-
-/**
- * This factory acts as a proxy to set of object factorys.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class MultiSourceTypeFactory
-    implements TypeFactory               
-{
-    ///Parent Selector
-    private final MultiSourceTypeFactory  m_parent;
-
-    ///Map of name->factory list
-    private final HashMap                 m_factorys = new HashMap();
-
-    ///Type expected to be created from factorys
-    private final Class                   m_type;
-
-    public MultiSourceTypeFactory( final Class type )
-    {
-        m_type = type;
-        m_parent = null;
-    }
-
-    public MultiSourceTypeFactory( final MultiSourceTypeFactory parent )
-    {
-        m_type = parent.getType();
-        m_parent = parent;
-    }
-
-    /**
-     * Populate the ComponentSelector.
-     */
-    public void register( final String name, final TypeFactory factory )
-    {
-        m_factorys.put( name, factory );
-    }
-
-    /**
-     * Create a type instance based on name.
-     *
-     * @param name the name
-     * @return the type instance
-     * @exception TypeException if an error occurs
-     */
-    public Object create( final String name )
-        throws TypeException
-    {
-        TypeFactory factory = getTypeFactory( name );
-
-        if( null == factory && null != m_parent ) 
-        {
-            factory = m_parent.getTypeFactory( name );
-        }
-
-        if( null == factory ) 
-        {
-            throw new TypeException( "Failed to locate factory for '" + name + "'" );
-        }
-        else
-        {
-            final Object object = factory.create( name );
-
-            if( !m_type.isInstance( object ) )
-            {
-                throw new TypeException( "Object '" + name + "' is not of " +
-                                         "correct Type (" + m_type.getName() + ")" );
-            }
-
-            return object;
-        }
-    }
-
-    /**
-     * Retrieve type managed by selector.
-     * Used by other instances of TypedComponentSelector.
-     *
-     * @return the type class
-     */
-    protected final Class getType()
-    {
-        return m_type;
-    }
-
-    protected final TypeFactory getTypeFactory( final String name )
-    {
-        return (TypeFactory)m_factorys.get( name );
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/TypeException.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/TypeException.java
deleted file mode 100644
index a510be9..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/TypeException.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.type;
-
-import org.apache.avalon.framework.CascadingException;
-
-/**
- * Exception to indicate problem with type instantiating.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public final class TypeException
-    extends CascadingException
-{
-    /**
-     * Construct a new <code>TypeException</code> instance.
-     *
-     * @param message The detail message for this exception.
-     */
-    public TypeException( final String message )
-    {
-        this( message, null );
-    }
-
-    /**
-     * Construct a new <code>TypeException</code> instance.
-     *
-     * @param message The detail message for this exception.
-     * @param throwable the root cause of the exception
-     */
-    public TypeException( final String message, final Throwable throwable )
-    {
-        super( message, throwable );
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/TypeFactory.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/TypeFactory.java
deleted file mode 100644
index 7b88ab1..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/TypeFactory.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.type;
-
-/**
- * Create an instance on name.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- * @version CVS $Revision$ $Date$
- */
-public interface TypeFactory
-{
-    /**
-     * Create a type instance based on name.
-     *
-     * @param name the name
-     * @return the type instance
-     * @exception TypeException if an error occurs
-     */
-    Object create( String name )
-        throws TypeException;
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/TypeManager.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/TypeManager.java
deleted file mode 100644
index 7cba6eb..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/type/TypeManager.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.type;
-
-import org.apache.avalon.framework.component.Component;
-
-/**
- * The interface that is used to manage types.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public interface TypeManager
-    extends Component
-{
-    String ROLE = "org.apache.myrmidon.components.type.TypeManager";
-
-    void registerType( String role, String shorthandName, TypeFactory factory )
-        throws TypeException;
-
-    TypeFactory getFactory( String role )
-        throws TypeException;
-
-    TypeManager createChildTypeManager();
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/DefaultWorkspace.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/DefaultWorkspace.java
deleted file mode 100644
index 0445901..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/DefaultWorkspace.java
+++ /dev/null
@@ -1,456 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.workspace;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.activity.Initializable;
-import org.apache.avalon.framework.context.ContextException;
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.Composable;
-import org.apache.avalon.framework.component.DefaultComponentManager;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.logger.AbstractLoggable;
-import org.apache.avalon.framework.parameters.ParameterException;
-import org.apache.avalon.framework.parameters.Parameterizable;
-import org.apache.avalon.framework.parameters.Parameters;
-import org.apache.log.Hierarchy;
-import org.apache.log.Logger;
-import org.apache.log.LogTarget;
-import org.apache.myrmidon.api.DefaultTaskContext;
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.components.deployer.DefaultDeployer;
-import org.apache.myrmidon.components.deployer.Deployer;
-import org.apache.myrmidon.components.deployer.DeploymentException;
-import org.apache.myrmidon.components.executor.DefaultExecutionFrame;
-import org.apache.myrmidon.components.executor.ExecutionFrame;
-import org.apache.myrmidon.components.executor.Executor;
-import org.apache.myrmidon.components.model.Project;
-import org.apache.myrmidon.components.model.Target;
-import org.apache.myrmidon.components.model.TypeLib;
-import org.apache.myrmidon.components.type.TypeManager;
-import org.apache.myrmidon.framework.Condition;
-import org.apache.myrmidon.listeners.ProjectListener;
-
-/**
- * This is the default implementation of Workspace.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class DefaultWorkspace
-    extends AbstractLoggable
-    implements Workspace, Composable, Parameterizable, Initializable
-{
-    private Executor                 m_executor;
-    private ProjectListenerSupport   m_listenerSupport   = new ProjectListenerSupport();
-    private ComponentManager         m_componentManager;
-    private Parameters               m_parameters;
-    private TaskContext              m_baseContext;
-    private HashMap                  m_entrys            = new HashMap();
-    private TypeManager              m_typeManager;
-    private Hierarchy                m_hierarchy;
-    private int                      m_projectID;
-
-    /**
-     * Add a listener to project events.
-     *
-     * @param listener the listener
-     */
-    public void addProjectListener( final ProjectListener listener )
-    {
-        m_listenerSupport.addProjectListener( listener );
-    }
-
-    /**
-     * Remove a listener from project events.
-     *
-     * @param listener the listener
-     */
-    public void removeProjectListener( final ProjectListener listener )
-    {
-        m_listenerSupport.removeProjectListener( listener );
-    }
-
-    /**
-     * Retrieve relevent services needed for engine.
-     *
-     * @param componentManager the ComponentManager
-     * @exception ComponentException if an error occurs
-     */
-    public void compose( final ComponentManager componentManager )
-        throws ComponentException
-    {
-        m_componentManager = componentManager;
-        m_typeManager = (TypeManager)componentManager.lookup( TypeManager.ROLE );
-        m_executor = (Executor)componentManager.lookup( Executor.ROLE );
-    }
-
-    public void parameterize( final Parameters parameters )
-        throws ParameterException
-    {
-        m_parameters = parameters;
-    }
-
-    public void initialize()
-        throws Exception
-    {
-        m_baseContext = createBaseContext();
-
-        m_hierarchy = new Hierarchy();
-
-        final LogTarget target = new LogTargetToListenerAdapter( m_listenerSupport );
-        m_hierarchy.setDefaultLogTarget( target );
-    }
-
-    /**
-     * Execute a target in a particular project.
-     * Execute in the project context.
-     *
-     * @param project the Project
-     * @param target the name of the target
-     * @exception TaskException if an error occurs
-     */
-    public void executeProject( final Project project, final String target )
-        throws TaskException
-    {
-        final ProjectEntry entry = getProjectEntry( project );
-
-        m_listenerSupport.projectStarted();
-
-        executeTarget( "<init>", project.getImplicitTarget(), entry.getFrame() );
-
-        execute( project, target, entry );
-
-        m_listenerSupport.projectFinished();
-    }
-
-
-    private TaskContext createBaseContext()
-        throws TaskException
-    {
-        final TaskContext context = new DefaultTaskContext();
-
-        final String[] names = m_parameters.getNames();
-        for( int i = 0; i < names.length; i++ )
-        {
-            final String value = m_parameters.getParameter( names[ i ], null );
-            context.setProperty( names[ i ], value );
-        }
-
-        //Add system properties so that they overide user-defined properties
-        addToContext( context, System.getProperties() );
-
-        return context;
-    }
-
-    private File findTypeLib( final String libraryName )
-        throws TaskException
-    {
-        //TODO: In future this will be expanded to allow
-        //users to specify search path or automagically 
-        //add entries to lib path (like user specific or 
-        //workspace specific)
-        final String name = libraryName.replace( '/', File.separatorChar ) + ".atl";
-
-        final String home = System.getProperty( "myrmidon.home" );
-        final File homeDir = new File( home + File.separatorChar + "ext" );
-        
-        final File library = new File( homeDir, name );
-
-        if( library.exists() )
-        {
-            if( !library.canRead() )
-            {
-                throw new TaskException( "Unable to read library at " + library );
-            }
-            else
-            {
-                return library;
-            }
-        }
-
-        throw new TaskException( "Unable to locate Type Library " + libraryName );
-    }
-
-    private void deployTypeLib( final Deployer deployer, final Project project )
-        throws TaskException
-    {
-        final TypeLib[] typeLibs = project.getTypeLibs();
-
-        for( int i = 0; i < typeLibs.length; i++ )
-        {
-            final TypeLib typeLib = typeLibs[ i ];
-            final File file = findTypeLib( typeLib.getLibrary() );
-
-            try
-            {
-                if( null == typeLib.getRole() )
-                {
-                    deployer.deploy( file );
-                }
-                else
-                {
-                    deployer.deployType( typeLib.getRole(), typeLib.getName(), file );
-                }
-            }
-            catch( final DeploymentException de )
-            {
-                throw new TaskException( "Error deploying type library " +
-                                         typeLib + " at " + file, de );
-            }
-        }
-    }
-
-    private ExecutionFrame createExecutionFrame( final Project project )
-        throws TaskException
-    {
-        final TaskContext context = new DefaultTaskContext( m_baseContext );
-        context.setProperty( TaskContext.BASE_DIRECTORY, project.getBaseDirectory() );
-
-        //Create per frame ComponentManager
-        final DefaultComponentManager componentManager =
-            new DefaultComponentManager( m_componentManager );
-
-        //Add in child type manager so each frame can register different
-        //sets of tasks etc
-        final TypeManager typeManager = m_typeManager.createChildTypeManager();
-        componentManager.put( TypeManager.ROLE, typeManager );
-
-        //We need to create a new deployer so that it deploys
-        //to project specific TypeManager
-        final DefaultDeployer deployer = new DefaultDeployer();
-        deployer.setLogger( getLogger() );
-
-        try { deployer.compose( componentManager ); }
-        catch( final ComponentException ce )
-        {
-            throw new TaskException( "Error configuring deployer", ce );
-        }
-
-        //HACK: Didn't call initialize because Deployer contained in Embeddor
-        // Already initialized and this would be reduendent
-        //deployer.initialize();
-
-        componentManager.put( Deployer.ROLE, deployer );
-
-        deployTypeLib( deployer, project );
-
-        //We need to place projects and ProjectManager
-        //in ComponentManager so as to support project-local call()
-        componentManager.put( Workspace.ROLE, this );
-        componentManager.put( Project.ROLE, project );
-
-        final String[] names = project.getProjectNames();
-        for( int i = 0; i < names.length; i++ )
-        {
-            final String name = names[ i ];
-            final Project other = project.getProject( name );
-            componentManager.put( Project.ROLE + "/" + name, other );
-        }
-
-        final DefaultExecutionFrame frame = new DefaultExecutionFrame();
-
-        try
-        {
-            final Logger logger = m_hierarchy.getLoggerFor( "project" + m_projectID );
-            m_projectID++;
-
-            frame.setLogger( logger );
-            frame.contextualize( context );
-            frame.compose( componentManager );
-        }
-        catch( final Exception e )
-        {
-            throw new TaskException( "Error setting up ExecutionFrame", e );
-        }
-
-        return frame;
-    }
-
-    private ProjectEntry getProjectEntry( final Project project )
-        throws TaskException
-    {
-        ProjectEntry entry = (ProjectEntry)m_entrys.get( project );
-
-        if( null == entry )
-        {
-            final ExecutionFrame frame = createExecutionFrame( project );
-            entry = new ProjectEntry( project, frame );
-            m_entrys.put( project, entry );
-        }
-
-        return entry;
-    }
-
-    private Project getProject( final String name, final Project project )
-        throws TaskException
-    {
-        final Project other = project.getProject( name );
-
-        if( null == other )
-        {
-            //TODO: Fix this so location information included in description
-            throw new TaskException( "Project '" + name + "' not found." );
-        }
-
-        return other;
-    }
-
-    /**
-     * Helper method to execute a target.
-     *
-     * @param project the Project
-     * @param target the name of the target
-     * @param context the context
-     * @param done the list of targets already executed in current run
-     * @exception TaskException if an error occurs
-     */
-    private void execute( final Project project,
-                          final String targetName,
-                          final ProjectEntry entry )
-        throws TaskException
-    {
-        final int index = targetName.indexOf( "->" );
-        if( -1 != index )
-        {
-            final String name = targetName.substring( 0, index );
-            final String otherTargetName = targetName.substring( index + 2 );
-
-            final Project otherProject = getProject( name, project );
-            final ProjectEntry otherEntry = getProjectEntry( otherProject );
-
-            //Execute target in referenced project
-            execute( otherProject, otherTargetName, otherEntry );
-            return;
-        }
-
-        final Target target = project.getTarget( targetName );
-        if( null == target )
-        {
-            throw new TaskException( "Unable to find target " + targetName );
-        }
-
-        //add target to list of targets executed
-        entry.completeTarget( targetName );
-
-        //execute all dependencies
-        final String[] dependencies = target.getDependencies();
-        for( int i = 0; i < dependencies.length; i++ )
-        {
-            if( !entry.isTargetCompleted( dependencies[ i ] ) )
-            {
-                execute( project, dependencies[ i ], entry );
-            }
-        }
-
-        //notify listeners
-        m_listenerSupport.targetStarted( targetName );
-
-        executeTarget( targetName, target, entry.getFrame() );
-
-        //notify listeners
-        m_listenerSupport.targetFinished();
-    }
-
-    /**
-     * Method to execute a particular target instance.
-     *
-     * @param targetName the name of target
-     * @param target the target
-     * @param context the context in which to execute
-     * @exception TaskException if an error occurs
-     */
-    private void executeTarget( final String name,
-                                final Target target,
-                                final ExecutionFrame frame )
-        throws TaskException
-    {
-        //check the condition associated with target.
-        //if it is not satisfied then skip target
-        final Condition condition = target.getCondition();
-        if( null != condition )
-        {
-            try
-            {
-                if( false == condition.evaluate( frame.getContext() ) )
-                {
-                    getLogger().debug( "Skipping target " + name +
-                                       " as it does not satisfy condition" );
-                    return;
-                }
-            }
-            catch( final ContextException ce )
-            {
-                throw new TaskException( "Error evaluating Condition for target " + 
-                                         name, ce );
-            }
-        }
-
-        getLogger().debug( "Executing target " + name );
-
-        //frame.getContext().setProperty( Project.TARGET, target );
-
-        //execute all tasks assciated with target
-        final Configuration[] tasks = target.getTasks();
-        for( int i = 0; i < tasks.length; i++ )
-        {
-            executeTask( tasks[ i ], frame );
-        }
-    }
-
-    /**
-     * Execute a task.
-     *
-     * @param task the task definition
-     * @param context the context
-     * @exception TaskException if an error occurs
-     */
-    private void executeTask( final Configuration task, final ExecutionFrame frame )
-        throws TaskException
-    {
-        final String name = task.getName();
-        getLogger().debug( "Executing task " + name );
-
-        //is setting name even necessary ???
-        frame.getContext().setProperty( TaskContext.NAME, name );
-
-        //notify listeners
-        m_listenerSupport.taskStarted( name );
-
-        //run task
-        m_executor.execute( task, frame );
-
-        //notify listeners task has ended
-        m_listenerSupport.taskFinished();
-    }
-
-    /**
-     * Helper method to add values to a context
-     *
-     * @param context the context
-     * @param map the map of names->values
-     */
-    private void addToContext( final TaskContext context, final Map map )
-        throws TaskException
-    {
-        final Iterator keys = map.keySet().iterator();
-
-        while( keys.hasNext() )
-        {
-            final String key = (String)keys.next();
-            final Object value = map.get( key );
-            context.setProperty( key, value );
-        }
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/LogTargetToListenerAdapter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/LogTargetToListenerAdapter.java
deleted file mode 100644
index 19eaf1f..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/LogTargetToListenerAdapter.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.workspace;
-
-import org.apache.log.LogEvent;
-import org.apache.log.LogTarget;
-import org.apache.myrmidon.listeners.ProjectListener;
-
-/**
- * Adapter between Avalon LogKit and Project listener interfaces.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class LogTargetToListenerAdapter
-    implements LogTarget
-{
-    private final ProjectListener    m_listener;
-
-    /**
-     * Constructor taking listener to convert to.
-     *
-     * @param listener the ProjectListener
-     */
-    public LogTargetToListenerAdapter( final ProjectListener listener )
-    {
-        m_listener = listener;
-    }
-
-    /**
-     * Process a log event.
-     *
-     * @param event the event
-     */
-    public void processEvent( final LogEvent event )
-    {
-        if( null == event.getThrowable() )
-        {
-            m_listener.log( event.getMessage() );
-        }
-        else
-        {
-            m_listener.log( event.getMessage(), event.getThrowable() );
-        }
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/ProjectEntry.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/ProjectEntry.java
deleted file mode 100644
index 245c71f..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/ProjectEntry.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.workspace;
-
-import java.util.ArrayList;
-import org.apache.myrmidon.components.executor.ExecutionFrame;
-import org.apache.myrmidon.components.model.Project;
-
-/**
- * This contains detaisl for each project that is managed by ProjectManager.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public final class ProjectEntry
-{
-    private final Project         m_project;
-    private final ExecutionFrame  m_frame;
-    private final ArrayList       m_targetsCompleted   = new ArrayList();
-
-    public ProjectEntry( final Project project,
-                         final ExecutionFrame frame )
-    {
-        m_project = project;
-        m_frame = frame;
-    }
-
-    public Project getProject()
-    {
-        return m_project;
-    }
-
-    public ExecutionFrame getFrame()
-    {
-        return m_frame;
-    }
-
-    public boolean isTargetCompleted( final String target )
-    {
-        return m_targetsCompleted.contains( target );
-    }
-
-    public void completeTarget( final String target )
-    {
-        m_targetsCompleted.add( target );
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/ProjectListenerSupport.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/ProjectListenerSupport.java
deleted file mode 100644
index 6884164..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/ProjectListenerSupport.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.workspace;
-
-import org.apache.myrmidon.listeners.ProjectListener;
-
-/**
- * Support for the project listener event dispatching.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class ProjectListenerSupport
-    implements ProjectListener
-{
-    private ProjectListener[]   m_listeners = new ProjectListener[ 0 ];
-
-    /**
-     * Add an extra project listener that wants to receive notification of listener events.
-     *
-     * @param listener the listener
-     */
-    public void addProjectListener( final ProjectListener listener )
-    {
-        final ProjectListener[] listeners = new ProjectListener[ m_listeners.length + 1 ];
-        System.arraycopy( m_listeners, 0, listeners, 0, m_listeners.length );
-        listeners[ m_listeners.length ] = listener;
-        m_listeners = listeners;
-    }
-
-    /**
-     * Remove a project listener that wants to receive notification of listener events.
-     *
-     * @param listener the listener
-     */
-    public void removeProjectListener( final ProjectListener listener )
-    {
-        int found = -1;
-
-        for( int i = 0; i < m_listeners.length; i++ )
-        {
-            if( listener == m_listeners[ i ] )
-            {
-                found = i;
-                break;
-            }
-        }
-
-        if( -1 == found ) return;
-
-        final ProjectListener[] listeners = new ProjectListener[ m_listeners.length - 1 ];
-        System.arraycopy( m_listeners, 0, listeners, 0, found );
-
-        final int count = m_listeners.length - found - 1;
-        System.arraycopy( m_listeners, found, listeners, found + 1, count );
-
-        m_listeners = listeners;
-    }
-
-    /**
-     * Fire a projectStarted event.
-     */
-    public void projectStarted()
-    {
-        for( int i = 0; i < m_listeners.length; i++ )
-        {
-            m_listeners[ i ].projectStarted();
-        }
-    }
-
-    /**
-     * Fire a projectFinished event.
-     */
-    public void projectFinished()
-    {
-        for( int i = 0; i < m_listeners.length; i++ )
-        {
-            m_listeners[ i ].projectFinished();
-        }
-    }
-
-    /**
-     * Fire a targetStarted event.
-     *
-     * @param targetName the name of target
-     */
-    public void targetStarted( String targetName )
-    {
-        for( int i = 0; i < m_listeners.length; i++ )
-        {
-            m_listeners[ i ].targetStarted( targetName );
-        }
-    }
-
-    /**
-     * Fire a targetFinished event.
-     */
-    public void targetFinished()
-    {
-        for( int i = 0; i < m_listeners.length; i++ )
-        {
-            m_listeners[ i ].targetFinished();
-        }
-    }
-
-    /**
-     * Fire a targetStarted event.
-     *
-     * @param targetName the name of target
-     */
-    public void taskStarted( String taskName )
-    {
-        for( int i = 0; i < m_listeners.length; i++ )
-        {
-            m_listeners[ i ].taskStarted( taskName );
-        }
-    }
-
-    /**
-     * Fire a taskFinished event.
-     */
-    public void taskFinished()
-    {
-        for( int i = 0; i < m_listeners.length; i++ )
-        {
-            m_listeners[ i ].taskFinished();
-        }
-    }
-
-    /**
-     * Fire a log event.
-     *
-     * @param message the log message
-     */
-    public void log( String message )
-    {
-        for( int i = 0; i < m_listeners.length; i++ )
-        {
-            m_listeners[ i ].log( message );
-        }
-    }
-
-    /**
-     * Fire a log event.
-     *
-     * @param message the log message
-     * @param throwable the throwable to be logged
-     */
-    public void log( String message, Throwable throwable )
-    {
-        for( int i = 0; i < m_listeners.length; i++ )
-        {
-            m_listeners[ i ].log( message, throwable );
-        }
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/Workspace.java b/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/Workspace.java
deleted file mode 100644
index 57ae604..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/components/workspace/Workspace.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.components.workspace;
-
-import java.util.Map;
-import org.apache.avalon.framework.component.Component;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.components.model.Project;
-import org.apache.myrmidon.listeners.ProjectListener;
-
-/**
- * This is the abstraction through which Projects are managed and executed.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public interface Workspace
-    extends Component
-{
-    String ROLE = "org.apache.myrmidon.components.workspace.Workspace";
-
-    /**
-     * Add a listener to project events.
-     *
-     * @param listener the listener
-     */
-    void addProjectListener( ProjectListener listener );
-
-    /**
-     * Remove a listener from project events.
-     *
-     * @param listener the listener
-     */
-    void removeProjectListener( ProjectListener listener );
-
-    /**
-     * Execute a target in a particular project.
-     *
-     * @param project the Project
-     * @param target the name of the target
-     * @param defines the defines
-     * @exception TaskException if an error occurs
-     */
-    void executeProject( Project project, String target )
-        throws TaskException;
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/converter/AbstractConverter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/converter/AbstractConverter.java
deleted file mode 100644
index 595e847..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/converter/AbstractConverter.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.converter;
-
-import org.apache.avalon.framework.context.Context;
-
-/**
- * Instances of this interface are used to convert between different types.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public abstract class AbstractConverter
-    implements Converter
-{
-    private final Class         m_source;
-    private final Class         m_destination;
-
-    /**
-     * Constructor for a converter between types source and destination
-     *
-     * @param source the source type
-     * @param destination the destination type
-     */
-    public AbstractConverter( final Class source, final Class destination )
-    {
-        m_source = source;
-        m_destination = destination;
-    }
-
-    /**
-     * Convert an object from original to destination types
-     *
-     * @param destination the destination type
-     * @param original the original Object
-     * @param context the context in which to convert
-     * @return the converted object
-     * @exception Exception if an error occurs
-     */
-    public Object convert( final Class destination, final Object original, Context context )
-        throws ConverterException
-    {
-        if( m_destination != destination )
-        {
-            throw new IllegalArgumentException( "Destination type " + destination.getName() +
-                                                " is not equal to " + m_destination );
-        }
-
-        if( !m_source.isInstance( original ) )
-        {
-            throw new IllegalArgumentException( "Object '" + original + "' is not an " +
-                                                "instance of " + m_source.getName() );
-        }
-
-        return convert( original, context );
-    }
-
-    /**
-     * Overide this in a particular converter to do the conversion.
-     *
-     * @param original the original Object
-     * @param context the context in which to convert
-     * @return the converted object
-     * @exception Exception if an error occurs
-     */
-    protected abstract Object convert( Object original, Context context )
-        throws ConverterException;
-}
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/converter/Converter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/converter/Converter.java
deleted file mode 100644
index fab5fd2..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/converter/Converter.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.converter;
-
-import org.apache.avalon.framework.context.Context;
-
-/**
- * Instances of this interface are used to convert between different types.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public interface Converter
-{
-    String ROLE = "org.apache.myrmidon.converter.Converter";
-
-    /**
-     * Convert original to destination type.
-     * Destination is passed so that one converter can potentiall
-     * convert to multiple different types.
-     *
-     * @param destination the destinaiton type
-     * @param original the original type
-     * @param context the context in which to convert
-     * @return the converted object
-     * @exception Exception if an error occurs
-     */
-    Object convert( Class destination, Object original, Context context )
-        throws ConverterException;
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/converter/ConverterException.java b/proposal/myrmidon/src/java/org/apache/myrmidon/converter/ConverterException.java
deleted file mode 100644
index 6025198..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/converter/ConverterException.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.converter;
-
-import org.apache.avalon.framework.CascadingException;
-
-/**
- * ConverterException thrown when a problem occurs during convertion etc.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class ConverterException
-    extends CascadingException
-{
-    /**
-     * Basic constructor with a message
-     *
-     * @param message the message
-     */
-    public ConverterException( final String message )
-    {
-        this( message, null );
-    }
-
-    /**
-     * Constructor that builds cascade so that other exception information can be retained.
-     *
-     * @param message the message
-     * @param throwable the throwable
-     */
-    public ConverterException( final String message, final Throwable throwable )
-    {
-        super( message, throwable );
-    }
-}
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractContainerTask.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractContainerTask.java
deleted file mode 100644
index 1120e48..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractContainerTask.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.framework;
-
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.Composable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.myrmidon.api.AbstractTask;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.converter.Converter;
-import org.apache.myrmidon.converter.ConverterException;
-import org.apache.myrmidon.components.configurer.Configurer;
-import org.apache.myrmidon.components.converter.MasterConverter;
-import org.apache.myrmidon.components.executor.Executor;
-import org.apache.avalon.excalibur.property.PropertyException;
-import org.apache.avalon.excalibur.property.PropertyUtil;
-
-/**
- * This is the class that Task writers should extend to provide custom tasks.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public abstract class AbstractContainerTask
-    extends AbstractTask
-    implements Composable
-{
-    ///For converting own attributes
-    private MasterConverter     m_converter;
-
-    ///For configuring own sub-elements
-    private Configurer          m_configurer;
-
-    ///For executing sub-elements as tasks
-    private Executor            m_executor;
-
-    public void compose( final ComponentManager componentManager )
-        throws ComponentException
-    {
-        m_configurer = (Configurer)componentManager.lookup( Configurer.ROLE );
-        m_converter = (MasterConverter)componentManager.lookup( MasterConverter.ROLE );
-        m_executor = (Executor)componentManager.lookup( Executor.ROLE );
-    }
-
-    /**
-     * Helper method to resolve a string.
-     *
-     * @param value the value to resolve
-     * @return the resolved value
-     * @exception ConfigurationException if an error occurs
-     */
-    protected final Object resolve( final String value )
-        throws ConfigurationException
-    {
-        try
-        {
-            final Object object = 
-                PropertyUtil.resolveProperty( value, getContext(), false );
-
-            if( null == object )
-            {
-                throw new ConfigurationException( "Value (" + value +
-                                                  ") resolved to null" );
-            }
-
-            return object;
-        }
-        catch( final PropertyException pe )
-        {
-            throw new ConfigurationException( "Error resolving value: " + value, pe );
-        }
-    }
-
-    /**
-     * Helper method to convert an object to a specific type.
-     *
-     * @param to type to convert object to
-     * @param object the object to convert
-     * @return the converted object
-     * @exception ConfigurationException if an error occurs
-     */
-    protected final Object convert( final Class to, final Object object )
-        throws ConfigurationException
-    {
-        try
-        {
-            return getConverter().convert( to, object, getContext() );
-        }
-        catch( final ConverterException ce )
-        {
-            throw new ConfigurationException( "Error converting value", ce );
-        }
-    }
-
-    /**
-     * Configure an object using specific configuration element.
-     *
-     * @param object the object
-     * @param element the configuration element
-     * @exception ConfigurationException if an error occurs
-     */
-    protected final void configure( final Object object, final Configuration element )
-        throws ConfigurationException
-    {
-        getConfigurer().configure( object, element, getContext() );
-    }
-
-
-    /**
-     * Configure an objects attribute using parameters.
-     *
-     * @param object the object
-     * @param name the attibute name
-     * @param value the attibute value
-     * @exception ConfigurationException if an error occurs
-     */
-    protected final void configure( final Object object, final String name, final String value )
-        throws ConfigurationException
-    {
-        getConfigurer().configure( object, name, value, getContext() );
-    }
-
-    /**
-     * Convenience method for sub-class to retrieve Configurer.
-     *
-     * @return the configurer
-     */
-    protected final Configurer getConfigurer()
-    {
-        return m_configurer;
-    }
-
-    /**
-     * Convenience method for sub-class to retrieve Converter.
-     *
-     * @return the converter
-     */
-    protected final Converter getConverter()
-    {
-        return m_converter;
-    }
-
-    /**
-     * Convenience method for sub-class to retrieve Executor.
-     *
-     * @return the executor
-     */
-    protected final Executor getExecutor()
-    {
-        return m_executor;
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractTypeDef.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractTypeDef.java
deleted file mode 100644
index 9885861..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/AbstractTypeDef.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.framework;
-
-import java.io.File;
-import java.net.URL;
-import java.net.URLClassLoader;
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.Composable;
-import org.apache.myrmidon.api.AbstractTask;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.components.role.RoleManager;
-import org.apache.myrmidon.components.type.DefaultTypeFactory;
-import org.apache.myrmidon.components.type.TypeException;
-import org.apache.myrmidon.components.type.TypeManager;
-
-/**
- * Abstract task to extend to define a type.
- *
- * TODO: Make this support classpath sub-element in future
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public abstract class AbstractTypeDef
-    extends AbstractTask
-    implements Composable
-{
-    private File                m_lib;
-    private String              m_name;
-    private String              m_className;
-    private TypeManager         m_typeManager;
-    private RoleManager         m_roleManager;
-
-    public void compose( final ComponentManager componentManager )
-        throws ComponentException
-    {
-        m_typeManager = (TypeManager)componentManager.lookup( TypeManager.ROLE );
-        m_roleManager = (RoleManager)componentManager.lookup( RoleManager.ROLE );
-    }
-
-    public void setLib( final File lib )
-    {
-        //In the future this would be replaced by ClassPath sub-element
-        m_lib = lib;
-    }
-
-    public void setName( final String name )
-    {
-        m_name = name;
-    }
-
-    public void setClassname( final String className )
-    {
-        m_className = className;
-    }
-
-    public void execute()
-        throws TaskException
-    {
-        if( null == m_name )
-        {
-            throw new TaskException( "Must specify name parameter" );
-        }
-        else if( null == m_className )
-        {
-            throw new TaskException( "Must specify classname parameter" );
-        }
-
-        final String typeName = getTypeName();
-        final String role = m_roleManager.getRoleForName( typeName );
-
-        final ClassLoader classLoader = createClassLoader();
-        final DefaultTypeFactory factory = new DefaultTypeFactory( classLoader );
-        factory.addNameClassMapping( m_name, m_className );
-
-        try { m_typeManager.registerType( role, m_name, factory ); }
-        catch( final TypeException te )
-        {
-            throw new TaskException( "Failed to register type", te );
-        }
-    }
-
-    protected ClassLoader createClassLoader()
-        throws TaskException
-    {
-        //TODO: Make this support classpath sub-element in future
-        try
-        {
-            final URL url = m_lib.toURL();
-            final ClassLoader classLoader =
-                Thread.currentThread().getContextClassLoader();
-
-            return new URLClassLoader( new URL[] { url }, classLoader );
-        }
-        catch( final Exception e )
-        {
-            throw new TaskException( "Failed to build classLoader due to: " + e, e );
-        }
-    }
-
-    protected final TypeManager getTypeManager()
-    {
-        return m_typeManager;
-    }
-
-    protected abstract String getTypeName();
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/Condition.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/Condition.java
deleted file mode 100644
index 4df1cdc..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/Condition.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.framework;
-
-import org.apache.avalon.excalibur.property.PropertyException;
-import org.apache.avalon.excalibur.property.PropertyUtil;
-import org.apache.avalon.framework.component.Component;
-import org.apache.avalon.framework.context.Context;
-import org.apache.avalon.framework.context.ContextException;
-import org.apache.myrmidon.api.TaskException;
-
-/**
- * Class representing a condition.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class Condition
-    implements Component
-{
-    private String            m_condition;
-    private boolean           m_isIfCondition;
-
-    public Condition( final boolean isIfCondition, final String condition )
-    {
-        m_isIfCondition = isIfCondition;
-        m_condition = condition;
-    }
-
-    public String getCondition()
-    {
-        return m_condition;
-    }
-
-    public boolean isIfCondition()
-    {
-        return m_isIfCondition;
-    }
-
-    public boolean evaluate( final Context context )
-        throws ContextException
-    {
-        boolean result = false;
-
-        try
-        {
-            final Object resolved =
-                PropertyUtil.resolveProperty( getCondition(), context, false );
-
-            if( null != resolved )
-            {
-                final Object object = context.get( resolved );
-                //TODO: Do more than just check for presence????????????
-
-                //true as object present
-                result = true;
-            }
-        }
-        catch( final ContextException ce )
-        {
-            result = false;
-        }
-        catch( final PropertyException pe )
-        {
-            throw new ContextException( "Error resolving " + m_condition, pe );
-        }
-
-        if( !m_isIfCondition )
-        {
-            result = !result;
-        }
-
-        return result;
-    }
-
-    public String toString()
-    {
-        if( isIfCondition() )
-        {
-            return "if='" + getCondition() + "'";
-        }
-        else
-        {
-            return "unless='" + getCondition() + "'";
-        }
-    }
-}
-
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/DataType.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/DataType.java
deleted file mode 100644
index e6a9b55..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/DataType.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.framework;
-
-/**
- * Base class for those classes that can appear inside the build file
- * as stand alone data types.  
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public interface DataType
-{
-    String ROLE = "org.apache.myrmidon.framework.DataType";
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/Pattern.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/Pattern.java
deleted file mode 100644
index a8accd4..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/Pattern.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.framework;
-
-import org.apache.myrmidon.api.TaskException;
-
-/**
- * Basic data type for holding patterns.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class Pattern
-    implements DataType
-{
-    private String         m_value;
-    private Condition      m_condition;
-
-    /**
-     * Retrieve value of pattern.
-     *
-     * @return the value of pattern
-     */
-    public String getValue()
-    {
-        return m_value;
-    }
-
-    /**
-     * Get condition associated with pattern if any.
-     *
-     * @return the Condition
-     */
-    public Condition getCondition()
-    {
-        return m_condition;
-    }
-
-    /**
-     * Setter method for value of pattern.
-     * Conforms to setter patterns
-     *
-     * @param value the value
-     */
-    public void setValue( final String value )
-    {
-        m_value = value;
-    }
-
-    /**
-     * Set if clause on pattern.
-     *
-     * @param condition the condition
-     * @exception TaskException if an error occurs
-     */
-    public void setIf( final String condition )
-        throws TaskException
-    {
-        verifyConditionNull();
-        m_condition = new Condition( true, condition );
-    }
-
-    /**
-     * Set unless clause of pattern.
-     *
-     * @param condition the unless clause
-     * @exception TaskException if an error occurs
-     */
-    public void setUnless( final String condition )
-        throws TaskException
-    {
-        verifyConditionNull();
-        m_condition = new Condition( false, condition );
-    }
-
-    public String toString()
-    {
-        String result = "Pattern['" + m_value + "',";
-        if( null != m_condition ) result = result + m_condition;
-        return result + "]";
-    }
-
-    /**
-     * Utility method to make sure condition unset.
-     * Made so that it is not possible for both if and unless to be set.
-     *
-     * @exception TaskException if an error occurs
-     */
-    private void verifyConditionNull()
-        throws TaskException
-    {
-        if( null != m_condition )
-        {
-            throw new TaskException( "Can only set one of if/else for pattern data type" );
-        }
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/TypeInstanceTask.java b/proposal/myrmidon/src/java/org/apache/myrmidon/framework/TypeInstanceTask.java
deleted file mode 100644
index 5aa025f..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/framework/TypeInstanceTask.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.framework;
-
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.Composable;
-import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.configuration.DefaultConfiguration;
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.components.type.TypeException;
-import org.apache.myrmidon.components.type.TypeFactory;
-import org.apache.myrmidon.components.type.TypeManager;
-
-/**
- * This is the property "task" to declare a binding of a datatype to a name.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class TypeInstanceTask
-    extends AbstractContainerTask
-    implements Configurable
-{
-    private String              m_id;
-    private Object              m_value;
-    private boolean             m_localScope     = true;
-    private TypeFactory         m_factory;
-
-    public void compose( final ComponentManager componentManager )
-        throws ComponentException
-    {
-        super.compose( componentManager );
-
-        final TypeManager typeManager = (TypeManager)componentManager.lookup( TypeManager.ROLE );
-        try { m_factory = typeManager.getFactory( DataType.ROLE ); }
-        catch( final TypeException te )
-        {
-            throw new ComponentException( "Unable to retrieve factory from TypeManager", te );
-        }
-    }
-
-    public void configure( final Configuration configuration )
-        throws ConfigurationException
-    {
-        final DefaultConfiguration newConfiguration =
-            new DefaultConfiguration( configuration.getName(), configuration.getLocation() );
-
-        final String[] attributes = configuration.getAttributeNames();
-        for( int i = 0; i < attributes.length; i++ )
-        {
-            final String name = attributes[ i ];
-            final String value = configuration.getAttribute( name );
-
-            if( name.equals( "id" ) || name.equals( "local-scope" ) )
-            {
-                configure( this, name, value );
-            }
-            else
-            {
-                newConfiguration.setAttribute( name, value );
-            }
-        }
-
-        final Configuration[] children = configuration.getChildren();
-        for( int i = 0; i < children.length; i++ )
-        {
-            newConfiguration.addChild( children[ i ] );
-        }
-
-        try
-        {
-            m_value = m_factory.create( configuration.getName() );
-        }
-        catch( final Exception e )
-        {
-            throw new ConfigurationException( "Unable to create datatype", e );
-        }
-
-        configure( m_value, newConfiguration );
-    }
-
-    public void setId( final String id )
-    {
-        m_id = id;
-    }
-
-    public void setLocalScope( final boolean localScope )
-    {
-        m_localScope = localScope;
-    }
-
-    public void execute()
-        throws TaskException
-    {
-        if( null == m_id )
-        {
-            throw new TaskException( "Id must be specified" );
-        }
-
-        if( m_localScope )
-        {
-            getContext().setProperty( m_id, m_value );
-        }
-        else
-        {
-            getContext().setProperty( m_id, m_value, TaskContext.PARENT );
-        }
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/frontends/CLIMain.java b/proposal/myrmidon/src/java/org/apache/myrmidon/frontends/CLIMain.java
deleted file mode 100644
index 662e555..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/frontends/CLIMain.java
+++ /dev/null
@@ -1,476 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.frontends;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import org.apache.avalon.excalibur.cli.CLArgsParser;
-import org.apache.avalon.excalibur.cli.CLOption;
-import org.apache.avalon.excalibur.cli.CLOptionDescriptor;
-import org.apache.avalon.excalibur.cli.CLUtil;
-import org.apache.avalon.excalibur.io.ExtensionFileFilter;
-import org.apache.avalon.framework.ExceptionUtil;
-import org.apache.avalon.framework.logger.AbstractLoggable;
-import org.apache.avalon.framework.parameters.Parameters;
-import org.apache.log.Hierarchy;
-import org.apache.log.LogTarget;
-import org.apache.log.Logger;
-import org.apache.log.Priority;
-import org.apache.log.output.DefaultOutputLogTarget;
-import org.apache.myrmidon.Constants;
-import org.apache.myrmidon.api.DefaultTaskContext;
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.components.builder.ProjectBuilder;
-import org.apache.myrmidon.components.executor.Executor;
-import org.apache.myrmidon.components.embeddor.Embeddor;
-import org.apache.myrmidon.components.embeddor.DefaultEmbeddor;
-import org.apache.myrmidon.components.workspace.Workspace;
-import org.apache.myrmidon.components.model.Project;
-import org.apache.myrmidon.listeners.ProjectListener;
-
-/**
- * The class to kick the tires and light the fires.
- * Starts myrmidon, loads ProjectBuilder, builds project then uses ProjectManager
- * to run project.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class CLIMain
-    extends AbstractLoggable
-{
-    //defines for the Command Line options
-    private static final int       HELP_OPT                  = 'h';
-    private static final int       QUIET_OPT                 = 'q';
-    private static final int       VERBOSE_OPT               = 'v';
-    private static final int       FILE_OPT                  = 'f';
-    private static final int       LOG_LEVEL_OPT             = 'l';
-    private static final int       DEFINE_OPT                = 'D';
-    private static final int       BUILDER_PARAM_OPT         = 'B';
-    private static final int       VERSION_OPT               = 1;
-    private static final int       LISTENER_OPT              = 2;
-    private static final int       TASKLIB_DIR_OPT           = 5;
-    private static final int       INCREMENTAL_OPT           = 6;
-    private static final int       HOME_DIR_OPT              = 7;
-    private static final int       DRY_RUN_OPT               = 8;
-
-    //incompatable options for info options
-    private static final int[]     INFO_OPT_INCOMPAT         = new int[]
-    {
-        HELP_OPT, QUIET_OPT, VERBOSE_OPT, FILE_OPT,
-        LOG_LEVEL_OPT, VERSION_OPT, LISTENER_OPT,
-        DEFINE_OPT, DRY_RUN_OPT //TASKLIB_DIR_OPT, HOME_DIR_OPT
-    };
-
-    //incompatable options for other logging options
-    private static final int[]     LOG_OPT_INCOMPAT          = new int[]
-    {
-        QUIET_OPT, VERBOSE_OPT, LOG_LEVEL_OPT
-    };
-
-    private ProjectListener      m_listener;
-
-    ///Parameters for run of myrmidon
-    private Parameters           m_parameters  = new Parameters();
-
-    ///List of targets supplied on command line to execute
-    private ArrayList            m_targets     = new ArrayList();
-
-    ///List of user supplied defines
-    private Parameters           m_defines     = new Parameters();
-
-    ///List of user supplied parameters for builder
-    private Parameters           m_builderParameters = new Parameters();
-
-    ///Determine whether tasks are actually executed
-    private boolean              m_dryRun      = false;
-
-    /**
-     * Main entry point called to run standard Myrmidon.
-     *
-     * @param args the args
-     */
-    public static void main( final String[] args )
-    {
-        final CLIMain main = new CLIMain();
-
-        try { main.execute( args ); }
-        catch( final Throwable throwable )
-        {
-            System.err.println( "Error: " + ExceptionUtil.printStackTrace( throwable ) );
-            System.exit( -1 );
-        }
-
-        System.exit( 0 );
-    }
-
-    /**
-     * Display usage report.
-     *
-     */
-    private void usage( final CLOptionDescriptor[] options )
-    {
-        System.out.println( "java " + getClass().getName() + " [options]" );
-        System.out.println( "\tAvailable options:");
-        System.out.println( CLUtil.describeOptions( options ) );
-    }
-
-    /**
-     * Initialise the options for command line parser.
-     */
-    private CLOptionDescriptor[] createCLOptions()
-    {
-        //TODO: localise
-        final CLOptionDescriptor[] options = new CLOptionDescriptor[ 13 ];
-
-        options[0] =
-            new CLOptionDescriptor( "help",
-                                    CLOptionDescriptor.ARGUMENT_DISALLOWED,
-                                    HELP_OPT,
-                                    "display this help message",
-                                    INFO_OPT_INCOMPAT );
-
-        options[1] =
-            new CLOptionDescriptor( "file",
-                                    CLOptionDescriptor.ARGUMENT_REQUIRED,
-                                    FILE_OPT,
-                                    "the build file." );
-
-        options[2] =
-            new CLOptionDescriptor( "log-level",
-                                    CLOptionDescriptor.ARGUMENT_REQUIRED,
-                                    LOG_LEVEL_OPT,
-                                    "the verbosity level at which to log messages. " +
-                                    "(DEBUG|INFO|WARN|ERROR|FATAL_ERROR)",
-                                    LOG_OPT_INCOMPAT );
-
-        options[3] =
-            new CLOptionDescriptor( "quiet",
-                                    CLOptionDescriptor.ARGUMENT_DISALLOWED,
-                                    QUIET_OPT,
-                                    "equivelent to --log-level=FATAL_ERROR",
-                                    LOG_OPT_INCOMPAT );
-
-        options[4] =
-            new CLOptionDescriptor( "verbose",
-                                    CLOptionDescriptor.ARGUMENT_DISALLOWED,
-                                    VERBOSE_OPT,
-                                    "equivelent to --log-level=INFO",
-                                    LOG_OPT_INCOMPAT );
-
-        options[5] =
-            new CLOptionDescriptor( "listener",
-                                    CLOptionDescriptor.ARGUMENT_REQUIRED,
-                                    LISTENER_OPT,
-                                    "the listener for log events." );
-
-        options[6] =
-            new CLOptionDescriptor( "version",
-                                    CLOptionDescriptor.ARGUMENT_DISALLOWED,
-                                    VERSION_OPT,
-                                    "display version",
-                                    INFO_OPT_INCOMPAT );
-
-        options[7] =
-            new CLOptionDescriptor( "task-lib-dir",
-                                    CLOptionDescriptor.ARGUMENT_REQUIRED,
-                                    TASKLIB_DIR_OPT,
-                                    "the task lib directory to scan for .tsk files." );
-        options[8] =
-            new CLOptionDescriptor( "incremental",
-                                    CLOptionDescriptor.ARGUMENT_DISALLOWED,
-                                    INCREMENTAL_OPT,
-                                    "Run in incremental mode" );
-        options[9] =
-            new CLOptionDescriptor( "myrmidon-home",
-                                    CLOptionDescriptor.ARGUMENT_REQUIRED,
-                                    HOME_DIR_OPT,
-                                    "Specify myrmidon home directory" );
-        options[10] =
-            new CLOptionDescriptor( "define",
-                                    CLOptionDescriptor.ARGUMENTS_REQUIRED_2,
-                                    DEFINE_OPT,
-                                    "Define a variable (ie -Dfoo=var)",
-                                    new int[ 0 ] );
-
-        options[11] =
-            new CLOptionDescriptor( "builder-parameter",
-                                    CLOptionDescriptor.ARGUMENTS_REQUIRED_2,
-                                    BUILDER_PARAM_OPT,
-                                    "Define a builder parameter (ie -Bfoo=var)" );
-
-        options[12] =
-            new CLOptionDescriptor( "dry-run",
-                                    CLOptionDescriptor.ARGUMENT_DISALLOWED,
-                                    DRY_RUN_OPT,
-                                    "Do not execute tasks - just print them out" );
-
-        return options;
-    }
-
-    private boolean parseCommandLineOptions( final String[] args )
-    {
-        final CLOptionDescriptor[] options = createCLOptions();
-        final CLArgsParser parser = new CLArgsParser( args, options );
-
-        if( null != parser.getErrorString() )
-        {
-            System.err.println( "Error: " + parser.getErrorString() );
-            return false;
-        }
-
-        final List clOptions = parser.getArguments();
-        final int size = clOptions.size();
-
-        for( int i = 0; i < size; i++ )
-        {
-            final CLOption option = (CLOption)clOptions.get( i );
-
-            switch( option.getId() )
-            {
-            case HELP_OPT: usage( options ); return false;
-            case VERSION_OPT: System.out.println( Constants.BUILD_DESCRIPTION ); return false;
-
-            case HOME_DIR_OPT: m_parameters.setParameter( "myrmidon.home", option.getArgument() ); break;
-            case TASKLIB_DIR_OPT:
-                m_parameters.setParameter( "myrmidon.lib.path", option.getArgument() );
-                break;
-
-            case LOG_LEVEL_OPT: m_parameters.setParameter( "log.level", option.getArgument() ); break;
-            case VERBOSE_OPT: m_parameters.setParameter( "log.level", "INFO" ); break;
-            case QUIET_OPT: m_parameters.setParameter( "log.level", "ERROR" ); break;
-
-            case INCREMENTAL_OPT: m_parameters.setParameter( "incremental", "true" ); break;
-
-            case FILE_OPT: m_parameters.setParameter( "filename", option.getArgument() ); break;
-            case LISTENER_OPT: m_parameters.setParameter( "listener", option.getArgument() ); break;
-
-            case DEFINE_OPT:
-                m_defines.setParameter( option.getArgument( 0 ), option.getArgument( 1 ) );
-                break;
-
-            case BUILDER_PARAM_OPT:
-                m_builderParameters.setParameter( option.getArgument( 0 ), option.getArgument( 1 ) );
-                break;
-
-            case DRY_RUN_OPT: m_dryRun = true; break;
-
-            case 0: m_targets.add( option.getArgument() ); break;
-            }
-        }
-
-        return true;
-    }
-
-    private void setupDefaultParameters()
-    {
-        //System property set up by launcher
-        m_parameters.setParameter( "myrmidon.home", System.getProperty( "myrmidon.home", "." ) );
-
-        m_parameters.setParameter( "filename", "build.ant" );
-        m_parameters.setParameter( "log.level", "WARN" );
-        m_parameters.setParameter( "listener", "org.apache.myrmidon.listeners.DefaultProjectListener" );
-        m_parameters.setParameter( "incremental", "false" );
-    }
-
-    private void execute( final String[] args )
-        throws Exception
-    {
-        setupDefaultParameters();
-
-        if( !parseCommandLineOptions( args ) )
-        {
-            return;
-        }
-
-        //handle logging...
-        final String logLevel = m_parameters.getParameter( "log.level", null );
-        setLogger( createLogger( logLevel ) );
-
-        final String home = m_parameters.getParameter( "myrmidon.home", null );
-        final File homeDir = (new File( home )).getAbsoluteFile();
-        if( !homeDir.isDirectory() )
-        {
-            throw new Exception( "myrmidon-home (" + homeDir + ") is not a directory" );
-        }
-
-        final String filename = m_parameters.getParameter( "filename", null );
-        final File buildFile = (new File( filename )).getCanonicalFile();
-        if( !buildFile.isFile() )
-        {
-            throw new Exception( "File " + buildFile + " is not a file or doesn't exist" );
-        }
-
-        //handle listener..
-        final String listenerName = m_parameters.getParameter( "listener", null );
-        final ProjectListener listener = createListener( listenerName );
-
-        getLogger().warn( "Ant Build File: " + buildFile );
-        getLogger().info( "Ant Home Directory: " + homeDir );
-        //getLogger().info( "Ant Bin Directory: " + m_binDir );
-        //getLogger().debug( "Ant Lib Directory: " + m_libDir );
-        //getLogger().debug( "Ant Task Lib Directory: " + m_taskLibDir );
-
-        if( m_dryRun )
-        {
-            m_parameters.setParameter( Executor.ROLE, 
-                                       "org.apache.myrmidon.components.executor.PrintingExecutor" );
-        }
-
-        final Embeddor embeddor = new DefaultEmbeddor();
-        setupLogger( embeddor );
-        embeddor.parameterize( m_parameters );
-        embeddor.initialize();
-        embeddor.start();
-
-        //create the project
-        final Project project = 
-            embeddor.createProject( buildFile.toString(), null, m_builderParameters );
-
-        BufferedReader reader = null;
-
-        //loop over build if we are in incremental mode..
-        final boolean incremental = m_parameters.getParameterAsBoolean( "incremental", false );
-        while( true )
-        {
-            //actually do the build ...
-            final Workspace workspace = embeddor.createWorkspace( m_defines );
-            workspace.addProjectListener( listener );
-
-            doBuild( workspace, project, m_targets );
-
-            if( !incremental ) break;
-
-            System.out.println( "Continue ? (Enter no to stop)" );
-
-            if( null == reader )
-            {
-                reader = new BufferedReader( new InputStreamReader( System.in ) );
-            }
-
-            String line = reader.readLine();
-
-            if( line.equalsIgnoreCase( "no" ) ) break;
-
-        }
-
-        embeddor.stop();
-        embeddor.dispose();
-    }
-
-    /**
-     * Actually do the build.
-     *
-     * @param manager the manager
-     * @param project the project
-     * @param targets the targets to build as passed by CLI
-     */
-    private void doBuild( final Workspace workspace,
-                          final Project project,
-                          final ArrayList targets )
-    {
-        try
-        {
-            final int targetCount = targets.size();
-
-            //if we didn't specify a target on CLI then choose default
-            if( 0 == targetCount )
-            {
-                workspace.executeProject( project, project.getDefaultTargetName() );
-            }
-            else
-            {
-                for( int i = 0; i < targetCount; i++ )
-                {
-                    workspace.executeProject( project, (String)targets.get( i ) );
-                }
-            }
-        }
-        catch( final TaskException ae )
-        {
-            getLogger().error( "BUILD FAILED" );
-            getLogger().error( "Reason:\n" + ExceptionUtil.printStackTrace( ae, 5, true ) );
-        }
-    }
-
-    /**
-     * Create Logger of appropriate log-level.
-     *
-     * @param logLevel the log-level
-     * @return the logger
-     * @exception Exception if an error occurs
-     */
-    private Logger createLogger( final String logLevel )
-        throws Exception
-    {
-        final String logLevelCapitalized = logLevel.toUpperCase();
-        final Priority priority = Priority.getPriorityForName( logLevelCapitalized );
-
-        if( !priority.getName().equals( logLevelCapitalized ) )
-        {
-            throw new Exception( "Unknown log level - " + logLevel );
-        }
-
-        final Logger logger = Hierarchy.getDefaultHierarchy().getLoggerFor( "myrmidon" );
-
-        final DefaultOutputLogTarget target = new DefaultOutputLogTarget();
-        target.setFormat( "[%8.8{category}] %{message}\\n%{throwable}" );
-        logger.setLogTargets( new LogTarget[] { target } );
-
-        logger.setPriority( priority );
-
-        return logger;
-    }
-
-    /**
-     * Setup project listener.
-     *
-     * @param listener the classname of project listener
-     */
-    private ProjectListener createListener( final String listener )
-        throws Exception
-    {
-        try { return (ProjectListener)Class.forName( listener ).newInstance(); }
-        catch( final Throwable t )
-        {
-            throw new Exception( "Error creating the listener " + listener +
-                                 " due to " + ExceptionUtil.printStackTrace( t, 5, true ) );
-        }
-    }
-
-    /**
-     * Helper method to add values to a context
-     *
-     * @param context the context
-     * @param map the map of names->values
-     */
-    private void addToContext( final TaskContext context, final Map map )
-        throws Exception
-    {
-        final Iterator keys = map.keySet().iterator();
-
-        while( keys.hasNext() )
-        {
-            final String key = (String)keys.next();
-            final Object value = map.get( key );
-            context.setProperty( key, value );
-        }
-    }
-}
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/launcher/Main.java b/proposal/myrmidon/src/java/org/apache/myrmidon/launcher/Main.java
deleted file mode 100644
index f7b58ab..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/launcher/Main.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.launcher;
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.StringTokenizer;
-
-/**
- * Basic Loader that is responsible for all the hackery to get classloader to work.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public final class Main
-{
-    /**
-     * Magic entry point.
-     *
-     * @param args the CLI arguments
-     * @exception Exception if an error occurs
-     */
-    public final static void main( final String[] args )
-        throws Exception
-    {
-        try
-        {
-            //actually try to discover the install directory based on where
-            // the myrmidon.jar is
-            final File installDirectory = findInstallDir();
-            System.setProperty( "myrmidon.home", installDirectory.toString() );
-
-            //setup classloader appropriately for myrmidon jar
-            final File libDir = new File( installDirectory, "lib" );
-            final URL[] urls = buildURLList( libDir );
-
-            final URLClassLoader classLoader = new URLClassLoader( urls );
-
-            //load class and retrieve appropriate main method.
-            final Class clazz = classLoader.loadClass( "org.apache.myrmidon.frontends.CLIMain" );
-            final Method method = clazz.getMethod( "main", new Class[] { args.getClass() } );
-
-            Thread.currentThread().setContextClassLoader( classLoader );
-
-            //kick the tires and light the fires....
-            method.invoke( null, new Object[] { args } );
-        }
-        catch( final InvocationTargetException ite )
-        {
-            System.err.println( "Error: " + ite.getTargetException().getMessage() );
-            ite.getTargetException().printStackTrace();
-        }
-        catch( final Throwable throwable )
-        {
-            System.err.println( "Error: " + throwable.getMessage() );
-            throwable.printStackTrace();
-        }
-    }
-
-    private final static URL[] buildURLList( final File dir )
-        throws Exception
-    {
-        final ArrayList urlList = new ArrayList();
-
-        final File[] contents = dir.listFiles();
-
-        if( null == contents )
-        {
-            return new URL[ 0 ];
-        }
-
-        for( int i = 0; i < contents.length; i++ )
-        {
-            File file = contents[ i ];
-
-            if( !file.isFile() || !file.canRead() )
-            {
-                //ignore non-files or unreadable files
-                continue;
-            }
-
-            final String name = file.getName();
-            if( !name.endsWith( ".jar" ) && !name.endsWith( ".zip" ) )
-            {
-                //Ifnore files in lib dir that are not jars or zips
-                continue;
-            }
-
-            file = file.getCanonicalFile();
-            
-            urlList.add( file.toURL() );
-        }
-
-        return (URL[])urlList.toArray( new URL[ 0 ] );
-    }
-
-    /**
-     *  Finds the myrmidon.jar file in the classpath.
-     */
-    private final static File findInstallDir()
-        throws Exception
-    {
-        final String classpath = System.getProperty( "java.class.path" );
-        final String pathSeparator = System.getProperty( "path.separator" );
-        final StringTokenizer tokenizer = new StringTokenizer( classpath, pathSeparator );
-
-        while( tokenizer.hasMoreTokens() )
-        {
-            final String element = tokenizer.nextToken();
-
-            if( element.endsWith( "ant.jar" ) )
-            {
-                File file = (new File( element )).getAbsoluteFile();
-                file = file.getParentFile();
-
-                if( null != file )
-                {
-                    file = file.getParentFile();
-                }
-
-                return file;
-            }
-        }
-
-        throw new Exception( "Unable to locate ant.jar in classpath" );
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/ant1/Ant1Project.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/ant1/Ant1Project.java
deleted file mode 100644
index bfb9e01..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/ant1/Ant1Project.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.ant1;
-
-import java.io.File;
-import org.apache.avalon.framework.context.Context;
-import org.apache.avalon.framework.context.Contextualizable;
-import org.apache.avalon.framework.logger.Loggable;
-import org.apache.log.Logger;
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.tools.ant.*;
-import org.apache.tools.ant.Project;
-
-public class Ant1Project
-    extends Project
-    implements Loggable, Contextualizable
-{
-    private Logger   m_logger;
-
-    ///Variable to hold context for use by sub-classes
-    private TaskContext            m_context;
-
-    public void setLogger( final Logger logger )
-    {
-        m_logger = logger;
-    }
-
-    protected final Logger getLogger()
-    {
-        return m_logger;
-    }
-
-    /**
-     * Retrieve context from container.
-     *
-     * @param context the context
-     */
-    public void contextualize( final Context context )
-    {
-        m_context = (TaskContext)context;
-    }
-
-    protected final TaskContext getContext()
-    {
-        return m_context;
-    }
-
-    /**
-     * Initialise the project.
-     */
-    public void init()
-        throws BuildException
-    {
-        setJavaVersionProperty();
-    }
-
-    public void setProperty( final String name, final String value )
-    {
-        try { getContext().setProperty( name, value ); }
-        catch( final Exception e )
-        {
-            getLogger().warn( "Failed to set property " + name + " to " + value, e );
-        }
-    }
-
-    public void setUserProperty( final String name, final String value )
-    {
-        setProperty( name, value );
-    }
-
-    public String getProperty( final String name )
-    {
-        return "" + getContext().getProperty( name );
-    }
-
-    public String getUserProperty( final String name )
-    {
-        return getProperty( name );
-    }
-
-    public String getName()
-    {
-        return "Ant1 Project";
-    }
-
-    public Task createTask( final String taskType )
-        throws BuildException
-    {
-        throw new UnsupportedOperationException();
-    }
-
-    public Object createDataType( final String typeName )
-        throws BuildException
-    {
-        throw new UnsupportedOperationException();
-    }
-
-    public File resolveFile( final String fileName )
-    {
-        try { return getContext().resolveFile( fileName ); }
-        catch( final Exception e )
-        {
-            return null;
-        }
-    }
-
-    protected void fireBuildStarted() {}
-    protected void fireBuildFinished(Throwable exception) {}
-    protected void fireTargetStarted(Target target) {}
-    protected void fireTargetFinished(Target target, Throwable exception) {}
-    protected void fireTaskStarted(Task task) {}
-    protected void fireTaskFinished(Task task, Throwable exception) {}
-
-    private void fireMessageLoggedEvent(BuildEvent event, String message, int priority)
-    {
-        messageLogged( message, priority );
-    }
-
-    protected void fireMessageLogged(Project project, String message, int priority)
-    {
-        messageLogged( message, priority );
-    }
-
-    protected void fireMessageLogged(Target target, String message, int priority)
-    {
-        messageLogged( message, priority );
-    }
-
-    protected void fireMessageLogged(Task task, String message, int priority)
-    {
-        messageLogged( message, priority );
-    }
-
-    private void messageLogged( String message, int priority )
-    {
-        switch( priority )
-        {
-        case MSG_ERR: getLogger().error( message ); break;
-        case MSG_WARN: getLogger().warn( message ); break;
-        case MSG_INFO: getLogger().info( message ); break;
-        case MSG_VERBOSE: getLogger().debug( message ); break;
-        case MSG_DEBUG: getLogger().debug( message ); break;
-
-        default:
-            getLogger().debug( message );
-        }
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/ant1/Ant1Tasklib.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/ant1/Ant1Tasklib.java
deleted file mode 100644
index 18b2dbe..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/ant1/Ant1Tasklib.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.ant1;
-
-import java.io.File;
-import java.io.InputStream;
-import java.io.IOException;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.Properties;
-import org.apache.myrmidon.api.AbstractTask;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.api.Task;
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.Composable;
-import org.apache.myrmidon.components.type.TypeManager;
-
-/**
- * Method to register a tasklib.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class Ant1Tasklib
-    extends AbstractTask
-    implements Composable
-{
-    private String       m_prefix  = "";
-    private File         m_lib;
-    private TypeManager  m_typeManager;
-
-    public void compose( final ComponentManager componentManager )
-        throws ComponentException
-    {
-        m_typeManager = (TypeManager)componentManager.lookup( TypeManager.ROLE );
-    }
-
-    public void setLib( final File lib )
-    {
-        m_lib = lib;
-    }
-
-    public void setPrefix( final String prefix )
-    {
-        m_prefix = prefix;
-    }
-
-    public void execute()
-        throws TaskException
-    {
-        if( null == m_lib )
-        {
-            throw new TaskException( "Must specify lib parameter" );
-        }
-
-
-        try
-        {            
-            final String location =  "jar:" + m_lib.toURL() + 
-                "!/org/apache/tools/ant/taskdefs/defaults.properties";
-            final URL url = new URL( location );
-            final InputStream input = url.openStream();
-
-            final Properties tasks = new Properties();
-            tasks.load( input );
-            
-            input.close();
-
-            final Ant1TypeFactory factory = new Ant1TypeFactory( m_lib.toURL() );
-
-            final Enumeration enum = tasks.propertyNames();
-            while( enum.hasMoreElements() )
-            {
-                final String rawName = (String)enum.nextElement();
-                final String className = tasks.getProperty( rawName );    
-                final String name = m_prefix + rawName;
-
-                factory.addNameClassMapping( name, className );
-                m_typeManager.registerType( Task.ROLE, name, factory );        
-            }
-        }
-        catch( final Exception e )
-        {
-            throw new TaskException( "Failed to load task definitions", e );
-        }
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/ant1/Ant1TypeFactory.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/ant1/Ant1TypeFactory.java
deleted file mode 100644
index c8537ae..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/ant1/Ant1TypeFactory.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.ant1;
-
-import java.net.URL;
-import org.apache.myrmidon.components.type.DefaultTypeFactory;
-import org.apache.myrmidon.components.type.TypeException;
-import org.apache.tools.ant.Task;
-
-/**
- * Factory used to create adaptors for Ant1 tasks.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class Ant1TypeFactory
-    extends DefaultTypeFactory
-{
-    public Ant1TypeFactory( final URL url )
-    {
-        super( url );
-    }
-
-    public Ant1TypeFactory( final URL[] urls )
-    {
-        super( urls );
-    }
-
-    public Ant1TypeFactory( final URL[] urls, final ClassLoader parent )
-    {
-        super( urls, parent );
-    }
-
-    public Ant1TypeFactory( final ClassLoader classLoader )
-    {
-        super( classLoader );
-    }
-
-    public Object create( final String name )
-        throws TypeException
-    {
-        final Object object = super.create( name );
-
-        if( !(object instanceof Task) )
-        {
-            throw new TypeException( "Expected an Ant1 task but received an " +
-                                     "object of type : " + object.getClass().getName() );
-        }
-
-        return new TaskAdapter( (Task)object );
-    }
-}
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/ant1/TaskAdapter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/ant1/TaskAdapter.java
deleted file mode 100644
index db1da69..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/ant1/TaskAdapter.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.ant1;
-
-import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.components.type.TypeException;
-import org.apache.myrmidon.components.type.TypeFactory;
-import org.apache.myrmidon.components.type.TypeManager;
-import org.apache.myrmidon.framework.AbstractContainerTask;
-import org.apache.tools.ant.Task;
-
-/**
- * Adapter of Ant1 tasks to myrmidon.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class TaskAdapter
-    extends AbstractContainerTask
-    implements Configurable
-{
-    private Task         m_task;
-    private Ant1Project  m_project = new Ant1Project();
-
-    public TaskAdapter( final Task task )
-    {
-        m_task = task;
-    }
-
-    protected final Task getTask()
-    {
-        return m_task;
-    }
-
-    protected final Ant1Project getProject()
-    {
-        return m_project;
-    }
-
-    public void configure( final Configuration configuration )
-        throws ConfigurationException
-    {
-        getTask().setTaskName( configuration.getName() );
-
-        //do configuration
-        configure( getTask(), configuration );
-    }
-
-    public void execute()
-        throws TaskException
-    {
-        try
-        {
-            getProject().setLogger( getLogger() );
-            getProject().contextualize( getContext() );
-            getProject().init();
-
-            getTask().setProject( getProject() );
-            getTask().init();
-            getTask().execute();
-        }
-        catch( final Exception e )
-        {
-            throw new TaskException( e.getMessage(), e );
-        }
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/Echo.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/Echo.java
deleted file mode 100644
index 66f138f..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/Echo.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.core;
-
-import org.apache.myrmidon.api.AbstractTask;
-import org.apache.myrmidon.api.TaskException;
-
-/**
- * This is the echo task to display a message.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class Echo 
-    extends AbstractTask
-{
-    private String      m_message;
-
-    public void setMessage( final String message )
-    {
-        m_message = message;
-    }
-
-    public void execute()
-        throws TaskException
-    {
-        getLogger().warn( m_message );
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/Property.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/Property.java
deleted file mode 100644
index 94364c4..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/Property.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.core;
-
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.Composable;
-import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.components.type.TypeException;
-import org.apache.myrmidon.components.type.TypeFactory;
-import org.apache.myrmidon.components.type.TypeManager;
-import org.apache.myrmidon.framework.AbstractContainerTask;
-import org.apache.myrmidon.framework.DataType;
-
-/**
- * This is the property "task" to declare a binding of a datatype to a name.
- *
- * TODO: Determine final format of property task.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class Property
-    extends AbstractContainerTask
-    implements Configurable
-{
-    private String              m_name;
-    private Object              m_value;
-    private boolean             m_localScope     = true;
-    private TypeFactory         m_factory;
-
-    public void compose( final ComponentManager componentManager )
-        throws ComponentException
-    {
-        super.compose( componentManager );
-
-        final TypeManager typeManager = (TypeManager)componentManager.lookup( TypeManager.ROLE );
-        try { m_factory = typeManager.getFactory( DataType.ROLE ); }
-        catch( final TypeException te )
-        {
-            throw new ComponentException( "Unable to retrieve factory from TypeManager", te );
-        }
-    }
-
-    public void configure( final Configuration configuration )
-        throws ConfigurationException
-    {
-        final String[] attributes = configuration.getAttributeNames();
-        for( int i = 0; i < attributes.length; i++ )
-        {
-            final String name = attributes[ i ];
-            final String value = configuration.getAttribute( name );
-            configure( this, name, value );
-        }
-
-        final Configuration[] children = configuration.getChildren();
-        for( int i = 0; i < children.length; i++ )
-        {
-            try
-            {
-                final DataType value = (DataType)m_factory.create( children[ i ].getName() );
-                configure( value, children[ i ] );
-                setValue( value );
-            }
-            catch( final Exception e )
-            {
-                throw new ConfigurationException( "Unable to set datatype", e );
-            }
-        }
-    }
-
-    public void setName( final String name )
-    {
-        m_name = name;
-    }
-
-    public void setValue( final Object value )
-        throws TaskException
-    {
-        if( null != m_value )
-        {
-            throw new TaskException( "Value can not be set multiple times" );
-        }
-
-        m_value = value;
-    }
-
-    public void setLocalScope( final boolean localScope )
-    {
-        m_localScope = localScope;
-    }
-
-    public void execute()
-        throws TaskException
-    {
-        if( null == m_name )
-        {
-            throw new TaskException( "Name must be specified" );
-        }
-
-        if( null == m_value )
-        {
-            throw new TaskException( "Value must be specified" );
-        }
-
-        if( m_localScope )
-        {
-            getContext().setProperty( m_name, m_value );
-        }
-        else
-        {
-            getContext().setProperty( m_name, m_value, TaskContext.PARENT );
-        }
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToByteConverter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToByteConverter.java
deleted file mode 100644
index 23724ca..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToByteConverter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.core;
-
-import org.apache.avalon.framework.context.Context;
-import org.apache.myrmidon.converter.AbstractConverter;
-import org.apache.myrmidon.converter.ConverterException;
-
-/**
- * String to byte converter
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class StringToByteConverter
-    extends AbstractConverter
-{
-    public StringToByteConverter()
-    {
-        super( String.class, Byte.class );
-    }
-
-    public Object convert( final Object original, final Context context )
-        throws ConverterException
-    {
-        try { return new Byte( (String)original ); }
-        catch( final NumberFormatException nfe )
-        {
-            throw new ConverterException( "Error formatting object", nfe );
-        }
-
-    }
-}
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToClassConverter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToClassConverter.java
deleted file mode 100644
index 9db44f1..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToClassConverter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.core;
-
-import org.apache.avalon.framework.context.Context;
-import org.apache.myrmidon.converter.AbstractConverter;
-import org.apache.myrmidon.converter.ConverterException;
-
-/**
- * String to class converter
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class StringToClassConverter
-    extends AbstractConverter
-{
-    public StringToClassConverter()
-    {
-        super( String.class, Class.class );
-    }
-
-    public Object convert( final Object original, final Context context )
-        throws ConverterException
-    {
-        //TODO: Should we use ContextClassLoader here???
-        try { return Class.forName( (String)original ); }
-        catch( final Exception e )
-        {
-            throw new ConverterException( "Error converting to class type", e );
-        }
-    }
-}
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToDoubleConverter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToDoubleConverter.java
deleted file mode 100644
index ce392e1..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToDoubleConverter.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.core;
-
-import org.apache.avalon.framework.context.Context;
-import org.apache.myrmidon.converter.AbstractConverter;
-import org.apache.myrmidon.converter.ConverterException;
-
-/**
- * String to double converter
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class StringToDoubleConverter
-    extends AbstractConverter
-{
-    public StringToDoubleConverter()
-    {
-        super( String.class, Double.class );
-    }
-
-    public Object convert( final Object original, final Context context )
-        throws ConverterException
-    {
-        try { return new Double( (String)original ); }
-        catch( final NumberFormatException nfe )
-        {
-            throw new ConverterException( "Error formatting object", nfe );
-        }
-    }
-}
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToFileConverter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToFileConverter.java
deleted file mode 100644
index ddcb3d7..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToFileConverter.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.core;
-
-import java.io.File;
-import org.apache.avalon.framework.context.Context;
-import org.apache.myrmidon.api.TaskContext;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.converter.AbstractConverter;
-import org.apache.myrmidon.converter.ConverterException;
-
-/**
- * String to file converter
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class StringToFileConverter
-    extends AbstractConverter
-{
-    public StringToFileConverter()
-    {
-        super( String.class, File.class );
-    }
-
-    public Object convert( final Object original, final Context context )
-        throws ConverterException
-    {
-        try
-        {
-            final TaskContext taskContext = (TaskContext)context;
-            return taskContext.resolveFile( (String)original );
-        }
-        catch( final TaskException te )
-        {
-            throw new ConverterException( "Error resolving file during conversion", te );
-        }
-    }
-}
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToFloatConverter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToFloatConverter.java
deleted file mode 100644
index 90f68e8..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToFloatConverter.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.core;
-
-import org.apache.avalon.framework.context.Context;
-import org.apache.myrmidon.converter.AbstractConverter;
-import org.apache.myrmidon.converter.ConverterException;
-
-/**
- * String to float converter
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class StringToFloatConverter
-    extends AbstractConverter
-{
-    public StringToFloatConverter()
-    {
-        super( String.class, Float.class );
-    }
-
-    public Object convert( final Object original, final Context context )
-        throws ConverterException
-    {
-        try { return new Float( (String)original ); }
-        catch( final NumberFormatException nfe )
-        {
-            throw new ConverterException( "Error formatting object", nfe );
-        }
-    }
-}
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToIntegerConverter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToIntegerConverter.java
deleted file mode 100644
index a840270..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToIntegerConverter.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.core;
-
-import org.apache.avalon.framework.context.Context;
-import org.apache.myrmidon.converter.AbstractConverter;
-import org.apache.myrmidon.converter.ConverterException;
-
-/**
- * String to integer converter.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class StringToIntegerConverter
-    extends AbstractConverter
-{
-    public StringToIntegerConverter()
-    {
-        super( String.class, Integer.class );
-    }
-
-    public Object convert( final Object original, final Context context )
-        throws ConverterException
-    {
-        try { return new Integer( (String)original ); }
-        catch( final NumberFormatException nfe )
-        {
-            throw new ConverterException( "Error formatting object", nfe );
-        }
-    }
-}
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToLongConverter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToLongConverter.java
deleted file mode 100644
index 5d24994..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToLongConverter.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.core;
-
-import org.apache.avalon.framework.context.Context;
-import org.apache.myrmidon.converter.AbstractConverter;
-import org.apache.myrmidon.converter.ConverterException;
-
-/**
- * String to long converter
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class StringToLongConverter
-    extends AbstractConverter
-{
-    public StringToLongConverter()
-    {
-        super( String.class, Long.class );
-    }
-
-    public Object convert( final Object original, final Context context )
-        throws ConverterException
-    {
-        try { return new Long( (String)original ); }
-        catch( final NumberFormatException nfe )
-        {
-            throw new ConverterException( "Error formatting object", nfe );
-        }
-    }
-}
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToShortConverter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToShortConverter.java
deleted file mode 100644
index 17b7061..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToShortConverter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.core;
-
-import org.apache.avalon.framework.context.Context;
-import org.apache.myrmidon.converter.AbstractConverter;
-import org.apache.myrmidon.converter.ConverterException;
-
-/**
- * String to short converter
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class StringToShortConverter
-    extends AbstractConverter
-{
-    public StringToShortConverter()
-    {
-        super( String.class, Short.class );
-    }
-
-    public Object convert( final Object original, final Context context )
-        throws ConverterException
-    {
-        try { return new Short( (String)original ); }
-        catch( final NumberFormatException nfe )
-        {
-            throw new ConverterException( "Error formatting object", nfe );
-        }
-
-    }
-}
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToURLConverter.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToURLConverter.java
deleted file mode 100644
index 9325cab..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/core/StringToURLConverter.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.core;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.apache.avalon.framework.context.Context;
-import org.apache.myrmidon.converter.AbstractConverter;
-import org.apache.myrmidon.converter.ConverterException;
-
-/**
- * String to url converter
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class StringToURLConverter
-    extends AbstractConverter
-{
-    public StringToURLConverter()
-    {
-        super( String.class, URL.class );
-    }
-
-    public Object convert( final Object original, final Context context )
-        throws ConverterException
-    {
-        try { return new URL( (String)original ); }
-        catch( final MalformedURLException mue )
-        {
-            throw new ConverterException( "Error formatting object", mue );
-        }
-
-    }
-}
-
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/runtime/ConverterDef.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/runtime/ConverterDef.java
deleted file mode 100644
index feb2ee9..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/runtime/ConverterDef.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.runtime;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.Composable;
-import org.apache.myrmidon.api.AbstractTask;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.components.converter.ConverterRegistry;
-import org.apache.myrmidon.components.type.DefaultTypeFactory;
-import org.apache.myrmidon.components.type.TypeManager;
-import org.apache.myrmidon.converter.Converter;
-
-/**
- * Task to define a converter.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class ConverterDef
-    extends AbstractTask
-    implements Composable
-{
-    private String              m_sourceType;
-    private String              m_destinationType;
-    private File                m_lib;
-    private String              m_classname;
-    private ConverterRegistry   m_converterRegistry;
-    private TypeManager         m_typeManager;
-
-    public void compose( final ComponentManager componentManager )
-        throws ComponentException
-    {
-        m_converterRegistry = (ConverterRegistry)componentManager.lookup( ConverterRegistry.ROLE );
-        m_typeManager = (TypeManager)componentManager.lookup( TypeManager.ROLE );
-    }
-
-    public void setLib( final File lib )
-    {
-        m_lib = lib;
-    }
-
-    public void setClassname( final String classname )
-    {
-        m_classname = classname;
-    }
-
-    public void setSourceType( final String sourceType )
-    {
-        m_sourceType = sourceType;
-    }
-
-    public void setDestinationType( final String destinationType )
-    {
-        m_destinationType = destinationType;
-    }
-
-    public void execute()
-        throws TaskException
-    {
-        if( null == m_classname )
-        {
-            throw new TaskException( "Must specify classname parameter" );
-        }
-        else if( null == m_sourceType )
-        {
-            throw new TaskException( "Must specify the source-type parameter" );
-        }
-        else if( null == m_destinationType )
-        {
-            throw new TaskException( "Must specify the destination-type parameter" );
-        }
-        else if( null == m_lib )
-        {
-            throw new TaskException( "Must specify the lib parameter" );
-        }
-
-        try
-        {
-            m_converterRegistry.registerConverter( m_classname, m_sourceType, m_destinationType );
-
-            final URL url = m_lib.toURL();
-            final DefaultTypeFactory factory = new DefaultTypeFactory( new URL[] { url } );
-            factory.addNameClassMapping( m_classname, m_classname );
-
-            m_typeManager.registerType( Converter.ROLE, m_classname, factory );
-        }
-        catch( final Exception e )
-        {
-            throw new TaskException( "Failed to register converter " + m_classname, e );
-        }
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/runtime/Facility.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/runtime/Facility.java
deleted file mode 100644
index 85cee6d..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/runtime/Facility.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.runtime;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.Composable;
-import org.apache.myrmidon.api.AbstractTask;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.components.aspect.AspectManager;
-import org.apache.myrmidon.components.type.TypeFactory;
-import org.apache.myrmidon.components.type.TypeException;
-import org.apache.myrmidon.components.type.TypeManager;
-import org.apache.myrmidon.aspects.AspectHandler;
-import org.apache.myrmidon.framework.AbstractContainerTask;
-
-/**
- * Task that definesMethod to register a single converter.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class Facility
-    extends AbstractContainerTask
-    implements Composable, Configurable 
-{
-    private String              m_namespace;
-    private AspectHandler       m_aspectHandler;
-
-    private AspectManager       m_aspectManager;
-    private TypeFactory         m_factory;
-    
-    public void compose( final ComponentManager componentManager )
-        throws ComponentException
-    {
-        super.compose( componentManager );
-
-        m_aspectManager = (AspectManager)componentManager.lookup( AspectManager.ROLE );
-        
-        final TypeManager typeManager = (TypeManager)componentManager.lookup( TypeManager.ROLE );
-        try { m_factory = typeManager.getFactory( AspectHandler.ROLE ); }
-        catch( final TypeException te )
-        {
-            throw new ComponentException( "Unable to retrieve factory from TypeManager", te );
-        }
-    }
-
-    public void configure( final Configuration configuration )
-        throws ConfigurationException
-    {
-        final String[] attributes = configuration.getAttributeNames();
-        for( int i = 0; i < attributes.length; i++ )
-        {
-            final String name = attributes[ i ];
-            final String value = configuration.getAttribute( name );
-            configure( this, name, value );
-        }
-
-        final Configuration[] children = configuration.getChildren();
-
-        if( 1 == children.length ) 
-        {
-            try
-            {
-                m_aspectHandler = (AspectHandler)m_factory.create( children[ 0 ].getName() );
-            }
-            catch( final Exception e )
-            {
-                throw new ConfigurationException( "Failed to create aspect handler of type '" + 
-                                                  children[ 0 ].getName() + "'", e );
-            }
-            
-            configure( m_aspectHandler, children[ 0 ] );
-        }
-        else
-        {
-            throw new ConfigurationException( "Expected one sub-element to " + 
-                                              "configure facility" );
-        }
-    }
-
-    public void setNamespace( final String namespace )
-    {
-        m_namespace = namespace;
-    }
-
-    public void execute()
-        throws TaskException
-    {
-        if( null == m_namespace )
-        {
-            throw new TaskException( "Must specify namespace parameter" );
-        }
-
-        m_aspectManager.addAspectHandler( m_namespace, m_aspectHandler );
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/runtime/Import.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/runtime/Import.java
deleted file mode 100644
index 0709c34..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/runtime/Import.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.runtime;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.apache.avalon.framework.component.ComponentException;
-import org.apache.avalon.framework.component.ComponentManager;
-import org.apache.avalon.framework.component.Composable;
-import org.apache.myrmidon.api.AbstractTask;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.components.deployer.Deployer;
-import org.apache.myrmidon.components.deployer.DeploymentException;
-
-/**
- * Task to import a tasklib.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class Import
-    extends AbstractTask
-    implements Composable
-{
-    private File        m_lib;
-    private Deployer    m_deployer;
-
-    public void compose( final ComponentManager componentManager )
-        throws ComponentException
-    {
-        m_deployer = (Deployer)componentManager.lookup( Deployer.ROLE );
-    }
-
-    public void setLib( final File lib )
-    {
-        m_lib = lib;
-    }
-
-    public void execute()
-        throws TaskException
-    {
-        if( null == m_lib )
-        {
-            throw new TaskException( "Must specify lib parameter" );
-        }
-
-        try
-        {
-            m_deployer.deploy( m_lib );
-        }
-        catch( final DeploymentException de )
-        {
-            throw new TaskException( "Error importing tasklib", de );
-        }
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/runtime/TypeDef.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/runtime/TypeDef.java
deleted file mode 100644
index 99b744a..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/runtime/TypeDef.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.runtime;
-
-import org.apache.myrmidon.api.Task;
-import org.apache.myrmidon.framework.AbstractTypeDef;
-
-/**
- * Task to define a type.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class TypeDef
-    extends AbstractTypeDef
-{
-    private String     m_type;
-
-    public void setType( final String type )
-    {
-        m_type = type;
-    }
-
-    protected String getTypeName()
-    {
-        return m_type;
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/selftest/ConfigurationTest.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/selftest/ConfigurationTest.java
deleted file mode 100644
index bae0d0e..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/selftest/ConfigurationTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.selftest;
-
-import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.myrmidon.api.AbstractTask;
-import org.apache.myrmidon.api.TaskException;
-import org.apache.myrmidon.framework.AbstractContainerTask;
-
-/**
- * This is to test self interpretation of configuration.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class ConfigurationTest
-    extends AbstractContainerTask
-    implements Configurable
-{
-    private String              m_message;
-
-    public void configure( final Configuration configuration )
-        throws ConfigurationException
-    {
-        final String message = configuration.getAttribute( "message" );
-        final Object object = resolve( message );
-
-        if( object instanceof String )
-        {
-            m_message = (String)object;
-        }
-        else
-        {
-            m_message = object.toString();
-        }
-    }
-
-    public void execute()
-        throws TaskException
-    {
-        getLogger().warn( m_message );
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/selftest/ContentTest.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/selftest/ContentTest.java
deleted file mode 100644
index 6daf69a..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/selftest/ContentTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.selftest;
-
-import org.apache.myrmidon.api.AbstractTask;
-import org.apache.myrmidon.api.TaskException;
-
-/**
- * This is to test whether content is added.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class ContentTest
-    extends AbstractTask
-{
-    public void addContent( final Integer value )
-    {
-        getLogger().warn( "Integer content: " + value );
-    }
-
-    /*
-      public void addContent( final String blah )
-      {
-      System.out.println( "String content: " + blah );
-      }
-    */
-
-    public void execute()
-        throws TaskException
-    {
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/selftest/PrimitiveTypesTest.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/selftest/PrimitiveTypesTest.java
deleted file mode 100644
index 576e5e2..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/selftest/PrimitiveTypesTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.selftest;
-
-import org.apache.myrmidon.api.AbstractTask;
-import org.apache.myrmidon.api.TaskException;
-
-/**
- * Test conversion of all the primitive types.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class PrimitiveTypesTest
-    extends AbstractTask
-{
-    public void setInteger( final Integer value )
-    {
-        getLogger().warn( "setInteger( " + value + " );" );
-    }
-
-    public void setInteger2( final int value )
-    {
-        getLogger().warn( "setInteger2( " + value + " );" );
-    }
-
-    public void setShort( final Short value )
-    {
-        getLogger().warn( "setShort( " + value + " );" );
-    }
-
-    public void setShort2( final short value )
-    {
-        getLogger().warn( "setShort2( " + value + " );" );
-    }
-
-    public void setByte( final Byte value )
-    {
-        getLogger().warn( "setByte( " + value + " );" );
-    }
-
-    public void setByte2( final byte value )
-    {
-        getLogger().warn( "setByte2( " + value + " );" );
-    }
-
-    public void setLong( final Long value )
-    {
-        getLogger().warn( "setLong( " + value + " );" );
-    }
-
-    public void setLong2( final long value )
-    {
-        getLogger().warn( "setLong2( " + value + " );" );
-    }
-
-    public void setFloat( final Float value )
-    {
-        getLogger().warn( "setFloat( " + value + " );" );
-    }
-
-    public void setFloat2( final float value )
-    {
-        getLogger().warn( "setFloat2( " + value + " );" );
-    }
-
-    public void setDouble( final Double value )
-    {
-        getLogger().warn( "setDouble( " + value + " );" );
-    }
-
-    public void setDouble2( final double value )
-    {
-        getLogger().warn( "setDouble2( " + value + " );" );
-    }
-
-    public void setString( final String value )
-    {
-        getLogger().warn( "setString( " + value + " );" );
-    }
-
-    public void execute()
-        throws TaskException
-    {
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/selftest/SubElementTest.java b/proposal/myrmidon/src/java/org/apache/myrmidon/libs/selftest/SubElementTest.java
deleted file mode 100644
index c42c155..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/libs/selftest/SubElementTest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.libs.selftest;
-
-import org.apache.myrmidon.api.AbstractTask;
-import org.apache.myrmidon.api.TaskException;
-
-/**
- * Test sub-elements addition.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class SubElementTest
-    extends AbstractTask
-{
-    public static final class Beep
-    {
-        public void setMessage( final String string )
-        {
-            System.out.println( string );
-        }
-    }
-
-    public Beep createCreateBeep()
-    {
-        System.out.println( "createCreateBeep()" );
-        return new Beep();
-    }
-
-    public void addAddBeep( final Beep beep )
-    {
-        System.out.println( "addBeeper(" + beep + ");" );
-    }
-
-    public void execute()
-        throws TaskException
-    {
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/listeners/DefaultProjectListener.java b/proposal/myrmidon/src/java/org/apache/myrmidon/listeners/DefaultProjectListener.java
deleted file mode 100644
index c2ddc5f..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/listeners/DefaultProjectListener.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.listeners;
-
-import org.apache.avalon.framework.ExceptionUtil;
-
-/**
- * Default listener that emulates the old ant listener notifications.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public class DefaultProjectListener
-    implements ProjectListener
-{
-    private String        m_prefix;
-
-    /**
-     * Notify listener of projectStarted event.
-     */
-    public void projectStarted()
-    {
-    }
-
-    /**
-     * Notify listener of projectFinished event.
-     */
-    public void projectFinished()
-    {
-    }
-
-    /**
-     * Notify listener of targetStarted event.
-     *
-     * @param targetName the name of target
-     */
-    public void targetStarted( final String targetName )
-    {
-        output( targetName + ":\n" );
-    }
-
-    /**
-     * Notify listener of targetFinished event.
-     */
-    public void targetFinished()
-    {
-    }
-
-    /**
-     * Notify listener of taskStarted event.
-     *
-     * @param taskName the name of task
-     */
-    public void taskStarted( final String taskName )
-    {
-        setPrefix( taskName );
-    }
-
-    /**
-     * Notify listener of taskFinished event.
-     */
-    public void taskFinished()
-    {
-        setPrefix( null );
-    }
-
-    /**
-     * Notify listener of log message event.
-     *
-     * @param message the message
-     */
-    public void log( String message )
-    {
-        output( message );
-    }
-
-    /**
-     * Notify listener of log message event.
-     *
-     * @param message the message
-     * @param throwable the throwable
-     */
-    public void log( String message, Throwable throwable )
-    {
-        output( message + "\n" + ExceptionUtil.printStackTrace( throwable, 5, true ) );
-    }
-
-    /**
-     * Utility class to output data.
-     * Overide in sub-classes to direct to a different destination.
-     *
-     * @param data the data
-     */
-    protected void output( final String data )
-    {
-        if( null != getPrefix() ) System.out.println( "\t[" + getPrefix() + "] " + data );
-        else System.out.println( data );
-    }
-
-    protected final String getPrefix()
-    {
-        return m_prefix;
-    }
-
-    protected final void setPrefix( final String prefix )
-    {
-        m_prefix = prefix;
-    }
-}
diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/listeners/ProjectListener.java b/proposal/myrmidon/src/java/org/apache/myrmidon/listeners/ProjectListener.java
deleted file mode 100644
index f721f50..0000000
--- a/proposal/myrmidon/src/java/org/apache/myrmidon/listeners/ProjectListener.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) The Apache Software Foundation. All rights reserved.
- *
- * This software is published under the terms of the Apache Software License
- * version 1.1, a copy of which has been included with this distribution in
- * the LICENSE file.
- */
-package org.apache.myrmidon.listeners;
-
-/**
- * The interface to implement if you want to receive
- * notification of project status.
- *
- * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
- */
-public interface ProjectListener
-{
-    /**
-     * Notify listener of projectStarted event.
-     */
-    void projectStarted();
-
-    /**
-     * Notify listener of projectFinished event.
-     */
-    void projectFinished();
-
-    /**
-     * Notify listener of targetStarted event.
-     *
-     * @param targetName the name of target
-     */
-    void targetStarted( String targetName );
-
-    /**
-     * Notify listener of targetFinished event.
-     */
-    void targetFinished();
-
-    /**
-     * Notify listener of taskStarted event.
-     *
-     * @param taskName the name of task
-     */
-    void taskStarted( String taskName );
-
-    /**
-     * Notify listener of taskFinished event.
-     */
-    void taskFinished();
-
-    /**
-     * Notify listener of log message event.
-     *
-     * @param message the message
-     */
-    void log( String message );
-
-    /**
-     * Notify listener of log message event.
-     *
-     * @param message the message
-     * @param throwable the throwable
-     */
-    void log( String message, Throwable throwable );
-}
diff --git a/proposal/myrmidon/src/make/primitive-tests.ant b/proposal/myrmidon/src/make/primitive-tests.ant
deleted file mode 100644
index 7dd3486..0000000
--- a/proposal/myrmidon/src/make/primitive-tests.ant
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
-==============================================================================
-
- Basic tests build file
-
-Authors:
- Peter Donald <donaldp@apache.org>
-
-Legal:
-  Copyright (c) 2000 The Apache Software Foundation. All Rights Reserved.
-
-==============================================================================
--->
-
-<project name="MySample" default="main" basedir=".">
-
-  <import library="selftest" />
-
-  <property name="year" value="2000"/>
-
-  <target name="main" depends="test-target" />
-
-  <target name="file-manip">
-    <file-manip-test base-directory=".">
-      <source>
-        <include value="**/*.java" />       
-      </source>
-    </file-manip-test>
-  </target>
-
-  <target name="undefined-task">
-    <echo message="About to execute task that hasn't been defined"/>
-    <echo2 message="This should have failed"/>
-  </target>
-
-  <target name="no-test-target" if="no-do-tests">
-    <echo message="No tests done here"/>
-  </target>
-
-  <target name="test-target" depends="no-test-target" unless="no-do-tests">
-
-    <echo message="Tests away"/>
-
-    <prim-test
-        integer="1"
-        integer2="2"
-        short="3"
-        short2="4"
-        long="5"
-        long2="6"
-        byte="7"
-        byte2="8"
-        string="aString"
-        float="1.0"
-        float2="2.0"
-        double="3.0"
-        double2="4.0"
-     />
-
-    <sub-elements-test>
-      <create-beep message="A string" />
-      <add-beep message="Another String" />
-    </sub-elements-test>
-
-    <conf-test message="..." />
-    
-    <content-test>123</content-test>
-    
-  </target>
-
-</project>
\ No newline at end of file
diff --git a/proposal/myrmidon/src/make/sample.ant b/proposal/myrmidon/src/make/sample.ant
deleted file mode 100644
index c4220fe..0000000
--- a/proposal/myrmidon/src/make/sample.ant
+++ /dev/null
@@ -1,112 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
-==============================================================================
-
- Sample build file
-
-Authors:
- Peter Donald <donaldp@apache.org>
-
-Legal:
-  Copyright (c) 2000 The Apache Software Foundation. All Rights Reserved.
-
-==============================================================================
--->
-
-<project name="MySample" default="main" basedir=".">
-
-  <projectref name="prim" location="primitive-tests.ant" />
-
-  <property name="year" value="2000"/>
-
-  <target name="main" depends="typedef-test, converterdef-test, datatype-test, namespace-test, ant1-tasklib-test, prim->file-manip" />
-
-  <target name="xp-deployer-test" depends="typedef-test, prim->undefined-task" />
-
-  <target name="all" depends="property-test, typedef-test, converterdef-test, ant-call-test, datatype-test, namespace-test, ant1-tasklib-test, prim->main" />
-
-<!--    
-    <register-tasklib lib="../../dist/lib/core.atl" />
--->
-
-  <target name="property-test">
-    <property name="blah" value="fred" />
-    <property name="${blah}" value="barney" />
-
-    <echo message="Doing the funky Echo with ${blah} ${fred} Year=${year}!"/>
-  </target>
-
-  <target name="typedef-test">
-    <typedef name="echo2" 
-             type="task" 
-             classname="org.apache.myrmidon.libs.core.Echo" 
-             lib="../../dist/lib/core.atl" />
-
-    <echo2 message="Luke to Echo base. Can you hear me?"/>
-  </target>
-
-  <target name="converterdef-test">
-    <converterdef classname="org.apache.myrmidon.libs.core.StringToClassConverter"
-                  source-type="java.lang.String"
-                  destination-type="java.lang.Class"
-                  lib="../../dist/lib/core.atl" />
-  </target> 
-
-  <target name="ant-call-test">
-    <!-- test elided until we decide scope and necessity of ant-call -->
-    <echo message="AntCall test elided until we decide scope and necessity of ant-call"/>
-<!--
-    <ant-call target="ant-call-test-target">
-      <param name="blah" value="blah-value" />
-    </ant-call>
--->
-  </target>
-
-  <target name="ant-call-test-target">
-    <echo message="This should fail ...."/>
-    <echo message="${blah}"/>
-    <echo message="Whoa - it no fail. You used ant-call to call me and set param blah!"/>
-  </target>
-
-  <target name="datatype-test">
-    <property name="foo">
-      <pattern value="*.java"/>
-    </property>
-
-    <pattern id="foo2" value="*.java" if="..." />
-
-    <echo message="foo=${foo}" />
-    <echo message="foo2=${foo2}" />
-  </target>
-
-  <target name="namespace-test">
-
-    <!-- ant and doc are built in namespaces -->
-    <echo ant:fail-on-error="true" message="Some random message">
-      <doc:description>
-        Test case for aspects
-      </doc:description>
-      <ant:some-element some-attribute="blah"/>
-    </echo>
-
-    <!-- load facility for blee: namespace -->
-    <facility namespace="blee">
-      <noop/>
-    </facility>
-
-    <echo blee:some-param="blah" message="Blee namespace test successful!"/>
-
-  </target>
-
-  <target name="ant1-tasklib-test">
-
-    <ant1-tasklib prefix="a1-" lib="../../dist/lib/ant1-compat.jar"/>
-
-    <a1-echo message="Boo!" />
-    <a1-mkdir dir="../../dist/test"/>
-    <a1-copy file="../../tools/lib/ant.jar" tofile="../../dist/test/ant1-compat.jar" />
-
-  </target>
-
-</project>
\ No newline at end of file
diff --git a/proposal/myrmidon/src/make/template-simple.ati b/proposal/myrmidon/src/make/template-simple.ati
deleted file mode 100644
index ba52461..0000000
--- a/proposal/myrmidon/src/make/template-simple.ati
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-
-<?xsl-params location="template-simple.properties"?>
-<?xsl-param name="bar" value="baz"?>
-<?xsl-stylesheet href="template-simple.xsl"?>
-
-<project default="main" basedir=".">
-
-  <target name="main">
-    <property name="year" value="2000"/>
-
-    <echo message="Before template"/>
-    <echo-template msg="Template echo 1!" />
-    <echo-template msg="Template echo 2!" />
-    <echo-template msg="Template echo 3!" />
-    <echo message="After template"/>
-  </target>
-
-</project>
\ No newline at end of file
diff --git a/proposal/myrmidon/src/make/template-simple.properties b/proposal/myrmidon/src/make/template-simple.properties
deleted file mode 100644
index 1d401e8..0000000
--- a/proposal/myrmidon/src/make/template-simple.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-# Here is sample property file
-foo=bar
diff --git a/proposal/myrmidon/src/make/template-simple.xsl b/proposal/myrmidon/src/make/template-simple.xsl
deleted file mode 100644
index 4c1e879..0000000
--- a/proposal/myrmidon/src/make/template-simple.xsl
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-  <xsl:template match="echo-template">
-    <echo message="This is an example of how to use a template to expand" />
-    <echo message="a single element into a list of tasks to do. In this" />
-    <echo message="example it is largely a case of echoing an attribute" />
-    <echo message="ie. msg='{@msg}' and embeddding an ant variable ${{year}}" />
-  </xsl:template>
-
-  <xsl:template match="@*|node()">
-    <xsl:copy>
-      <xsl:apply-templates select="@*"/>
-      <xsl:apply-templates/>
-    </xsl:copy>
-  </xsl:template>
-
-</xsl:stylesheet>
\ No newline at end of file
diff --git a/proposal/myrmidon/src/manifest/ant-manifest.mf b/proposal/myrmidon/src/manifest/ant-manifest.mf
deleted file mode 100644
index 2e9ea8b..0000000
--- a/proposal/myrmidon/src/manifest/ant-manifest.mf
+++ /dev/null
@@ -1,3 +0,0 @@
-Manifest-Version: 1.0
-Main-Class: org.apache.myrmidon.launcher.Main
-Created-By: Apache Ant Project
\ No newline at end of file
diff --git a/proposal/myrmidon/src/manifest/ant1-ant-descriptor.xml b/proposal/myrmidon/src/manifest/ant1-ant-descriptor.xml
deleted file mode 100644
index bddae2c..0000000
--- a/proposal/myrmidon/src/manifest/ant1-ant-descriptor.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<ant-lib>
-  <types>
-    <task name="ant1-tasklib" classname="org.apache.myrmidon.libs.ant1.Ant1Tasklib" />
-  </types>
-</ant-lib>
\ No newline at end of file
diff --git a/proposal/myrmidon/src/manifest/builtin-ant-descriptor.xml b/proposal/myrmidon/src/manifest/builtin-ant-descriptor.xml
deleted file mode 100644
index 8674d02..0000000
--- a/proposal/myrmidon/src/manifest/builtin-ant-descriptor.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<ant-lib>
-
-  <types>
-
-    <listener name="default" classname="org.apache.myrmidon.listeners.DefaultProjectListener"/>
-    <aspect name="noop" classname="org.apache.myrmidon.aspects.NoopAspectHandler"/>
-    <project-builder name="ant" classname="org.apache.myrmidon.components.builder.DefaultProjectBuilder"/>
-    <project-builder name="ati" classname="org.apache.myrmidon.components.builder.ATIProjectBuilder"/>
-
-    <!-- basic tasks/datatypes/coverters required in most environments -->
-    <task name="pattern" classname="org.apache.myrmidon.framework.TypeInstanceTask" />
-    <data-type name="pattern" classname="org.apache.myrmidon.framework.Pattern" />
-
-  </types>
-
-</ant-lib>
\ No newline at end of file
diff --git a/proposal/myrmidon/src/manifest/builtin-ant-roles.xml b/proposal/myrmidon/src/manifest/builtin-ant-roles.xml
deleted file mode 100644
index d16b547..0000000
--- a/proposal/myrmidon/src/manifest/builtin-ant-roles.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<roles>
-  <role shorthand="task"             name="org.apache.myrmidon.api.Task"/>
-  <role shorthand="data-type"        name="org.apache.myrmidon.framework.DataType"/>
-  <role shorthand="listener"         name="org.apache.myrmidon.listeners.ProjectListener"/>
-  <role shorthand="aspect"           name="org.apache.myrmidon.aspects.AspectHandler"/>
-  <role shorthand="project-builder"  name="org.apache.myrmidon.components.builder.ProjectBuilder"/>
-</roles>
\ No newline at end of file
diff --git a/proposal/myrmidon/src/manifest/core-ant-descriptor.xml b/proposal/myrmidon/src/manifest/core-ant-descriptor.xml
deleted file mode 100644
index 4f34ebe..0000000
--- a/proposal/myrmidon/src/manifest/core-ant-descriptor.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<ant-lib>
-  
-  <types>
-
-    <!-- basic tasks/datatypes/coverters required in most environments -->
-    <task name="echo" classname="org.apache.myrmidon.libs.core.Echo" />
-    <task name="property" classname="org.apache.myrmidon.libs.core.Property" />
-
-  </types>
-  
-  <converters>
-
-    <converter classname="org.apache.myrmidon.libs.core.StringToFileConverter" 
-               source="java.lang.String" 
-               destination="java.io.File" />
-    <converter classname="org.apache.myrmidon.libs.core.StringToLongConverter" 
-               source="java.lang.String" 
-               destination="java.lang.Long" />
-    <converter classname="org.apache.myrmidon.libs.core.StringToIntegerConverter" 
-               source="java.lang.String" 
-               destination="java.lang.Integer" />
-    <converter classname="org.apache.myrmidon.libs.core.StringToShortConverter" 
-               source="java.lang.String" 
-               destination="java.lang.Short" />
-    <converter classname="org.apache.myrmidon.libs.core.StringToByteConverter" 
-               source="java.lang.String" 
-               destination="java.lang.Byte" />
-    <converter classname="org.apache.myrmidon.libs.core.StringToDoubleConverter" 
-               source="java.lang.String" 
-               destination="java.lang.Double" />
-    <converter classname="org.apache.myrmidon.libs.core.StringToFloatConverter" 
-               source="java.lang.String" 
-               destination="java.lang.Float" />
-    <converter classname="org.apache.myrmidon.libs.core.StringToClassConverter" 
-               source="java.lang.String" 
-               destination="java.lang.Class" />
-    <converter classname="org.apache.myrmidon.libs.core.StringToURLConverter" 
-               source="java.lang.String" 
-               destination="java.net.URL" />
-
-  </converters>
-
-</ant-lib>
\ No newline at end of file
diff --git a/proposal/myrmidon/src/manifest/myrmidon-manifest.mf b/proposal/myrmidon/src/manifest/myrmidon-manifest.mf
deleted file mode 100644
index 82a5fbf..0000000
--- a/proposal/myrmidon/src/manifest/myrmidon-manifest.mf
+++ /dev/null
@@ -1,3 +0,0 @@
-Manifest-Version: 1.0
-Main-Class: org.apache.myrmidon.frontends.CLIMain
-Created-By: Apache Ant Project
diff --git a/proposal/myrmidon/src/manifest/runtime-ant-descriptor.xml b/proposal/myrmidon/src/manifest/runtime-ant-descriptor.xml
deleted file mode 100644
index 3d9f5d4..0000000
--- a/proposal/myrmidon/src/manifest/runtime-ant-descriptor.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<ant-lib>
-  
-  <types>
-    <!-- core tasks for operation -->
-    <task name="facility" classname="org.apache.myrmidon.libs.runtime.Facility" />
-    <task name="typedef" classname="org.apache.myrmidon.libs.runtime.TypeDef" />
-    <task name="converterdef" classname="org.apache.myrmidon.libs.runtime.ConverterDef" />
-    <task name="import" classname="org.apache.myrmidon.libs.runtime.Import" />
-    <!--<task name="ant-call" classname="org.apache.myrmidon.libs.runtime.AntCall" />-->
-  </types>
-
-</ant-lib>
\ No newline at end of file
diff --git a/proposal/myrmidon/src/manifest/selftest-ant-descriptor.xml b/proposal/myrmidon/src/manifest/selftest-ant-descriptor.xml
deleted file mode 100644
index c6ce854..0000000
--- a/proposal/myrmidon/src/manifest/selftest-ant-descriptor.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<ant-lib> 
-  <types>
-    <!-- tasks to test operation of engine -->
-    <task name="prim-test" classname="org.apache.myrmidon.libs.selftest.PrimitiveTypesTest" />
-    <task name="sub-elements-test" classname="org.apache.myrmidon.libs.selftest.SubElementTest" />
-    <task name="conf-test" classname="org.apache.myrmidon.libs.selftest.ConfigurationTest" />
-    <task name="content-test" classname="org.apache.myrmidon.libs.selftest.ContentTest" />
-    <task name="file-manip-test" classname="org.apache.myrmidon.libs.selftest.FileManipulationTest" />
-  </types>
-</ant-lib>
\ No newline at end of file
diff --git a/proposal/myrmidon/src/script/ant b/proposal/myrmidon/src/script/ant
deleted file mode 100644
index 1870972..0000000
--- a/proposal/myrmidon/src/script/ant
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/sh
-
-if [ -f $HOME/.antrc ] ; then 
-  . $HOME/.antrc
-fi
-
-# Cygwin support.
-if [ "$OSTYPE" == "cygwin32" ] || [ "$OSTYPE" = "cygwin" ]; then
-  if [ ! "$JAVA_HOME" = "" ]; then
-    JAVA_HOME=`cygpath --path --unix $JAVA_HOME`
-  fi
-fi
-
-## resolve links - $0 may be a link to ant's home
-PRG=$0
-progname=`basename $0`
-  
-while [ -h "$PRG" ] ; do
-  ls=`ls -ld "$PRG"`
-  link=`expr "$ls" : '.*-> \(.*\)$'`
-  if expr "$link" : '.*/.*' > /dev/null; then
-    PRG="$link"
-  else
-    PRG="`dirname $PRG`/$link"
-  fi
-done
-  
-ANT_HOME=`dirname "$PRG"`/..
-
-if [ "$JAVA_HOME" == "" ] ; then
-
-  echo "Warning: JAVA_HOME environment variable is not set."
-  echo "  If build fails because sun.* classes could not be found"
-  echo "  you will need to set the JAVA_HOME environment variable"
-  echo "  to the installation directory of java."
-  if [ "$JAVACMD" = "" ] ; then 
-    JAVACMD=java
-  fi
-else
-  if [ "$JAVACMD" = "" ] ; then 
-    JAVACMD=$JAVA_HOME/bin/java
-  fi
-fi
-
-$JAVACMD $ANT_OPTS -jar $ANT_HOME/lib/ant.jar $@
diff --git a/proposal/myrmidon/src/script/ant.bat b/proposal/myrmidon/src/script/ant.bat
deleted file mode 100644
index b0269bd..0000000
--- a/proposal/myrmidon/src/script/ant.bat
+++ /dev/null
@@ -1,64 +0,0 @@
-@echo off
-
-if exist "%HOME%\antrc_pre.bat" call "%HOME%\antrc_pre.bat"
-
-if not "%OS%"=="Windows_NT" goto start
-
-rem %~dp0 is name of current script under NT
-set DEFAULT_ANT_HOME=%~dp0
-
-rem : operator works similar to make : operator
-set DEFAULT_ANT_HOME=%DEFAULT_ANT_HOME:\bin\=%
-
-if "%ANT_HOME%"=="" set ANT_HOME=%DEFAULT_ANT_HOME%
-set DEFAULT_ANT_HOME=
-
-:start
-
-if not "%ANT_HOME%" == "" goto ant_home_found
-
-echo.
-echo Warning: ANT_HOME environment variable is not set.
-echo   This needs to be set for Win9x as it's command prompt 
-echo   scripting bites
-echo.
-goto end
-
-:ant_home_found
-
-if not "%JAVA_HOME%" == "" goto javaCmdSetup
-
-echo.
-echo Warning: JAVA_HOME environment variable is not set.
-echo   If build fails because sun.* classes could not be found
-echo   you will need to set the JAVA_HOME environment variable
-echo   to the installation directory of java.
-echo.
-
-rem hope that there is java command in path
-if "%JAVACMD%" == "" set JAVACMD=java
-goto argSetup
-
-rem if JAVA_HOME is set then make sure we use that java exe
-:javaCmdSetup
-if "%JAVACMD%" == "" set JAVACMD=%JAVA_HOME%\bin\java
-
-:argSetup
-
-set ANT_CMD_LINE_ARGS=
-
-rem Slurp all args...
-:setupArgs
-if "%0" == "" goto doneArgs
-set ANT_CMD_LINE_ARGS=%ANT_CMD_LINE_ARGS% %1
-shift
-goto setupArgs
-
-:doneArgs
-rem Mmmmmm tasty - finished slurping args
-
-%JAVACMD% %ANT_OPTS% -jar %ANT_HOME%\lib\ant.jar %ANT_CMD_LINE_ARGS%
-
-:end
-if exist "%HOME%\antrc_post.bat" call "%HOME%\antrc_post.bat"
-set ANT_CMD_LINE_ARGS=
\ No newline at end of file
diff --git a/proposal/myrmidon/src/script/antRun b/proposal/myrmidon/src/script/antRun
deleted file mode 100644
index f0a18f1..0000000
--- a/proposal/myrmidon/src/script/antRun
+++ /dev/null
@@ -1,9 +0,0 @@
-#! /bin/sh
-
-# Args: DIR command
-cd "$1"
-CMD="$2"
-shift
-shift
-
-exec $CMD "$@"
diff --git a/proposal/myrmidon/src/script/antRun.bat b/proposal/myrmidon/src/script/antRun.bat
deleted file mode 100644
index fe0d1ce..0000000
--- a/proposal/myrmidon/src/script/antRun.bat
+++ /dev/null
@@ -1,18 +0,0 @@
-@echo off
-
-cd %1
-set ANT_RUN_CMD=%2
-shift
-shift
-
-set PARAMS=
-:loop
-if "%1" == "" goto runCommand
-set PARAMS=%PARAMS% %1
-shift
-goto loop
-
-:runCommand
-echo %ANT_RUN_CMD% %PARAMS%
-%ANT_RUN_CMD% %PARAMS%
-
diff --git a/proposal/myrmidon/src/xdocs/design.html b/proposal/myrmidon/src/xdocs/design.html
deleted file mode 100644
index 2b3cee0..0000000
--- a/proposal/myrmidon/src/xdocs/design.html
+++ /dev/null
@@ -1,224 +0,0 @@
-
-<html>
-<head>
-    <title>Myrmidon: The Ant2.0 Proposal</title>
-</head>
-<body BGCOLOR="#ffffff">
-
-<center>
-  <h1>Myrmidon: The Ant2.0 Proposal</h1>
-  <i>by Peter Donald <a href="mailto:donaldp@apache.org">&lt;donaldp@apache.org&gt;</a></i>
-</center>
-
-<br />
-
-<div align="center">
-  <table border="0" width="60%">
-    <tr>
-      <td width="100%">
-        <i>Myrmidon is a proposal for <a href="http://jakarta.apache.org/ant">Ant</a> 2.0, a 
-        java based build tool. Unlike other proposals it was specifically designed as 
-        both a tool a an API library that can be reused in other domains.</i>
-      </td>
-    </tr>
-  </table>
-</div>
-
-<br />
-
-<h3>To do and what not to do</h3>
-
-<blockquote>
-  <p>
-    There is a number of issues that this proposal addresses and a number of issues that 
-    have been deliberately elided. The focus is currently at the lower levels - namely
-    the task execution engine, the notion of contexts/scopes, loading of tasklets, 
-    datatypes and converters etc. While it does implement a Project engine API is still 
-    being discussed on ant-dev and this proposal just adopts Ant1.x's model until a better
-    understanding is gained of what is required.
-  </p>
-
-  <p>
-    Neither this document nor the proposal is intended to be a vision statement. Rather it 
-    is a description of how it could be implemented based on commonly accepted needs 
-    requested on ant lists and discussed by ant-dev. The vision statement is more 
-    strongly associated with the Project API and extentions (CJAN, import project trees,
-    preprocessing via xslt/css/whatever, templating etc). And thus is not addressed here.
-  </p>
-</blockquote>
-
-<h3>The Prime Directive: Execute tasks</h3>
-
-<blockquote>
-  <p>
-    One of the primary concerns of ant is providing a task execution environment (TEE). 
-    The TEE provides a number of services to tasks. The TEE manages the lifecycle of 
-    the tasks. This includes providing the tasks with a logger instance, context 
-    information and access to peer components. The lifecycle also involves executing 
-    init(), run() and dispose() methods at appropriate times.
-  </p>
-
-  <p>
-    Instead of reinventing the wheel this proposal instead reuses the Avalon framework
-    that already provides facilities for many of the concepts required. It already has 
-    interfaces/classes to model concepts of context, logger, containers etc.
-  </p>
-  
-  <p>
-    One of the requirements identified was the need for dynamic interpretation and 
-    instantiation of tasks. To implement this there needs to be an abstraction layer 
-    between task object instances and the objects that are manipulated by projects 
-    and tools outside tasklet API. This abstraction has the same requirements as 
-    Configuration objects in Avalon and thus the task proxies are represented by 
-    Avalons Configuration object.
-  </p>
-</blockquote>
-
-<h3>SOC, IOC and the alphabet soup</h3>
-
-<blockquote>
-  <p>
-    The design of Myrmidon follows many of the design patterns found in Avalon. The strongest
-    influence cna be seen from the meta-patterns; Separation of Concerns (SOC) and Inversion of 
-    Control (IOC). 
-  </p>
-
-  <p>
-    SOC essentially is a design pattern used to separate the system accroding to relevent
-    dimensions. (SOC is often called multi-dimensional SOC). The definition of "relevent"
-    is domain specific and in our case there is a number of dimensions. For instance you 
-    will notice that there is a separation between project, tasklet, conversion and datatype 
-    functionality. Where in Ant1.x these were only partially separated or tightly coupled 
-    there is now decoupling. This separation allows easy reuse of parts in other projects. ie 
-    It is now extremely easy to reuse the tasklet api in other tools (such as Installshield 
-    type apps or Cron-like deamons etc).
-  </p>
-
-  <p>
-    Another dimension in which myrmidon is separated is by users. For instance there is 
-    a separation between engine code and client code. The client code is the code used by 
-    those who implement the components. For instance tasklet developers only have to 
-    look at client code for tasklets and never look at implementation of engine.
-  </p>
-
-  <p>
-    Inversion of Control (IOC) aka the Holywood Principle (Don't call us - we'll call you) is
-    another pattern applied within Myrmidon. In this pattern it is the container that provides
-    facilities and executes lifecycle by calling methods of child components. So instead of the 
-    component calling methods to lookup or create peer components or method managing it's 
-    own lifecycle the container is responsible for these functions. 
-  </p>
-
-  <p>
-    These approach should be familiar to a servlet or EJB developer as they are also based on 
-    SOC and IOC except they do it at a lower resolution. For more detailed explanation of 
-    these design approaches have a look at <a 
-    href="http://java.apache.org/framework/developer/index.html">
-    http://java.apache.org/framework/developer/index.html</a>.
-  </p>
-
-  <p>
-    The result of these design choices is a more flexable and reusable components.
-  </p>
-</blockquote>
-
-<h3>Enough theory - give me Nuts and Bolts</h3>
-
-<blockquote>
-  <p>
-    The code is separated into 5 different sections. These are the project, tastlet,
-    converter, datatype and frontend APIs. The project API is concerned with building 
-    and representing a project. The tasklet API is concerned with executing tasks in a 
-    particular environment. The converter API is concerned with converting instances of one
-    type into another type. The datatype API is used to register, load and instantiate 
-    instances of named datatypes. The frontend API involves instantiating and managing 
-    all the other components and making it easy to build different frontends (CLI, GUI, 
-    Servlet).
-  </p>
-
-  <p>
-    When Myrmidon is started it interacts with FrontEnd API. It aquires a ProjectBuilder 
-    instance from FrontEnd API and uses it to build a project. It then aquires a 
-    ProjectEngine instance from FrontEnd again and uses it to execute the created project.
-    This project will first execute the implicit target (which includes all of properties 
-    outside target element). And then execute the default or specified target. Each target 
-    executes it's dependencies first and then checks it's condition to see if it should 
-    execute itself. Each target contains a list of tasks (in the form of Configuraiton 
-    objects). These are passed to the tasklet API that instantiates and executes the tasks. 
-    The tasklet API instantiates the relevent task and then applies rules to use the 
-    Configuration object to configure the task. In some cases this involves resolving 
-    properties and converting values to the correct type required by task. The convertion
-    is done by Converter API. Properties are associations between a name and a value, the 
-    types of the value aremanaged by the DataType API and accessed via the Property task.
-  </p>
-
-  <p>
-    Now if you wanted to change a certain component of the system - lets say the ProjectBuilder
-    component. You instead want to use a component that you wrote yourself that builds a project
-    with the result of a xslt + xml -> xml process so that you can use static templating. The 
-    way to do this would be to set the property "ant.comp.builder" to 
-    "com.biz.ant.MyXSLTProjectBuilder" before handing the properties to the FrontEnd API. The 
-    FrontEnd API would then wire together the components appropriately and the same process as 
-    documented above would be used. Other components can be replaced in a similar manner. For 
-    a full list of properties that can be set see the default FrontEnd implementation.
-  </p>
-
-  <p>
-    Now instead of replacing a component in the system say you wanted to add an extra task. In 
-    this case you would create a task "com.biz.ant.tasks.ProcessFile" that extends 
-    "org.apache.ant.tasklet.AbstractTasklet". You would then implement run() method to do the
-    work and and setter methods to accept parameters. The run method can throw AntException if
-    the task fails for any reason. The setter methods are in format of Ant1.x setters with one 
-    extention. The extention allows '-' characters to appear in xml names and these will be 
-    transferred into capitalisation of next character in java names. ie file-permission 
-    attribute --&gt; setFilePermission() method. After implementing this task you would have 
-    to define it in taskdef.xml of it's archive or else define it with a taskdef construct.
-  </p>
-  
-  <p>
-    In a similar method new converters and datatypes can be added to the system. For example
-    if you needed to add a TestSet datatype that held a list of test names then this would 
-    be possible. You could also add a converter that converted a list of comma separated 
-    strings into a TestSet.    
-  </p>
-
-  <p>
-    The one thing that this proposal does not address is validation concerns. You will notice
-    that the above is mainly aimed to reduce the complexity for task developers. Where in 1.x
-    you had to manage convertion manually (depending on version of Ant) and also had to explcitly
-    incorporate support for datatypes manually. The one other concern that was coded into every
-    task was validation. ie Were the correct parameters set ? It would be desirable to be able to
-    associate meta-information with the task that indicated the required parameters. This would 
-    reduce the workload on task developers even more and encourage better task structure. This 
-    is a future TODO.
-  </p>
-
-</blockquote>
-
-<h3>A Rose by any other name ...</h3>
-
-<blockquote>
-  <p>
-    The name Myrmidon is a derivation of a mythological name for some anst that were turned 
-    into soldiers by the god Zeus. It came to mean "a subordinate who executes orders 
-    unquestioningly" which seemed suitable for a task execution/build tool. A more complete
-    description stolen from <a href="http://bondi-blue.parlez.com/previous_words/myrmidon.txt">
-    http://bondi-blue.parlez.com/previous_words/myrmidon.txt</a>.
-  </p>
-
-  <quote>
-    <i>The appellation Myrmidon was derived from the Greek word "myrmex",
-    meaning ant.  According to Greek mythology, the Myrmidons were
-    transformed into humans by the god Zeus as an act of kindness to his
-    son Aeacus.  King Aeacus, captivated by a colony of ants, prayed
-    that he should receive an increase in population equal to the
-    number of ants before him.  When he awoke the next day, the ants
-    were his human subjects.  Thereafter, they were known as the
-    Myrmidons.  See "The Iliad" for Homers' account of the Myrmidons
-    during the Trojan War.</i>
-  </quote>
-
-</blockquote>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/proposal/myrmidon/tools/bin/ant b/proposal/myrmidon/tools/bin/ant
deleted file mode 100644
index 981f084..0000000
--- a/proposal/myrmidon/tools/bin/ant
+++ /dev/null
@@ -1,57 +0,0 @@
-#! /bin/sh
-
-if [ -f $HOME/.antrc ] ; then 
-  . $HOME/.antrc
-fi
-
-if [ "$ANT_HOME" = "" ] ; then
-  # try to find ANT
-  if [ -d /opt/ant ] ; then 
-    ANT_HOME=/opt/ant
-  fi
-
-  if [ -d ${HOME}/opt/ant ] ; then 
-    ANT_HOME=${HOME}/opt/ant
-  fi
-
-  ## resolve links - $0 may be a link to ant's home
-  PRG=$0
-  progname=`basename $0`
-  
-  while [ -h "$PRG" ] ; do
-    ls=`ls -ld "$PRG"`
-    link=`expr "$ls" : '.*-> \(.*\)$'`
-    if expr "$link" : '.*/.*' > /dev/null; then
-	PRG="$link"
-    else
-	PRG="`dirname $PRG`/$link"
-    fi
-  done
-  
-  ANT_HOME=`dirname "$PRG"`/..
-
-fi
-
-# Allow .antrc to specifiy flags to java cmd
-if [ "$JAVACMD" = "" ] ; then 
-  JAVACMD=java
-fi
-
-LOCALCLASSPATH=`echo $ANT_HOME/lib/*.jar | tr ' ' ':'`
-
-if [ "$CLASSPATH" != "" ] ; then
-  LOCALCLASSPATH=$LOCALCLASSPATH:$CLASSPATH
-fi
-
-if [ "$JAVA_HOME" != "" ] ; then
-  if test -f $JAVA_HOME/lib/tools.jar ; then
-    LOCALCLASSPATH=$LOCALCLASSPATH:$JAVA_HOME/lib/tools.jar
-  fi
-
-  if test -f $JAVA_HOME/lib/classes.zip ; then
-    LOCALCLASSPATH=$LOCALCLASSPATH:$JAVA_HOME/lib/classes.zip
-  fi
-fi
-
-$JAVACMD -classpath $LOCALCLASSPATH -Dant.home=${ANT_HOME} $ANT_OPTS org.apache.tools.ant.Main $@
-
diff --git a/proposal/myrmidon/tools/bin/ant.bat b/proposal/myrmidon/tools/bin/ant.bat
deleted file mode 100755
index 597475a..0000000
--- a/proposal/myrmidon/tools/bin/ant.bat
+++ /dev/null
@@ -1,36 +0,0 @@
-@echo off
-rem find ANT_HOME
-if not "%ANT_HOME%"=="" goto checkJava
-
-rem check for ant in Program Files on system drive
-if not exist "%SystemDrive%\Program Files\ant" goto checkSystemDrive
-set ANT_HOME=%SystemDrive%\Program Files\ant
-goto checkJava
-
-:checkSystemDrive
-rem check for ant in root directory of system drive
-if not exist "%SystemDrive%\ant" goto noAntHome
-set ANT_HOME=%SystemDrive%\ant
-goto checkJava
-
-:noAntHome
-echo ANT_HOME is not set and ant could not be located. Please set ANT_HOME.
-goto end
-
-:checkJava
-if "%JAVACMD%" == "" set JAVACMD=java
-
-set LOCALCLASSPATH=
-for %%i in (%ANT_HOME%\lib\*.jar) do call %ANT_HOME%\bin\lcp.bat %%i
-set LOCALCLASSPATH=%LOCALCLASSPATH%;%CLASSPATH%
-
-if "%JAVA_HOME%" == "" goto runAnt
-if exist %JAVA_HOME%\lib\tools.jar call %ANT_HOME%\bin\lcp.bat %JAVA_HOME%\lib\tools.jar
-if exist %JAVA_HOME%\lib\classes.zip call %ANT_HOME%\bin\lcp.bat %JAVA_HOME%\lib\classes.zip
-
-:runAnt
-%JAVACMD% -classpath "%LOCALCLASSPATH%" -Dant.home="%ANT_HOME%" %ANT_OPTS% org.apache.tools.ant.Main %1 %2 %3 %4 %5 %6 %7 %8 %9
-
-:end
-set LOCALCLASSPATH=
-
diff --git a/proposal/myrmidon/tools/bin/antRun b/proposal/myrmidon/tools/bin/antRun
deleted file mode 100644
index 4c38b18..0000000
--- a/proposal/myrmidon/tools/bin/antRun
+++ /dev/null
@@ -1,13 +0,0 @@
-#! /bin/sh
-
-# Args: DIR command
-cd $1
-CMD=$2
-shift
-shift
-
-if test -f $CMD.sh; then
-  CMD="sh $CMD.sh"
-fi
-
-echo $CMD $@ | sh
diff --git a/proposal/myrmidon/tools/bin/antRun.bat b/proposal/myrmidon/tools/bin/antRun.bat
deleted file mode 100755
index 08e0351..0000000
--- a/proposal/myrmidon/tools/bin/antRun.bat
+++ /dev/null
@@ -1,9 +0,0 @@
-@echo off
-
-cd %1
-set ANT_RUN_CMD=%2
-shift
-shift
-
-%ANT_RUN_CMD% %1 %2 %3 %4 %5 %6 %7 %8 %9
-
diff --git a/proposal/myrmidon/tools/bin/lcp.bat b/proposal/myrmidon/tools/bin/lcp.bat
deleted file mode 100755
index 8feb0d0..0000000
--- a/proposal/myrmidon/tools/bin/lcp.bat
+++ /dev/null
@@ -1,2 +0,0 @@
-set LOCALCLASSPATH=%LOCALCLASSPATH%;%1
-
diff --git a/proposal/myrmidon/tools/lib/ant.jar b/proposal/myrmidon/tools/lib/ant.jar
deleted file mode 100644
index 4347717..0000000
--- a/proposal/myrmidon/tools/lib/ant.jar
+++ /dev/null
Binary files differ
diff --git a/xdocs/antnews.xml b/xdocs/antnews.xml
deleted file mode 100644
index 6864e55..0000000
--- a/xdocs/antnews.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0"?>
-<document>
-
-  <properties>
-    <author email="conor@cortexebusiness.com.au">Conor MacNeill</author>
-    <author email="stefan.bodewig@epost.de">Stefan Bodewig</author>
-    <title>Ant News</title>
-  </properties>
-
-<body>
-
-  <section name="Ant 1.4 Beta">
-  <h3>Ant 1.4 Beta Available !</h3>
-  <p>The beta version of Ant 1.4 is now available for 
-     <a href="http://jakarta.apache.org/builds/jakarta-ant/release/v1.4Beta1/">
-     download</a>. If you have any feedback on the beta feel free to join the 
-     discussion on the ant-dev and ant-user mailing lists.
-     </p>
-  </section>
-
-  <section name="Ant Needs a Logo">
-    <p>Ant still doesn't have a Logo, but it sure deserves one. We've
-    put together a <a href="logos.html">page with proposed
-    logos</a>, please take a look at them and tell us what you
-    think. If you have a nice logo idea yourself, just submit it to
-    the mailing lists.</p>
-  </section>
-
-  <section name="Ant 2.0 Requirements Collected - Next is Design">
-      <p>A commented version of the collected user requirements is now
-      available <a href="/ant/ant2/features.html">here</a> - it is not
-      complete as some details still have to be defined, but it should
-      give you an idea of what Ant2 is going to look like.</p>
-
-      <p>Several details can only be decided in the light of real code
-      and prototypes.  Several people are working on prototypes (that
-      can be found in Ant's CVS module in the proposals directory) and
-      discussion is going on on the Ant-Dev mailing list.</p>
-  </section>
-
-  <section name="Best-Practices Profile of Ant at Sun&apos;s Dot-Com Builder">
-      <p>Sun has released an introductory article on Ant on their
-      Dot-Com Builder site on May&#160;30&#160;2001. See <a
-      href="http://dcb.sun.com/practices/profiles/ant.jsp">http://dcb.sun.com/practices/profiles/ant.jsp</a></p>
-  </section>
-
-  <section name="Ant 2.0 Requirements">
-    <p>Ant has been in use for quite some time and has been used in ways never conceived when it
-       was originally written. While Ant 1.x has continued to sucessfully evolve and grow, there 
-       are a number of limitations and inconsistencies that are now apparent and which need to 
-       be addressed. 
-    </p>
-    
-    <p>
-       As we continue to evolve and enhance Ant 1.x, it is now time to define what Ant 2.0 will
-       encompass. Ant 2.0 will be a major rearchitecting of Ant. It has a number of goals including:
-       <ul>
-         <li>Define the "contract" with build file writers to which Ant will be bound.</li>
-         <li>Define the "contract" between the Ant core and Task writers.</li>
-         <li>Make Ant more easily extendable by allowing additional tasks to be "dropped" in.</li>
-         <li>Allow Ant to function as a component to simplify integration with GUIs and IDEs.</li>
-         <li>Make Ant more regular and logical.</li>
-       </ul>
-       
-       It is expected that Ant 2.0 will break Ant 1.x based build files. The intention is to
-       make this the last time that will happen.
-     </p>
-     
-     <p>
-        To advance the definition of Ant, user requirements are now being accepted on the 
-        Ant-Dev mailing list. Any requirement will be accepted for consideration. The 
-        requirements are being collected into a document which is available 
-        <a href="/ant/ant2/requested-features.txt">on-line</a>. New features will be excepted 
-        until March 21st, 2001. At that time, each requirement will be discussed 
-        for inclusion in an Ant 2.0 requirement document.
-      </p>
-      
-      <p>
-        For your reference some of the goals which have shaped the development of Ant 1.x are
-        available <a href="/ant/ant2/original-specification.html">here</a>. These continue to be
-        relevant to Ant 2.0.
-      </p>
-      
-      <p>
-        If you want to shape the future of Ant, join the 
-        <a href="/site/mail.html">Ant-Dev mailing list</a> and contribute
-        your ideas.
-      </p>
-  </section>
-
-  <section name="Ant 1.3 Released">
-
-    <p>
-    Ant 1.3 has been released after going through three betas. Thanks to everyone who
-    took the time to test the beta and report bugs and enhancements.
-    </p>
-    
-    <p>You can download the release from 
-        <a href="http://jakarta.apache.org/builds/jakarta-ant/release/v1.3/">here</a>. 
-       Both source and binary releases are available in zip, tarball and RPM formats.
-    </p>
-    <p>Please report all bugs using the 
-        <a href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=Ant">Apache Bugzilla</a>
-    </p>
-
-  </section>
-
-</body>
-</document>
-
diff --git a/xdocs/external.xml b/xdocs/external.xml
deleted file mode 100644
index 86fe383..0000000
--- a/xdocs/external.xml
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0"?>
-<document>
-
-  <properties>
-    <author email="bodewig@apache.org">Stefan Bodewig</author>
-    <title>External Tools and Tasks</title>
-  </properties>
-
-  <body>
-    
-    <section name="External Tools and Tasks">
-
-      <p>This page lists external resources for Ant: tasks, IDE
-      integration tools, loggers, you name it. If you've written
-      something that should be included, please post all relevant
-      information to one of the mailing lists.</p>
-
-      <p>Nothing listed here is directly supported by the Ant
-      developers, if you encounter any problems with them, please use
-      the contact information.</p>
-
-    </section>
-
-    <section name="Tasks">
-      <subsection name="AJC">
-
-        <p><a href="http://aspectj.org">AspectJ</a> is an
-          aspect-oriented extension to Java.  This task compiles a
-          source tree using the AspectJ compiler -- AJC.</p>
-
-        <table>
-          <tr>
-            <th>Compatibility:</th>
-            <td>Ant 1.3</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://aspectj.org/dl">http://aspectj.org/dl</a></td>
-          </tr>
-          <tr>
-            <th>Contact:</th>
-            <td><a href="mailto:support@aspectj.org">support@aspectj.org</a></td>
-          </tr>
-          <tr>
-            <th>License:</th>
-            <td>Apache Software License</td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="Anakia">
-
-        <p>Actually, Anakia is more than just an Ant task, it is a an
-        XML transformation tool based on JDOM, Velocity and Ant.</p>
-
-        <table>
-          <tr>
-            <th>Compatibility:</th>
-            <td>Ant 1.2 and 1.3</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://jakarta.apache.org/velocity/anakia.html">http://jakarta.apache.org/velocity/anakia.html</a></td>
-          </tr>
-          <tr>
-            <th>Contact:</th>
-            <td><a href="http://jakarta.apache.org/site/mail2.html">Velocity mailing lists</a></td>
-          </tr>
-          <tr>
-            <th>License:</th>
-            <td>Apache Software License</td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="Checkstyle">
-
-        <p>Checkstyle is a development tool to help programmers write
-        Java code that adheres to a coding standard. Its purpose is to
-        automate the process of checking Java code, and to spare
-        humans of this boring (but important) task.</p>
-
-        <p>Checkstyle can be run via an ANT task or a command line
-        utility.</p>
-
-        <table>
-          <tr>
-            <th>Compatibility:</th>
-            <td>Ant 1.2 and 1.3</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://www.puppycrawl.com/checkstyle">http://www.puppycrawl.com/checkstyle</a></td>
-          </tr>
-          <tr>
-            <th>Contact:</th>
-            <td><a href="mailto:checkstyle@puppycrawl.com">Oliver Burn</a></td>
-          </tr>
-          <tr>
-            <th>License:</th>
-            <td>GNU General Public License</td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="Configure">
-
-        <p>Recursive build support (call ant on every package level,
-        and only build files in that package or in that package and
-        everything below) with seperation of source and output.</p>
-        
-        <p>The task generates build files in any subdirectory (except
-        for CVS-directories) for you. Only place one build.xml file in
-        the top and call target &apos;setup&apos; or
-        &apos;rescan&apos;.</p>
-
-        <table>
-          <tr>
-            <th>Compatibility:</th>
-            <td>Ant 1.2 and 1.3</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://www.dsdelft.nl/~lemval/ant/">http://www.dsdelft.nl/~lemval/ant/</a></td>
-          </tr>
-          <tr>
-            <th>Contact:</th>
-            <td><a href="mailto:lemval@dsdelft.nl">M.J.P. van Leeuwen</a></td>
-          </tr>
-          <tr>
-            <th>License:</th>
-            <td>License derived from Apache Software License</td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="J2ME Ant Tasks">
-
-        <p>There are two different sets of tasks to help build <a
-        href="http://java.sun.com/j2me/">Java 2 Platform, Micro
-        Edition</a> (J2ME) applications.</p>
-        
-        <p>This set supports CLDC and the K Virtual Machine (KVM):</p>
-
-        <table>
-          <tr>
-            <th>Compatibility:</th>
-            <td>Ant 1.3</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://www.dribin.org/dave/j2me_ant/">http://www.dribin.org/dave/j2me_ant/</a></td>
-          </tr>
-          <tr>
-            <th>Contact:</th>
-            <td><a href="mailto:drib@enteract.com">Dave Dribin</a></td>
-          </tr>
-          <tr>
-            <th>License:</th>
-            <td>Apache Software License</td>
-          </tr>
-        </table>
-
-        <p>And this set works with the J2ME Wireless Toolkit and MIDP
-        for PalmOS:</p>
-
-        <table>
-          <tr>
-            <th>Compatibility:</th>
-            <td>Ant 1.3</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://www.stampysoft.com/ant/">http://www.stampysoft.com/ant/</a></td>
-          </tr>
-          <tr>
-            <th>Contact:</th>
-            <td><a href="mailto:jeckels@stampysoft.com">Josh Eckels</a></td>
-          </tr>
-          <tr>
-            <th>License:</th>
-            <td>MIT License</td>
-          </tr>
-        </table>
-
-      </subsection>
-
-      <subsection name="TiniAnt">
-
-        <p>TiniAnt is an Ant task to support building applications for
-        the <a href="http://www.ibutton.com/TINI/">TINI</a>.</p>
-        
-        <table>
-          <tr>
-            <th>Compatibility:</th>
-            <td>Ant 1.2 and 1.3</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://tiniant.sourceforge.net/">http://tiniant.sourceforge.net/</a></td>
-          </tr>
-          <tr>
-            <th>Contact:</th>
-            <td><a href="mailto:kelly@ad1440.net">Sean Kelly</a></td>
-          </tr>
-          <tr>
-            <th>License:</th>
-            <td>BSD-like license</td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="Venus Application Publisher's (Vamp) Ant Task Suite">
-
-        <p>Venus Application Publisher's (Vamp) Ant Task Suite allows
-        you to sign and package your applications into relocatable Web
-        Archives that you can drop into your web server for
-        single-click launching using Java Web Start or into single
-        Java Archive installers that serve up their content through a
-        built-in, multi-threaded, ultra light-weight web server.</p>
-
-        <table>
-          <tr>
-            <th>Compatibility:</th>
-            <td>Ant 1.2 and 1.3</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://www.geocities.com/vamp201/ant.html">http://www.geocities.com/vamp201/ant.html</a></td>
-          </tr>
-          <tr>
-            <th>Contact:</th>
-            <td><a href="mailto:vamp201@yahoo.com">Gerald Bauer</a></td>
-          </tr>
-          <tr>
-            <th>License:</th>
-            <td>GNU General Public License</td>
-          </tr>
-        </table>
-      </subsection>
-
-    </section>
-
-    <section name="IDE/Editor Integration">
-
-      <subsection name="AntFarm">
-
-        <p>A plugin that integrates Ant into the jEdit editor.</p>
-
-        <table>
-          <tr>
-            <th>Compatibility:</th>
-            <td>bundles Ant 1.3</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://plugins.jedit.org/plugins/AntFarm">http://plugins.jedit.org/plugins/AntFarm</a></td>
-          </tr>
-          <tr>
-            <th>Contact:</th>
-            <td><a href="mailto:jedit-devel@lists.sourceforge.net">jEdit developers mailinglist</a></td>
-          </tr>
-          <tr>
-            <th>License:</th>
-            <td>Apache Software License</td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="AntRunner">
-
-        <p>An OpenTool that integrates Ant into the JBuilder IDE.</p>
-
-        <table>
-          <tr>
-            <th>Compatibility:</th>
-            <td>Ant 1.2 and 1.3</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://www.dieter-bogdoll.de/java/AntRunner/">http://www.dieter-bogdoll.de/java/AntRunner/</a></td>
-          </tr>
-          <tr>
-            <th>Contact:</th>
-            <td><a href="mailto:bogdoll@users.sourceforge.net">Dieter Bogdoll</a></td>
-          </tr>
-          <tr>
-            <th>License:</th>
-            <td>GNU General Public License</td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="AntWork">
-
-        <p>A plugin that integrates Ant into the Jext editor.</p>
-
-        <table>
-          <tr>
-            <th>Compatibility:</th>
-            <td>Ant 1.2 and 1.3</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip">ftp://jext.sourceforge.net/pub/jext/plugins/AntWork.zip</a></td>
-          </tr>
-          <tr>
-            <th>Contact:</th>
-            <td><a href="mailto:KHartlage@t-online.de">Klaus Hartlage</a></td>
-          </tr>
-          <tr>
-            <th>License:</th>
-            <td>GNU General Public License</td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="IntelliJ IDEA 2.0">
-
-        <p>Java IDE with refactoring support and Ant integration.</p>
-
-        <table>
-          <tr>
-            <th>Compatibility:</th>
-            <td>bundles Ant 1.3</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://www.intellij.com/idea/">http://www.intellij.com/idea/</a></td>
-          </tr>
-          <tr>
-            <th>Contact:</th>
-            <td><a href="mailto:support@intellij.com">support@intellij.com</a></td>
-          </tr>
-          <tr>
-            <th>License:</th>
-            <td>Commercial</td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="NetBeans / Forte for Java">
-
-        <p>A module that integrates Ant into the NetBeans or Forte for Java IDEs.</p>
-
-        <table>
-          <tr>
-            <th>Compatibility:</th>
-            <td>bundles Ant 1.3</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://ant.netbeans.org/">http://ant.netbeans.org/</a></td>
-          </tr>
-          <tr>
-            <th>Contact:</th>
-            <td><a href="mailto:nbdev@netbeans.org">nbdev@netbeans.org</a></td>
-          </tr>
-          <tr>
-            <th>License:</th>
-            <td>Sun Public License</td>
-          </tr>
-        </table>
-      </subsection>
-    </section>
-
-    <section name="Other">
-      <subsection name="CruiseControl">
-        <p>CruiseControl is a tool for setting up a continuous build
-        process.  CruiseControl provides an Ant wrapper and a set of
-        tasks to automate the checkout/build/test cycle. CruiseControl
-        also comes bundled with a servlet for viewing the status of
-        the current build, as well as previous build results.</p>
-
-        <table>
-          <tr>
-            <th>Compatibility:</th>
-            <td>Ant 1.2 and 1.3</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://cruisecontrol.sourceforge.net/">http://cruisecontrol.sourceforge.net/</a></td>
-          </tr>
-          <tr>
-            <th>Contact:</th>
-            <td><a href ='http://cruisecontrol.sourceforge.net/contact.html'>Project Mailing Lists and Administrators</a></td>
-          </tr>
-          <tr>
-            <th>License:</th>
-            <td>Release 1.0 has been licensed under the GNU General Public
-            License.  Starting with release 1.1 the license has been
-            changed to a BSD-like license.</td>
-          </tr>
-        </table>
-      </subsection>
-    </section>
-
-  </body>
-</document>
\ No newline at end of file
diff --git a/xdocs/faq.xml b/xdocs/faq.xml
deleted file mode 100644
index 932b30a..0000000
--- a/xdocs/faq.xml
+++ /dev/null
@@ -1,581 +0,0 @@
-<?xml version="1.0"?>
-<document>
-
-  <properties>
-    <author email="bodewig@apache.org">Stefan Bodewig</author>
-    <title>Frequently Asked Questions</title>
-  </properties>
-
-  <faqsection title="General">
-    <faq id="what-is-ant">
-      <question>What is Ant?</question>
-      <answer>
-        <p> Ant is a Java based build tool. In theory it is kind of
-        like &quot;make&quot; without makes wrinkles and with the full
-        portability of pure Java code.</p>
-      </answer>
-    </faq>
-
-    <faq id="ant-name">
-      <question>Why do you call it Ant?</question>
-      <answer>
-
-        <p>According to Ant&apos;s original author James Duncan
-        Davidson, the name is an acronym for &quot;Another Neat
-        Tool&quot;.</p>
-        
-        <p>Later explanations go along the lines of &quot;Ants are
-        doing an extremely good job at building things&quot; or
-        &quot;Ants are very small and can carry a weight a dozen times
-        of their own&quot; - describing what Ant is intended to
-        be.</p>
-      </answer>
-    </faq>
-
-    <faq id="history">
-      <question>Tell us a little bit about Ant&apos;s history.</question>
-      <answer>
-
-        <p>Initially Ant was part of the Tomcat code base when it was
-        donated to the Apache Software Foundation - it has been
-        created by James Duncan Davidson, who also is the original
-        author of Tomcat. Ant was there to build Tomcat, nothing
-        else.</p>
-
-        <p>Soon thereafter several open source Java projects realized
-        that Ant could solve the problems they had with makefiles.
-        Starting with the projects hosted at Jakarta and the old Java
-        Apache project, Ant spread like a virus and now is the build
-        tool of choice for a lot of projects.</p>
-
-        <p>In January 2000 Ant was moved to a separate CVS module and
-        was promoted to a project of its own, independent of
-        Tomcat.</p>
-
-        <p>The first version of Ant that was exposed a lager audience
-        was the one that shipped with Tomcat&apos;s 3.1 release on 19 April
-        2000.  This version has later been referenced to as Ant
-        0.3.1.</p>
-
-        <p>The first official release of Ant as a stand alone product was
-        Ant 1.1 released on 19 July 2000.  The complete release
-        history:</p>
-
-        <table>
-          <tr>
-            <th>Ant Version</th>
-            <th>Release Date</th>
-          </tr>
-
-          <tr>
-            <td>1.1</td>
-            <td>19 July 2000</td>
-          </tr>
-
-          <tr>
-            <td>1.2</td>
-            <td>24 October 2000</td>
-          </tr>
-
-          <tr>
-            <td>1.3</td>
-            <td>3 March 2001</td>
-          </tr>
-        </table>
-      </answer>
-    </faq>
-
-  </faqsection>
-
-  <faqsection title="Installation">
-    <faq id="no-gnu-tar">
-      <question>I get checksum errors when I try to extract the
-      <code>tar.gz</code> distribution file. Why?</question>
-      <answer>
-        <p>Ant&apos;s distribution contains file names that are longer
-        than 100 characters, which is not supported by the standard
-        tar file format. Several different implementations of tar use
-        different and incompatible ways to work around this
-        restriction.</p>
-
-        <p>Ant&apos;s &lt;tar&gt; task can create tar archives that use
-        the GNU tar extension, and this has been used when putting
-        together the distribution. If you are using a different
-        version of tar (for example, the one shipping with Solaris),
-        you cannot use it to extract the archive.</p>
-
-        <p>The solution is to either install GNU tar, which can be
-        found <a href="http://www.gnu.org/software/tar/tar.html">here</a> 
-        or use the zip archive instead (you can extract it using
-        <code>jar xf</code>).</p>
-      </answer>
-    </faq>
-  </faqsection>
-
-  <faqsection title="Using Ant">
-    <faq id="always-recompiles">
-      <question>Why does Ant always recompile all my Java files?</question>
-      <answer>
-
-        <p>In order to find out which files should be compiled, Ant
-        compares the timestamps of the source files to those of the
-        resulting <code>.class</code> files.  Opening all source files
-        to find out which package they belong to would be very
-        inefficient - instead of this, Ant expects you to place your
-        source files in a directory hierarchy that mirrors your
-        package hierarchy and to point Ant to the root of this
-        directory tree with the <code>srcdir</code> attribute.</p>
-
-        <p>Say you have <code>&lt;javac srcdir=&quot;src&quot;
-        destdir=&quot;dest&quot; /&gt;</code>.  If Ant finds a file
-        <code>src/a/b/C.java</code> it expects it to be in package
-        <code>a.b</code> so that the resulting <code>.class</code>
-        file is going to be <code>dest/a/b/C.class</code>.</p>
-
-        <p>If your setup is different, Ant&apos;s heuristic won&apos;t work and
-        it will recompile classes that are up to date.  Ant is not the
-        only tool, that expects a source tree layout like this.</p>
-
-      </answer>
-    </faq>
-
-    <faq id="passing-cli-args">
-      <question>How do I pass parameters from the command line to my
-        build file?</question>
-      <answer>
-
-        <p>Use properties: <code>ant
-        -D&lt;name&gt;=&lt;value&gt;</code> lets you define values for
-        properties.  These can then be used within your build file as
-        any normal property: <code>${&lt;name&gt;}</code> will put in
-        <code>&lt;value&gt;</code>.</p>
-
-      </answer>
-    </faq>
-
-    <faq id="jikes-switches">
-      <question>How can I use Jikes specific command line
-        switches?</question>
-
-      <answer>
-
-        <p>A couple of switches are supported via magic
-          properties:</p>
-
-        <table>
-          <tr>
-            <th>switch</th>
-            <th>property</th>
-            <th>default</th>
-          </tr>
-
-          <tr>
-            <td>+E</td>
-            <td>build.compiler.emacs</td>
-            <td>false == not set</td>
-          </tr>
-
-          <tr>
-            <td>-nowarn</td>
-            <td>build.compiler.warnings</td>
-            <td>true == not set</td>
-          </tr>
-
-          <tr>
-            <td>+P</td>
-            <td>build.compiler.pedantic</td>
-            <td>false == not set</td>
-          </tr>
-
-          <tr>
-            <td>+F</td>
-            <td>build.compiler.fulldepend</td>
-            <td>false == not set</td>
-          </tr>
-        </table>
-
-      </answer>
-    </faq>
-
-    <faq id="shell-redirect-1">
-      <question>How do I include a &lt; character in my command line arguments?</question>
-      <answer>
-        <p>The short answer is "Use <code>&amp;lt;</code>".</p>
-
-        <p>The long answer is, that this probably won't do what you
-        want anyway, see <a href="#shell-redirect-2">the next
-        section</a>.</p>
-      </answer>
-    </faq>
-
-    <faq id="shell-redirect-2">
-      <question>How do I redirect standard input or standard output
-        in the <code>&lt;exec&gt;</code> task?</question>
-      <answer>
-        <p>Say you want to redirect the standard input stream of the
-        <code>cat</code> command to read from a file, something
-        like</p>
-
-        <source><![CDATA[
-shell-prompt> cat < foo
-]]></source>
-        
-        <p>and try to translate it into</p>
-
-        <source><![CDATA[
-<exec executable="cat">
-  <arg value="&lt;" />
-  <arg value="foo" />
-</exec>
-]]></source>
-
-        <p>This will not do what you expect.  The input-redirection is
-        performed by your shell, not the command itself, so this
-        should read:</p>
-        
-        <source><![CDATA[
-<exec executable="/bin/sh">
-  <arg value="-c" />
-  <arg value="cat &lt; foo" />
-</exec>
-]]></source>
-
-        <p>Note, that you must use the <code>value</code> attribute of
-        <code>&lt;arg&gt;</code> in the last element.</p>
-
-      </answer>
-    </faq>
-
-  </faqsection>
-
-  <faqsection title="Ant and IDEs/Editors">
-    <faq id="integration">
-      <question>Is Ant supported by my IDE/Editor?</question>
-      <answer>
-        <p>See the <a href="external.html#IDE%47Editor+Integration">section 
-        on IDE integration</a> on our external tools page.</p>
-      </answer>
-    </faq>
-
-    <faq id="emacs-mode">
-      <question>Why doesn&apos;t (X)Emacs/vi/MacOS X's project builder
-      parse the error messages generated by Ant correctly?</question>
-      <answer>
-
-        <p>Ant adds a &quot;banner&quot; with the name of the current
-        task in front of all messages - and there are no built-in
-        regular expressions in your Editor that would account for
-        this.</p>
-
-        <p>You can disable this banner by invoking Ant with the
-        <code>-emacs</code> switch. Alternatively you can add the
-        following snippet to your <code>.emacs</code> to make Emacs
-        understand Ant&apos;s output.</p>
-
-        <source><![CDATA[
-(require 'compile)
-(setq compilation-error-regexp-alist
-  (append (list 
-     ;; works for jikes
-     '("^\\s-*\\[[^]]*\\]\\s-*\\(.+\\):\\([0-9]+\\):\\([0-9]+\\):[0-9]+:[0-9]+:" 1 2 3)
-     ;; works for javac 
-     '("^\\s-*\\[[^]]*\\]\\s-*\\(.+\\):\\([0-9]+\\):" 1 2))
-  compilation-error-regexp-alist))
-]]></source>
-
-        <p>Yet another alternative that preserves most of Ant's
-        formatting is to pipe Ant's output through the following Perl
-        script by Dirk-Willem van Gulik:</p>
-
-        <source><![CDATA[
-#!/usr/bin/perl
-#
-# May 2001 dirkx@apache.org - remove any
-# [foo] lines from the output; keeping
-# spacing more or less there.
-#
-$|=1;
-while(<STDIN>) {
-	if (s/^(\s+)\[(\w+)\]//) {
-		if ($2 ne $last) {
-			print "$1\[$2\]";
-			$s = ' ' x length($2);
-		} else {
-			print "$1 $s ";
-		};
-		$last = $2;
-	};
-	print;
-};
-]]></source>
-
-      </answer>
-    </faq>
-  </faqsection>
-
-  <faqsection title="Advanced issues">
-    <faq id="dtd">
-      <question>Is there a DTD that I can use to validate my build
-      files?</question>
-
-      <answer>
-
-        <p>An incomplete DTD can be created by the
-          <code>&lt;antstructure&gt;</code> task - but this one
-          has a few problems:</p>
-
-          <ul>
-            <li>It doesn&apos;t know about required attributes.  Only
-            manual tweaking of this file can help here.</li>
-          
-            <li>It is not complete - if you add new tasks via
-            <code>&lt;taskdef&gt;</code> it won&apos;t know about it.  See
-            <a href="http://www.sdv.fr/pages/casa/html/ant-dtd.en.html">this
-            page</a> by Michel Casabianca for a solution to this
-            problem.  Note that the DTD you can download at this page
-            is based on Ant 0.3.1.</li>
-
-            <li>It may even be an invalid DTD.  As Ant allows tasks
-            writers to define arbitrary elements, name collisions will
-            happen quite frequently - if your version of Ant contains
-            the optional <code>&lt;test&gt;</code> and
-            <code>&lt;junit&gt;</code> tasks, there are two XML
-            elements named test (the task and the nested child element
-            of <code>&lt;junit&gt;</code>) with different attribute
-            lists.  This problem cannot be solved, DTDs don&apos;t give a
-            syntax rich enough to support this.</li>
-          </ul>
-      </answer>
-    </faq>
-
-    <faq id="xml-entity-include">
-      <question>How do I include an XML snippet in my build file?</question>
-      <answer>
-        <p>You can use XML&apos;s way of including external files and let
-        the parser do the job for Ant:</p>
-
-        <source><![CDATA[
-<?xml version="1.0"?>
-
-<!DOCTYPE project [
-    <!ENTITY common SYSTEM "file:./common.xml">
-]>
-
-<project name="test" default="test" basedir=".">
-
-  <target name="setup">
-    ...
-  </target>
-
-  &common;
-
-  ...
-
-</project>
-]]></source>
-
-        <p>will literally include the contents of <code>common.xml</code> where
-        you&apos;ve placed the <code>&amp;common;</code> entity.</p>
-
-        <p>In combination with a DTD, this would look like this:</p>
-
-        <source><![CDATA[
-<!DOCTYPE project PUBLIC "-//ANT//DTD project//EN" "file:./ant.dtd" [
-   <!ENTITY include SYSTEM "file:./header.xml">
-]>
-]]></source>
-      </answer>
-    </faq>
-
-    <faq id="mail-logger">
-      <question>How do I send an email with the result of my build
-        process?</question>
-
-      <answer>
-
-        <p>You can use a custom BuildListener, that sends out an email
-        in the buildFinished() method.  Will Glozer
-        &lt;will.glozer@jda.com&gt; has written such a listener based
-        on <a href="http://java.sun.com/products/javamail/">JavaMail</a>, 
-        the source is</p>
-
-        <source><![CDATA[
-import java.io.*;
-import java.util.*;
-import javax.mail.*;
-import javax.mail.internet.*;
-import org.apache.tools.ant.*;
-
-/**
- * A simple listener that waits for a build to finish and sends an email
- * of the results.  The settings are stored in "monitor.properties" and
- * are fairly self explanatory.
- *
- * @author      Will Glozer
- * @version     1.05a 09/06/2000
- */
-public class BuildMonitor implements BuildListener {
-    protected Properties props;
-
-    /**
-     * Create a new BuildMonitor.
-     */
-    public BuildMonitor() throws Exception {
-        props = new Properties();
-        InputStream is = getClass().getResourceAsStream("monitor.properties");
-        props.load(is);
-        is.close();
-    }
-
-    public void buildStarted(BuildEvent e) {
-    }
-
-    /**
-     * Determine the status of the build and the actions to follow, now that
-     * the build has completed.
-     *
-     * @param       e       Event describing the build tatus.
-     */
-    public void buildFinished(BuildEvent e) {
-        Throwable th = e.getException();
-        String status = (th != null) ? "failed" : "succeeded";
-        
-        try {
-            String key = "build." + status;
-            if (props.getProperty(key + ".notify").equalsIgnoreCase("false")) {
-                    return;
-            }
-            
-            Session session = Session.getDefaultInstance(props, null);
-
-            MimeMessage message = new MimeMessage(session);
-            message.addRecipients(Message.RecipientType.TO, parseAddresses(
-                props.getProperty(key + ".email.to")));
-            message.setSubject(props.getProperty(key + ".email.subject"));
-
-            BufferedReader br = new BufferedReader(new FileReader(
-                props.getProperty("build.log")));
-            StringWriter sw = new StringWriter();
-            
-            String line = br.readLine();
-            while (line != null) {
-                sw.write(line);
-                sw.write("\n");
-                line = br.readLine();
-            }
-            br.close();
-            
-            message.setText(sw.toString(), "UTF-8");
-            sw.close();
-            
-            Transport transport = session.getTransport();
-            transport.connect();
-            transport.send(message);
-            transport.close();
-        } catch (Exception ex) {
-            System.out.println("BuildMonitor failed to send email!");
-            ex.printStackTrace();
-        }
-    }
-
-    /**
-     * Parse a comma separated list of internet email addresses.
-     *
-     * @param       s       The list of addresses.
-     * @return      Array of Addresses.
-     */
-    protected Address[] parseAddresses(String s) throws Exception {
-        StringTokenizer st = new StringTokenizer(s, ",");
-        Address[] addrs = new Address[st.countTokens()];
-
-        for (int i = 0; i < addrs.length; i++) {
-            addrs[i] = new InternetAddress(st.nextToken());
-        }
-        return addrs;
-    }
-
-    public void messageLogged(BuildEvent e) {
-    }
-
-    public void targetStarted(BuildEvent e) {
-    }
-
-    public void targetFinished(BuildEvent e) {
-    }
-
-    public void taskStarted(BuildEvent e) {        
-    }
-
-    public void taskFinished(BuildEvent e) {
-    }
-}
-]]></source>
-          
-      <p>With a <code>monitor.properties</code> like this</p>
-
-        <source><![CDATA[
-# configuration for build monitor
-
-mail.transport.protocol=smtp
-mail.smtp.host=<host>
-mail.from=Will Glozer <will.glozer@jda.com>
-
-build.log=build.log
-
-build.failed.notify=true
-build.failed.email.to=will.glozer@jda.com
-build.failed.email.subject=Nightly build failed!
-
-build.succeeded.notify=true
-build.succeeded.email.to=will.glozer@jda.com
-build.succeeded.email.subject=Nightly build succeeded!
-]]></source>
-
-        <p><code>monitor.properties</code> should be placed right next
-        to your compiled <code>BuildMonitor.class</code>.  To use it,
-        invoke Ant like</p>
-        
-        <source><![CDATA[
-ant -listener BuildMonitor
-]]></source>
-
-        <p>Make sure that <code>mail.jar</code> from JavaMail and
-        <code>activation.jar</code> from the 
-        <a href="http://java.sun.com/products/javabeans/glasgow/jaf.html">Java
-        Beans Activation Framework</a> in your <code>CLASSPATH</code>.</p>
-
-      </answer>
-    </faq>
-
-  </faqsection>
-
-  <faqsection title="Known problems">
-    <faq id="remove-cr">
-      <question>&lt;chmod&gt; or &lt;exec&gt; don&apos;t work in Ant
-        1.3 on Unix</question>
-      <answer>
-
-        <p>The <code>antRun</code> script in <code>ANT_HOME/bin</code>
-        has DOS instead of Unix line endings, you must remove the
-        carriage return characters from this file.  This can be done by
-        using Ant&apos;s &lt;fixcrlf&gt; task or something like:</p>
-
-        <source><![CDATA[
-tr -d '\r' < $ANT_HOME/bin/antRun > /tmp/foo
-mv /tmp/foo $ANT_HOME/bin/antRun
-]]></source>
-      </answer>
-    </faq>
-
-    <faq id="javadoc-cannot-execute">
-      <question>JavaDoc failed: java.io.IOException: javadoc: cannot execute</question>
-      <answer>
-        <p>There is a bug in the Solaris reference implementation of
-        the JDK, see <a href="http://developer.java.sun.com/developer/bugParade/bugs/4230399.html">http://developer.java.sun.com/developer/bugParade/bugs/4230399.html</a>.
-        This also appears to be true under Linux, moving the JDK to
-        the front of the PATH fixes the problem.</p>
-      </answer>
-    </faq>
-  </faqsection>
-
-</document>
diff --git a/xdocs/index.xml b/xdocs/index.xml
deleted file mode 100644
index 0d285f6..0000000
--- a/xdocs/index.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0"?>
-<document>
-
-  <properties>
-    <author email="conor@cortexebusiness.com.au">Conor MacNeill</author>
-    <author email="stefan.bodewig@epost.de">Stefan Bodewig</author>
-    <title>Ant</title>
-  </properties>
-
-<body>
-
-  <section name="Ant 1.4 Beta">
-  <h3>Ant 1.4 Beta Available !</h3>
-  <p>The beta version of Ant 1.4 is now available for 
-     <a href="http://jakarta.apache.org/builds/jakarta-ant/release/v1.4Beta1/">
-     download</a>. If you have any feedback on the beta feel free to join the 
-     discussion on the ant-dev and ant-user mailing lists.
-     </p>
-  </section>
-
-  <section name="Ant">
-
-<p>
-Ant is a Java based build tool. In theory it is kind of like make without
-make's wrinkles.
-</p>
-
-<p>
-Why another build tool when there is already make, gnumake, nmake, jam, and
-others? Because all of those tools have limitations that Ant's original author
-couldn't live with when developing software across multiple platforms. Make-like
-tools are inherently shell based. They evaluate a set of dependencies and then
-execute commands not unlike what you would issue on a shell. This means that you
-can easily extend these tools by using or writing any program for the OS that
-you are working on. However, this also means that you limit yourself to the OS,
-or at least the OS type such as Unix, that you are working on.
-</p>
-
-<p>
-Makefiles are inherently evil as well. Anybody who has worked on them for any
-time has run into the dreaded tab problem. &quot;Is my command not executing
-because I have a space in front of my tab!!!&quot; said the original author of
-Ant way too many times. Tools like Jam took care of this to a great degree, but
-still use yet another format to use and remember.
-</p>
-
-<p>
-Ant is different. Instead of a model where it is extended with shell based
-commands, it is extended using Java classes. Instead of writing shell commands,
-the configuration files are XML based calling out a target tree where various
-tasks get executed. Each task is run by an object which implements a particular
-Task interface.
-</p>
-
-<p>
-Granted, this removes some of the expressive power that is inherent by being
-able to construct a shell command such as `find . -name foo -exec rm {}` but it
-gives you the ability to be cross platform. To work anywhere and everywhere. And
-hey, if you really need to execute a shell command, Ant has an exec rule that
-allows different commands to be executed based on the OS that it is executing
-on.
-</p>
-
-  </section>
-  
-  <section name="Documentation">
-  
-<p>
-You can view the documentation for the most recent release 
-<a href="manual/index.html">online</a>
-</p>
-
-<p>
-Comprehensive documentation is included in the source and binary distribtions. 
-</p>
-
-  </section>
-
-  <section name="Latest Release">
-    <p>
-    You can download the latest release:
-    </p>
-    <ul>
-        <li><a href="http://jakarta.apache.org/builds/jakarta-ant/release/v1.3/bin/">
-                Download the binary release</a></li>
-        <li><a href="http://jakarta.apache.org/builds/jakarta-ant/release/v1.3/src/">
-                Download the source release</a></li>
-        <li><a href="http://jakarta.apache.org/builds/jakarta-ant/release/v1.3/rpms/">
-                Download source and binary RPMs</a></li>
-    </ul>  
-  </section>
-  
-  <section name="Nightly Builds">
-    <p>
-    If you wish to use the latest Ant features, you can try downloading a nightly 
-    build from <a href="http://jakarta.apache.org/builds/jakarta-ant/nightly/">here</a>
-    </p>
-    
-  </section>
-  
-  <section name="Towards Ant2">
-    <p>
-    We are currently hashing out design details for Ant2. Please
-    read the latest <a href="antnews.html">Ant news</a> for more details.
-    </p>
-  </section>
-  
-  <section name="Get Involved">
-<ul>
-<li><a href="http://jakarta.apache.org/getinvolved/getinvolvedindex.html">Get Involved</a></li>
-<li><a href="http://jakarta.apache.org/getinvolved/mail.html">Join Mailing Lists</a></li>
-<li><a href="http://marc.theaimsgroup.com/?l=ant-dev&amp;r=1&amp;w=2">Search the Dev Mailing List</a>
-</li>
-<li><a href="http://marc.theaimsgroup.com/?l=ant-user&amp;r=1&amp;w=2">Search the User Mailing List</a>
-</li>
-</ul>
-
-
-
-  </section>
-
-</body>
-</document>
-
diff --git a/xdocs/logos.xml b/xdocs/logos.xml
deleted file mode 100644
index 012fc48..0000000
--- a/xdocs/logos.xml
+++ /dev/null
@@ -1,226 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<document>
-
-  <properties>
-    <author email="stefan.bodewig@epost.de">Stefan Bodewig</author>
-    <title>Ant Logo Proposals</title>
-  </properties>
-
-<body>
-
-  <section name="Ant needs a Logo">
-    <p>One of the requirements for Ant2 is, that Ant should have a
-    logo.  You can find the logos that have been proposed to the Ant
-    mailing lists on this page.</p>
-
-    <p>Tell us what you think of them (yes, <em>Powered by</em> should
-    better be <em>Built by</em>).</p>
-
-    <table>
-      <tr>
-        <th>Entry</th><th>Author</th><th></th>
-      </tr>
-      <tr>
-        <td>1</td>
-        <td>Bill J. Fellows (Bill.J.Fellows at mail.sprint.com)</td>
-        <td><img src="images/antLogo1.png" /></td>
-      </tr>
-      <tr>
-        <td>2</td>
-        <td>Bill J. Fellows (Bill.J.Fellows at mail.sprint.com)</td>
-        <td><img src="images/antLogo2.png" /></td>
-      </tr>
-      <tr>
-        <td>3</td>
-        <td>Christoph Wilhelms (Christoph.Wilhelms at t-online.de)</td>
-        <td><img src="images/ant_logo.gif" /></td>
-      </tr>
-      <tr>
-        <td>4</td>
-        <td>Christoph Wilhelms (Christoph.Wilhelms at t-online.de)</td>
-        <td><img src="images/ant2_logo.gif" /></td>
-      </tr>
-      <tr>
-        <td>5</td>
-        <td>Warner Onstine (warner at warneronstine.com)</td>
-        <td><img src="images/ant-logo2.gif" /></td>
-      </tr>
-      <tr>
-        <td>6</td>
-        <td>Chris Coleman (chris.coleman at csfb.com)</td>
-        <td><img src="images/coleman.gif" /></td>
-      </tr>
-      <tr>
-        <td>7</td>
-        <td>Stefan Lecho (Stefan.Lecho at iconmedialab.com)</td>
-        <td><img src="images/lecho.jpg" /></td>
-      </tr>
-      <tr>
-        <td>8</td>
-        <td>David Trogdon (DTrogdon at orgtek.com)</td>
-        <td><img src="images/trogdon.gif" /></td>
-      </tr>
-      <tr>
-        <td>9</td>
-        <td>Mirko Klemm (Mirko.Klemm at t-online.de)</td>
-        <td><img src="http://www.mutantenzoo.de/antlogo-400.png" /></td>
-      </tr>
-      <tr>
-        <td>10</td>
-        <td>Ryan P Ripley (ryan.ripley at bms.com)</td>
-        <td><img src="images/ripley.jpg" /></td>
-      </tr>
-      <tr>
-        <td>11</td>
-        <td>Christoph Wilhelms (Christoph.Wilhelms at t-online.de)</td>
-        <td><img src="images/wilhelms3.gif" /></td>
-      </tr>
-      <tr>
-        <td>12</td>
-        <td>Shane Petroff (shane at hayward.ca)</td>
-        <td><img src="images/petroff.jpg" /></td>
-      </tr>
-      <tr>
-        <td>13</td>
-        <td>Jim Cheesman (jchees at msl.es)</td>
-        <td><img src="images/cheesman.jpg" /></td>
-      </tr>
-      <tr>
-        <td>14</td>
-        <td>Kevin Duggins (Kevin.Duggins at definityhealth.com)</td>
-        <td><img src="images/duggins.gif" /></td>
-      </tr>
-      <tr>
-        <td>15</td>
-        <td>Kevin Duggins (Kevin.Duggins at definityhealth.com)</td>
-        <td><img src="images/duggins2.gif" /></td>
-      </tr>
-      <tr>
-        <td>16</td>
-        <td>Justin Ransom (Justin.Ransom at rubus.com)</td>
-        <td><img src="images/hughes1.gif" /></td>
-      </tr>
-      <tr>
-        <td>17</td>
-        <td>Justin Ransom (Justin.Ransom at rubus.com)</td>
-        <td><img src="images/hughes2.gif" /></td>
-      </tr>
-      <tr>
-        <td>18</td>
-        <td>Martin Schlömer (martin.schloemer at phase26.de)</td>
-        <td><img src="images/schloemer.gif" /></td>
-      </tr>
-      <tr>
-        <td>19</td>
-        <td>Martin Schlömer (martin.schloemer at phase26.de)</td>
-        <td><img src="images/schloemer2.gif" /></td>
-      </tr>
-      <tr>
-        <td>20</td>
-        <td>Design Services Team at Hewlett Packard (blair_hughes at hp.com></td>
-        <td><img src="images/blairhughes_ant.jpg"/></td>
-      </tr>
-      <tr>
-        <td>21</td>
-        <td>Design Services Team at Hewlett Packard (blair_hughes at hp.com></td>
-        <td><img src="images/blairhughes_ant2.jpg"/></td>
-      </tr>
-      <tr>
-        <td>22</td>
-        <td>Design Services Team at Hewlett Packard (blair_hughes at hp.com></td>
-        <td><img src="images/blairhughes_ant3.jpg"/></td>
-      </tr>
-      <tr>
-        <td>23</td>
-        <td>Design Services Team at Hewlett Packard (blair_hughes at hp.com></td>
-        <td><img src="images/blairhughes_ant4.jpg"/></td>
-      </tr>
-      <tr>
-        <td>24</td>
-        <td>Design Services Team at Hewlett Packard (blair_hughes at hp.com></td>
-        <td><img src="images/blairhughes_ant5.jpg"/></td>
-      </tr>
-      <tr>
-        <td>25</td>
-        <td>Design Services Team at Hewlett Packard (blair_hughes at hp.com></td>
-        <td><img src="images/blairhughes_ant6.jpg"/></td>
-      </tr>
-      <tr>
-        <td>26</td>
-        <td>Design Services Team at Hewlett Packard (blair_hughes at hp.com></td>
-        <td><img src="images/blairhughes_germ1.jpg"/></td>
-      </tr>
-      <tr>
-        <td>27</td>
-        <td>Design Services Team at Hewlett Packard (blair_hughes at hp.com></td>
-        <td><img src="images/blairhughes_germ2.jpg"/></td>
-      </tr>
-      <tr>
-        <td>28</td>
-        <td>Design Services Team at Hewlett Packard (blair_hughes at hp.com></td>
-        <td><img src="images/blairhughes_germ3.jpg"/></td>
-      </tr>
-      <tr>
-        <td>29</td>
-        <td>Design Services Team at Hewlett Packard (blair_hughes at hp.com></td>
-        <td><img src="images/blairhughes_germ4.jpg"/></td>
-      </tr>
-      <tr>
-        <td>30</td>
-        <td>Design Services Team at Hewlett Packard (blair_hughes at hp.com></td>
-        <td><img src="images/blairhughes_germ5.jpg"/></td>
-      </tr>
-      <tr>
-        <td>31</td>
-        <td>Design Services Team at Hewlett Packard (blair_hughes at hp.com></td>
-        <td><img src="images/blairhughes_germ6.jpg"/></td>
-      </tr>
-      <tr>
-        <td>32</td>
-        <td>Design Services Team at Hewlett Packard (blair_hughes at hp.com></td>
-        <td><img src="images/blairhughes_keis1.jpg"/></td>
-      </tr>
-      <tr>
-        <td>33</td>
-        <td>Design Services Team at Hewlett Packard (blair_hughes at hp.com></td>
-        <td><img src="images/blairhughes_keis2.jpg"/></td>
-      </tr>
-      <tr>
-        <td>34</td>
-        <td>Design Services Team at Hewlett Packard (blair_hughes at hp.com></td>
-        <td><img src="images/blairhughes_keis3.jpg"/></td>
-      </tr>
-      <tr>
-        <td>35</td>
-        <td>Design Services Team at Hewlett Packard (blair_hughes at hp.com></td>
-        <td><img src="images/blairhughes_keis4.jpg"/></td>
-      </tr>
-      <tr>
-        <td>36</td>
-        <td>Design Services Team at Hewlett Packard (blair_hughes at hp.com></td>
-        <td><img src="images/blairhughes_keis5.jpg"/></td>
-      </tr>
-      <tr>
-        <td>37</td>
-        <td>Alicia Kolesnikova</td>
-        <td><img src="images/kolesnikova.gif"/></td>
-      </tr>
-      <tr>
-        <td>38</td>
-        <td>Matthias Becker (matthias.becker at media4content.de)</td>
-        <td><img src="images/becker1.gif"/></td>
-      </tr>
-      <tr>
-        <td>39</td>
-        <td>Matthias Becker (matthias.becker at media4content.de)</td>
-        <td><img src="images/becker2.gif"/></td>
-      </tr>
-      <tr>
-        <td>40</td>
-        <td>Matthias Becker (matthias.becker at media4content.de)</td>
-        <td><img src="images/becker3.gif"/></td>
-      </tr>
-     </table>
-  </section>
-</body>
-</document>
\ No newline at end of file
diff --git a/xdocs/problems.xml b/xdocs/problems.xml
deleted file mode 100644
index 45e12ae..0000000
--- a/xdocs/problems.xml
+++ /dev/null
@@ -1,180 +0,0 @@
-<?xml version="1.0"?>
-<document>
-
-  <properties>
-    <author email="conor@apache.org">Conor MacNeill</author>
-    <title>Having Problems?</title>
-  </properties>
-
-  <body>
-    <section name="Having Problems?">
-      <p>If you are having problems with Ant, this page details some steps you can take
-         to try and resolve the problem. If you can't resolve the problem then this page will help
-         you collect some of the relevant information to provide a bug report. This information will help 
-         the Ant developers understand and resolve the problem. Of course, not all of the steps here will 
-         make sense for every problem you encounter. These are just some suggestions to 
-         point you in the right direction.
-      </p>
-         
-      <subsection name="Read the Manual">
-        <p>The first step to take when you have a problem is to read the <a href="manual/index.html">
-           manual</a> entry for the task or concept that is giving you trouble. Check particularly the meaning of
-           attributes and nested elements. Perhaps an attribute would provide the behavior you require. If you
-           have problems with the manual, then you can submit a documentation bug report (see below) to help us
-           improve the Ant documentation.
-        </p>        
-      </subsection>
-      <subsection name="Examine Debug Output">
-        <p>The first step when you have a problem is to see what Ant is doing. Try running Ant with
-           The verbose flag<br/><br/>
-           <code>ant -verbose</code><br/><br/>
-           or<br/><br/>
-           <code>ant -v</code><br/><br/>
-           
-           This will produce something which starts like the following:</p>
-           <source>
-Ant version 1.4alpha compiled on August 6 2001
-Buildfile: build.xml
-Detected Java version: 1.3 in: f:\jdk1.3\jre
-Detected OS: Windows NT
-parsing buildfile \jakarta-ant\build.xml with 
-URI = file:/jakarta-ant/build.xml
-Project base dir set to: \jakarta-ant
- [property] Loading \jakarta-ant\.ant.properties
- [property] Unable to find property file: \jakarta-ant\.ant.properties
- [property] Loading \conor\.ant.properties
- [property] Override ignored for debug
-
-prepare:
-
-check_for_optional_packages:
-...
-           </source>
-           <p>
-             You may be able to see in this trace what ant is doing and why it takes a particular 
-             course of action. If you need even more information you can use the <code>-debug</code> 
-             flag rather than <code>-verbose</code>. This will generally produce so much output that 
-             you may want to save the output and analyze it in an editor.
-           </p>
-           
-           <p>So, once you have all this debug information, how can you use it to solve your problem? 
-              That will depend on the task in question and the nature of your problem. Each task logs
-              different aspects of its operation, but it will give you an idea of what is going on. For
-              example, the &lt;javac&gt; task logs the reasons why it chooses to compile particular 
-              classes and the equivalent command it is using. The following trace (which has been edited
-              and reformatted for clarity) shows javac adding one class but skipping another. This is followed 
-              by the compiler arguments and a summary of all the classes to be compiled. 
-           </p>
-<source>
- [javac] org\apache\tools\ant\listener\Log4jListener.java added as 
-         \build\classes\org\apache\tools\ant\listener\Log4jListener.class 
-             is outdated.
- [javac] org\apache\tools\ant\Location.java omitted as 
-         \build\classes\org\apache\tools\ant\Location.class is up to date.
-  ...
- [javac] Compiling 1 source file to \jakarta-ant\build\classes
- [javac] Using modern compiler
- [javac] Compilation args: -d \jakarta-ant\build\classes -classpath 
-         \jakarta-ant\build\classes;F:\jdk1.3\lib\tools.jar;
-         \Ant\lib\optional.jar;\Ant\lib\log4j.jar;
-         \Ant\lib\junit.jar;\Ant\lib\jaxp.jar;
-         \Ant\lib\crimson.jar;\Ant\lib\ant.jar 
-         -sourcepath \jakarta-ant\src\main -g:none -O
-    [javac] File to be compiled:
-    \src\main\org\apache\tools\ant\listener\Log4jListener.java  
-</source>
-
-            <p>
-              In many cases Ant tasks are wrappers around OS commands or other java classes. In debug mode, many
-              of these tasks will print out the equivalent command line, as the &lt;javac&gt; task above does. If 
-              you are having a problem, it is often useful to run the command directly in the same way Ant is doing 
-              and see if the problem persists. The problem may lie in the command being run by Ant, or in the way 
-              the Ant task is running the command. You can also see the effect of changing attribute values on the
-              generated command line. This can help you to understand whether you are using the correct attributes
-              and values.
-            </p>
-      </subsection>
-
-      <subsection name="Has it been fixed?">
-        <p>
-          After examining the debug output, you still believe that the problem you are having may be caused by Ant. 
-          Chances are that someone else may have already encountered this problem and perhaps it has been
-          fixed. The next step, therefore, may be to try a nightly build of Ant to see if the 
-          problem has been fixed. Nightly builds for Ant are available from the 
-          <a href="/builds/jakarta-ant/nightly/">Jakarta web site</a>. While Ant nightly
-          builds are typically quite stable and are used by <a href="/builds/gump/latest/">
-          Gump</a> to build many other Jakarta projects, these builds should be treated as experimental. You can 
-          install and verify whether your problem has been fixed. Note that nightly builds do not build many of the
-          optional tasks the come with Ant. A snapshot of these optional tasks is occasionally uploaded to the nightly 
-          download <a href="/builds/jakarta-ant/nightly/optional/">area</a>. Note that even 
-          this snapshot does not contain every optional task.
-        </p>
-      </subsection>
-      
-      <subsection name="Has it been reported?">
-        <p>
-          If the current nightly build doesn't resolve your problem, it is possible that someone else has reported
-          the issue. It is time to look at the <a href="http://nagoya.apache.org/bugzilla/">Apache Bug Database</a>.
-          This system is easy to use and it will let you search the 
-          <a href="http://nagoya.apache.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;product=Ant&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp;bug_file_loc=&amp;bug_file_loc_type=substring&amp;keywords=&amp;keywords_type=anywords&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0=&amp;order=bugs.bug_id">
-          currently open 
-          </a>.
-          and resolved bugs to see if your problem has already been reported.
-          If your problem has been reported, you can see whether any of the developers have commented, 
-          suggesting workarounds or the reason for the bug, etc. You may have more information to add (see about 
-          creating bug reports below), in which case, go right ahead and add it. If you can't add more information
-          you may just want to vote for this bug, and perhaps add yourself to the CC list to follow the progress of
-          this bug.
-        </p>
-      </subsection>
-      
-      <subsection name="Filing a Bug report">
-        <p>By this time you may have decided that there is a bug in Ant. You have a few choices at this 
-           point. You can send an email to the ant-user mailing list to see if others have encountered your issue
-           and how they may have worked around it. If after some discussion, you still feel you have a bug, it 
-           is time to create a bug report. This is a simple operation in the Bug Database. Please try to provide 
-           as much information as possible to assist the developers in resolving the bug. Please try to enter correct 
-           values for the various inputs when creating the bug. Once the bug is created you can add attachments to
-           the bug report. 
-        </p>
-        
-        <p>What information should you include in your bug report? The easiest bugs to fix are those which are most 
-           easily reproducible, so if you can, it is really helpful to produce a small test case that exhibits the
-           problem. In this case, you would attach the build file and other files necessary to reproduce the problem
-           probably packed together in an archive. If you can't produce a test case, you should try to include a 
-           snippet from your build file and the relevant sections from the debug out from Ant. Try to include the 
-           header information where Ant states the version, the OS and VM information etc. As the debug output is 
-           likely to be very large, you should try to remove the output which is not relevant. Once the bug is 
-           entered into the Bug Database, you will be kept informed about progress on the bug. If you receive email
-           asking for further information, please try to respond as it will aid in the resolution of your bug.
-        </p>
-      </subsection>
-
-      <subsection name="Asking for an enhancement">
-         <p>Sometimes, you may find that Ant just doesn't do what you want. It isn't a bug, as such, since Ant 
-            is working the way it is supposed to. Perhaps it is something that hasn't been thought of yet, or 
-            a completely new task. For these situations you will want to raise an enhancement request. 
-            Enhancement requests are managed using the same Apache Bug Database described above. 
-            These are just a different type of report. If you look in the database, you will see that one of 
-            the severity settings for a bug is &quot;Enhancement&quot;. So, just fill the bug report in, and 
-            in the description, state how you would like to have Ant enhanced. Again you should check whether
-            there are any existing enhancment requests that cover your needs. If so, just add your vote to these.
-         </p>
-      </subsection>
-      
-      <subsection name="Fixing the Bug">
-        <p>If you aren't satisfied just filing a bug report, you can try to find and fix the problem yourself. The 
-           best way to do that is by working against the latest code from CVS. Alternatively, you can work with the
-           source code from the source distributions available on the Jakarta website. If you are going to tackle the
-           issues at this level, you may want to discuss details on the ant-dev mailing list. Once you have a fix 
-           for the problem, you may either submit the patch to the ant-dev mailing list or enter into the Bug
-           Database as described above, attaching the patch. Using the Bug database has the advantage of tracking
-           the progress of your bug.
-        </p>
-      </subsection>
-      
-         
-    </section>
-    
-  </body>
-</document>
diff --git a/xdocs/resources.xml b/xdocs/resources.xml
deleted file mode 100644
index 46a4b1f..0000000
--- a/xdocs/resources.xml
+++ /dev/null
@@ -1,314 +0,0 @@
-<?xml version="1.0"?>
-<document>
-
-  <properties>
-    <author email="bodewig@apache.org">Stefan Bodewig</author>
-    <title>Resources</title>
-  </properties>
-
-  <body>
-
-    <section name="FAQs">
-      <subsection name="At Ant's website">
-        <table>
-          <tr>
-            <th>FAQ</th>
-            <td><a href="faq.html">http://jakarta.apache.org/ant/faq.html</a></td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="jGuru">
-        <p>jGuru hosts an interactive Ant discussion forum and FAQ system</p>
-
-        <table>
-          <tr>
-            <th>Forum</th>
-            <td><a href="http://www.jguru.com/forums/home.jsp?topic=Ant">http://www.jguru.com/forums/home.jsp?topic=Ant</a></td>
-          </tr>
-          <tr>
-            <th>FAQ</th>
-            <td><a href="http://www.jguru.com/faq/home.jsp?topic=Ant">http://www.jguru.com/faq/home.jsp?topic=Ant</a></td>
-          </tr>
-        </table>
-      </subsection>
-    </section>
-    
-    <section name="Articles and Presentations">
-
-      <p>The following sections list articles and presentations written about Ant.  If
-      you've written something that should be included, please post it to one
-      of the mailing lists.</p>
-
-    </section>
-
-    <section name="Articles">
-
-      <subsection name="Ant in Anger: Using Ant in a Production Development
-      System">
-        <p>This document describes strategies and some basic examples of how to 
-        use Ant in larger team development projects.</p>
-
-        <table>
-          <tr>
-            <th>Author:</th>
-            <td><a href="mailto:steve_l@iseran.com">Steve Loughran</a></td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="ant_in_anger.html">http://jakarta.apache.org/ant/ant_in_anger.html</a></td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="Ant Task Guidelines">
-        <p>This document describes how to write custom Ant tasks, and how to submit
-        them to potentially be included in Ant.</p>
-
-        <table>
-          <tr>
-            <th>Author:</th>
-            <td><a href="mailto:steve_l@iseran.com">Steve Loughran</a></td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="ant_task_guidelines.html">http://jakarta.apache.org/ant/ant_task_guidelines.html</a></td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="Automating the build and test process">
-        <p>This article demonstrates an approach to the automated build and test process. Working with Ant 1.3 and the JUnit test framework, it shows how to automate a process that captures pertinent information about each test suite run, generates an attractive report, and e-mails the report.</p>
-
-        <table>
-          <tr>
-            <th>Author:</th>
-            <td><a href="mailto:erik@hatcher.net">Erik Hatcher</a></td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://www.ibm.com/developerworks/java/library/j-junitmail/">http://www.ibm.com/developerworks/java/library/j-junitmail/</a></td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="Incremental development with Ant and JUnit">
-        <p>This article explores the benefits of unit testing with Ant and
-        JUnit, detailing how to develop automated unit tests and integrate them
-        into your build process.</p>
-
-        <table>
-          <tr>
-            <th>Author:</th>
-            <td><a href="mailto:malcolm@nuearth.com">Malcolm Davis</a></td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://www-106.ibm.com/developerworks/library/j-ant/?dwzone=java">http://www-106.ibm.com/developerworks/library/j-ant/?dwzone=java</a></td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="Automate your build process using Java and Ant">
-        <p>This article provides an introduction to using Ant with some basic
-        examples and by highlighting some of the important tasks.</p>
-
-        <table>
-          <tr>
-            <th>Author:</th>
-            <td><a href="mailto:michael.cymerman@javaworld.com">Michael Cymerman</a></td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://www.javaworld.com/javaworld/jw-10-2000/jw-1020-ant.html">http://www.javaworld.com/javaworld/jw-10-2000/jw-1020-ant.html</a></td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="Short tutorial in Cactus&apos; (formerly J2EEUnit)
-      documentation">
-        <p>There is a short tutorial on how to use Ant in Cactus&apos;
-        documentation.  It has a slant towards build files that will be used
-        with Cactus.</p>
-
-        <table>
-          <tr>
-            <th>Author:</th>
-            <td>Cactus development team</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://jakarta.apache.org/commons/cactus/ant.html">http://jakarta.apache.org/commons/cactus/ant.html</a></td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="Developing custom Ant tasks with VisualAge for Java">
-        <p>This article outlines how to integrate Ant into VisualAge for Java,
-        and how to write and debug custom tasks using the IDE and the
-        integrated debugger.</p>
-
-        <table>
-          <tr>
-            <th>Author:</th>
-            <td><a href="mailto:glenn@somanetworks.com">Glenn McAllister</a></td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://www7.software.ibm.com/vad.nsf/data/document2366?OpenDocument&amp;p=1&amp;BCT=1&amp;Footer=1">http://www7.software.ibm.com/vad.nsf/data/document2366?OpenDocument&amp;p=1&amp;BCT=1&amp;Footer=1</a></td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="Automated builds with VisualAge for Java and Ant">
-        <p>This article shows how you can perform command line builds with a
-        VisualAge for Java repository.</p>
-
-        <table>
-          <tr>
-            <th>Author:</th>
-            <td><a href="mailto:glenn@somanetworks.com">Glenn McAllister</a></td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://www7.software.ibm.com/vad.nsf/Data/Document4366?OpenDocument&amp;p=1&amp;BCT=3&amp;Footer=1">http://www7.software.ibm.com/vad.nsf/Data/Document4366?OpenDocument&amp;p=1&amp;BCT=3&amp;Footer=1</a></td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="Ant: A Build Tool from the Jakarta Project">
-        <p>This article is from the &quot;Best Practices&quot; section of
-        Sun&apos;s Dot-Com Builder Site.</p>
-
-        <table>
-          <tr>
-            <th>Author:</th>
-            <td>Laura Geele Wang</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://dcb.sun.com/practices/profiles/ant.jsp">http://dcb.sun.com/practices/profiles/ant.jsp</a></td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="Making a Mountain Out of an Anthill">
-        <p>This article is from the June 2001 issue of the Java Developer&apos;
-        Journal.  You need to be a registered JDJ subscriber to view this
-        article.</p>
-
-        <table>
-          <tr>
-            <th>Author:</th>
-            <td>Neal Ford</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://www.sys-con.com/java/archivesa.cfm?volume=06&amp;issue=06">http://www.sys-con.com/java/archivesa.cfm?volume=06&amp;issue=06</a></td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="Using Ant and Weblogic EJBs">
-        <p>This article describes how to use Ant to create Weblogic EJBs, and
-        some workarounds for issues you may encounter.</p>
-
-        <table>
-          <tr>
-            <th>Author:</th>
-            <td>Jesse E. Tilly</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://www.onjava.com/pub/a/onjava/2001/06/25/antejb.html">http://www.onjava.com/pub/a/onjava/2001/06/25/antejb.html</a></td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="An Introduction to Ant">
-        <p>This article is a short introduction into the basic
-        concepts of Ant.</p>
-
-        <table>
-          <tr>
-            <th>Author:</th>
-            <td>Jayakrishnan Nair</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://varnam.org/articles/ant.html">http://varnam.org/articles/ant.html</a></td>
-          </tr>
-        </table>
-      </subsection>
-
-    </section>
-
-    <section name="Presentations">
-
-      <subsection name="Ant - presented to the Tucson Java Users Group">
-        <p>A PowerPoint technical overview presentation on Ant.  Comes complete with a straightforward example demonstrating code compilation, JAR'ing, JUnit testing, JUnit reporting, and Zipping a distribution.  A few advanced topics are touched upon like property immutabality and using &lt;antcall&gt; to get around it, build listeners, and writing custom tasks.</p>
-
-        <table>
-          <tr>
-            <th>Author:</th>
-            <td><a href="mailto:erik@hatcher.net">Erik Hatcher</a></td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://erik.hatcher.net/ant-jug.zip">http://erik.hatcher.net/ant-jug.zip</a></td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="Ant Build Tool">
-        <p>A PowerPoint presentation on Ant 1.2.  It provides a basic overview
-        of Ant&apos;s capabilities.</p>
-
-        <table>
-          <tr>
-            <th>Author:</th>
-            <td><a href="mailto:chanezon@netscape.com">Patrick Chanezon</a></td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://people.netscape.com/chanezon/tech/ant/ant_preso.ppt">http://people.netscape.com/chanezon/tech/ant/ant_preso.ppt</a></td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="Ant">
-        <p>A detailed Ant 1.3 PowerPoint presentation, made at the St. Louis Java Users Group
-        meeting in March 2001.  Includes a detailed build file and basic
-        descriptions of all the built in and optional tasks.</p>
-
-        <table>
-          <tr>
-            <th>Author:</th>
-            <td>Mark Volkmann</td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://www.ociweb.com/javasig/knowledgebase/March2001/index.html">http://www.ociweb.com/javasig/knowledgebase/March2001/index.html</a></td>
-          </tr>
-        </table>
-      </subsection>
-
-      <subsection name="Modern Development Crises">
-        <p>This presentation is an overview of the current state of software
-        development today.  There are a couple of slides that briefly cover
-        Ant.</p>
-
-        <table>
-          <tr>
-            <th>Author:</th>
-            <td><a href="mailto:steve_l@iseran.com">Steve Loughran</a></td>
-          </tr>
-          <tr>
-            <th>URL:</th>
-            <td><a href="http://www.iseran.com/Steve/modern_development_processes.html">http://www.iseran.com/Steve/modern_development_processes.html</a></td>
-          </tr>
-        </table>
-      </subsection>
-    </section>
-  </body>
-</document>
diff --git a/xdocs/stylesheets/faq.vsl b/xdocs/stylesheets/faq.vsl
deleted file mode 100644
index fd4c8cf..0000000
--- a/xdocs/stylesheets/faq.vsl
+++ /dev/null
@@ -1,118 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
-<!-- Content Stylesheet for Site -->
-
-    ## Defined variables
-    #set ($bodybg = "#ffffff")
-    #set ($bodyfg = "#000000")
-    #set ($bodylink = "#525D76")
-    #set ($bannerbg = "#525D76")
-    #set ($bannerfg = "#ffffff")
-    #set ($subbannerbg = "#828DA6")
-    #set ($subbannerfg = "#ffffff")
-    #set ($tablethbg = "#039acc")
-    #set ($tabletdbg = "#a0ddf0")
-    #set ($pound = "#" )
-    
-<!-- start the processing -->
-#faqs()
-<!-- end the processing -->
-
-## This is where the FAQ specific macro's live
-
-#macro (toc $section)
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="$subbannerbg">
-      <font color="$subbannerfg" face="arial,helvetica,sanserif">
-        <strong>$section.getAttributeValue("title")</strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-        <ul>
-        #foreach ($faq in $section.getChildren("faq") )
-          #subtoc ($faq)
-        #end
-        </ul>
-      </blockquote>
-    </td></tr>
-  </table>
-#end
-
-#macro (subtoc $faq)
-  #set ($id = $faq.getAttributeValue("id"))
-  <li><a href="$pound$id">
-  $xmlout.outputString($faq.getChild("question"), true)
-  </a></li>
-#end
-
-#macro (answers $section)
-  #foreach ($faq in $section.getChildren("faq") )
-    #faq ($faq)
-  #end
-#end
-
-#macro (faq $faq)
-  #set ($id = $faq.getAttributeValue("id"))
-  <a name="$id">
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="$subbannerbg">
-      <font color="$subbannerfg" face="arial,helvetica,sanserif">
-        <strong>
-          $xmlout.outputString($faq.getChild("question"), true)
-        </strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-        #foreach ($item in $faq.getChild("answer").getChildren())
-          #if ($item.getName().equals("img"))
-            #image ($item)
-          #elseif ($item.getName().equals("source"))
-            #source ($item)
-          #elseif ($item.getName().equals("table"))
-            #table ($item)
-          #else
-            $xmlout.outputString($item)
-          #end
-        #end
-      </blockquote>
-    </td></tr>
-  </table>
-  </a>
-#end
-
-#macro (faqs)
-  #header()
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="$bannerbg">
-      <font color="$bannerfg" face="arial,helvetica,sanserif">
-        <strong>Questions</strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-      #set ($allFaqSections = $root.getChildren("faqsection"))
-      #foreach ( $faqSection in $allFaqSections )
-        #toc ($faqSection)
-      #end
-      </blockquote>
-    </td></tr>
-  </table>
-
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="$bannerbg">
-      <font color="$bannerfg" face="arial,helvetica,sanserif">
-        <strong>Answers</strong>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-      #foreach ( $faqSection in $allFaqSections )
-        #answers ($faqSection)
-      #end
-      </blockquote>
-    </td></tr>
-  </table>
-  #footer()
-#end
diff --git a/xdocs/stylesheets/project.xml b/xdocs/stylesheets/project.xml
deleted file mode 100644
index a49a230..0000000
--- a/xdocs/stylesheets/project.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<project name="Jakarta Site"
-        href="http://jakarta.apache.org/">
-
-    <title>The Jakarta Site</title>
-    <!-- uncomment and put your project logo here!
-    <logo href="http://jakarta.apache.org/images/jakarta-logo.gif">The Jakarta Project</logo>
-    -->
-    
-    <body>
-    <menu name="Ant">
-        <item name="Front Page"            
-              href="/index.html"/>
-        <item name="News"                 
-              href="/antnews.html"/>
-        <item name="Documentation"            
-              href="/manual/index.html"/>
-        <item name="External Tools and Tasks"
-              href="/external.html"/>
-        <item name="Resources"
-              href="/resources.html"/>
-        <item name="Ant FAQ"
-              href="/faq.html"/>
-        <item name="Having Problems?"
-              href="/problems.html"/>
-    </menu>
-
-    <menu name="Download">
-        <item name="Binaries"              href="/site/binindex.html"/>
-        <item name="Source Code"           href="/site/sourceindex.html"/>
-    </menu>
-
-    <menu name="Jakarta">
-        <item name="News &amp; Status"     href="/site/news.html"/>
-        <item name="Mission"               href="/site/mission.html"/>
-        <item name="Guidelines Notes"      href="/site/guidelines.html"/>
-        <item name="FAQs"                  href="/site/faqs.html"/>
-    </menu>
-
-    <menu name="Get Involved">
-        <item name="Overview"              href="/site/getinvolved.html"/>
-        <item name="CVS Repositories"      href="/site/cvsindex.html"/>
-        <item name="Mailing Lists"         href="/site/mail.html"/>
-        <item name="Reference Library"     href="/site/library.html"/>
-        <item name="Bug Database"          href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=Ant"/>
-        <item name="Enhancement Requests"  href="http://nagoya.apache.org/bugzilla/enter_bug.cgi?product=Ant&amp;bug_severity=Enhancement"/>
-    </menu>
-
-    </body>
-</project>
diff --git a/xdocs/stylesheets/site.vsl b/xdocs/stylesheets/site.vsl
deleted file mode 100644
index 925e8c9..0000000
--- a/xdocs/stylesheets/site.vsl
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
-<!-- Content Stylesheet for Site -->
-
-    ## Defined variables
-    #set ($bodybg = "#ffffff")
-    #set ($bodyfg = "#000000")
-    #set ($bodylink = "#525D76")
-    #set ($bannerbg = "#525D76")
-    #set ($bannerfg = "#ffffff")
-    #set ($subbannerbg = "#828DA6")
-    #set ($subbannerfg = "#ffffff")
-    #set ($tablethbg = "#039acc")
-    #set ($tabletdbg = "#a0ddf0")
-    
-<!-- start the processing -->
-#document()
-<!-- end the processing -->
-
-## This is where the common page macro's live
-
-#macro ( subsection $subsection)
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="$subbannerbg">
-      <font color="$subbannerfg" face="arial,helvetica,sanserif">
-        <a name="$subsection.getAttributeValue("name")"><strong>$subsection.getAttributeValue("name")</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-      #foreach ( $items in $subsection.getChildren() )
-        #if ($items.getName().equals("img"))
-          #image ($items)
-        #elseif ($items.getName().equals("source"))
-          #source ($items)
-        #elseif ($items.getName().equals("table"))
-          #table ($items)
-        #else
-          $xmlout.outputString($items)
-        #end
-      #end
-      </blockquote>
-    </td></tr>
-  </table>
-#end
-
-#macro ( section $section)
-  <table border="0" cellspacing="0" cellpadding="2" width="100%">
-    <tr><td bgcolor="$bannerbg">
-      <font color="$bannerfg" face="arial,helvetica,sanserif">
-        <a name="$section.getAttributeValue("name")"><strong>$section.getAttributeValue("name")</strong></a>
-      </font>
-    </td></tr>
-    <tr><td>
-      <blockquote>
-      #foreach ( $items in $section.getChildren() )
-        #if ($items.getName().equals("img"))
-          #image ($items)
-        #elseif ($items.getName().equals("source"))
-          #source ($items)
-        #elseif ($items.getName().equals("table"))
-          #table ($items)
-        #elseif ($items.getName().equals("subsection"))
-          #subsection ($items)
-        #else
-          $xmlout.outputString($items)
-        #end
-      #end
-      </blockquote>
-    </td></tr>
-  </table>
-#end
-
-#macro (document)
-  #header()
-  #set ($allSections = $root.getChild("body").getChildren("section"))
-  #foreach ( $section in $allSections )
-    #section ($section)
-  #end
-  #footer()
-#end
diff --git a/xdocs/stylesheets/templates.vm b/xdocs/stylesheets/templates.vm
deleted file mode 100644
index fdfb11b..0000000
--- a/xdocs/stylesheets/templates.vm
+++ /dev/null
@@ -1,196 +0,0 @@
-## This is where the common macro's live
-
-#macro ( table $table)
-  <table>
-  #foreach ( $items in $table.getChildren() )
-    #if ($items.getName().equals("tr"))
-      #tr ($items)
-    #end
-  #end
-  </table>
-#end
-
-#macro ( tr $tr)
-  <tr>
-  #foreach ( $items in $tr.getChildren() )
-    #if ($items.getName().equals("td"))
-      #td ($items)
-    #elseif ($items.getName().equals("th"))
-      #th ($items)
-    #end
-  #end
-</tr>
-#end
-
-#macro ( td $value)
-  #if ($value.getAttributeValue("colspan"))
-    #set ($colspan = $value.getAttributeValue("colspan"))
-  #end
-  #if ($value.getAttributeValue("rowspan"))
-    #set ($rowspan = $value.getAttributeValue("rowspan"))
-  #end
-  <td bgcolor="$tabletdbg" colspan="$!colspan" rowspan="$!rowspan" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-    #if ($value.getText().length() != 0 || $value.hasChildren())
-      $xmlout.outputString($value, true)
-    #else
-      &nbsp;
-    #end
-    </font>
-  </td>
-#end
-
-#macro ( th $value)
-  #if ($value.getAttributeValue("colspan"))
-    #set ($colspan = $value.getAttributeValue("colspan"))
-  #end
-  #if ($value.getAttributeValue("rowspan"))
-    #set ($rowspan = $value.getAttributeValue("rowspan"))
-  #end
-  <td bgcolor="$tablethbg" colspan="$!colspan" rowspan="$!rowspan" 
-      valign="top" align="left">
-    <font color="#000000" size="-1" face="arial,helvetica,sanserif">
-    #if ($value.getText().length() != 0 || $value.hasChildren())
-      $xmlout.outputString($value, true)
-    #else
-      &nbsp;
-    #end
-    </font>
-  </td>
-#end
-
-#macro ( projectanchor $name $value )
-  #if ($value.startsWith("http://"))
-    <a href="$value">$name</a>
-  #elseif ($value.startsWith("/site"))
-    <a href="http://jakarta.apache.org$value">$name</a>
-  #else
-    <a href="$relativePath$value">$name</a>
-  #end
-#end
-
-#macro ( metaauthor $author $email )
-  <meta name="author" value="$author">
-  <meta name="email" value="$email">
-#end
-
-#macro ( image $value )
-  #if ($value.getAttributeValue("width"))
-    #set ($width=$value.getAttributeValue("width"))
-  #end
-  #if ($value.getAttributeValue("height"))
-    #set ($height=$value.getAttributeValue("height"))
-  #end
-  #if ($value.getAttributeValue("align"))
-    #set ($align=$value.getAttributeValue("align"))
-  #end
-  <img src="$relativePath$value.getAttributeValue("src")" 
-       width="$!width" height="$!height" align="$!align">
-#end
-
-#macro ( source $value)
-  <div align="left">
-    <table cellspacing="4" cellpadding="0" border="0">
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#ffffff"><pre>$escape.getText($value.getText())</pre></td>
-        <td bgcolor="#023264" width="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-      <tr>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-        <td bgcolor="#023264" width="1" height="1"><img src="/images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"/></td>
-      </tr>
-    </table>
-  </div>
-#end
-
-#macro ( makeProject )
-  #set ($menus = $project.getChild("body").getChildren("menu"))
-  #foreach ( $menu in $menus )
-    <p><strong>$menu.getAttributeValue("name")</strong></p>
-    <ul>
-    #foreach ( $item in $menu.getChildren() )
-      #set ($name = $item.getAttributeValue("name"))
-      <li>#projectanchor($name $item.getAttributeValue("href"))</li>
-    #end
-    </ul>
-  #end
-#end
-
-#macro (getProjectImage)
-  #if ($project.getChild("logo"))
-    <td align="left">
-    <a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" border="0"/></a>
-    </td>
-    <td align="right">
-    #set ( $logoString = $project.getChild("logo").getAttributeValue("href") )
-    #if ( $logoString.startsWith("/") )
-      <a href="$project.getAttributeValue("href")"><img src="$relativePath$logoString" alt="$project.getChild("logo").getText()" border="0"/></a>
-    #else
-      <a href="$project.getAttributeValue("href")"><img src="$relativePath/$logoString" alt="$project.getChild("logo").getText()" border="0"/></a>
-    #end
-    </td>
-  #else
-    <td colspan="2">
-    <a href="http://jakarta.apache.org"><img src="http://jakarta.apache.org/images/jakarta-logo.gif" align="left" border="0"/></a>
-    </td>
-  #end
-#end
-
-#macro (header)
-  <html>
-    <head>
-      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
-  
-      #set ($authors = $root.getChild("properties").getChildren("author"))
-      #foreach ( $au in $authors )
-        #metaauthor ( $au.getText() $au.getAttributeValue("email") )
-      #end
-  
-      <title>$project.getChild("title").getText() - $root.getChild("properties").getChild("title").getText()</title>
-    </head>
-  
-    <body bgcolor="$bodybg" text="$bodyfg" link="$bodylink">    
-      <table border="0" width="100%" cellspacing="0">
-        <!-- TOP IMAGE -->
-        <tr>
-          #getProjectImage()
-        </tr>
-      </table>
-      <table border="0" width="100%" cellspacing="4">
-        <tr><td colspan="2">
-          <hr noshade="" size="1"/>
-        </td></tr>
-        
-        <tr>
-          <!-- LEFT SIDE NAVIGATION -->
-          <td valign="top" nowrap="true">
-          #makeProject()
-          </td>
-          <td align="left" valign="top">
-#end
-
-#macro (footer)
-          </td>
-        </tr>
-
-        <!-- FOOTER -->
-        <tr><td colspan="2">
-          <hr noshade="" size="1"/>
-        </td></tr>
-        <tr><td colspan="2">
-          <div align="center"><font color="$bodylink" size="-1"><em>
-          Copyright &#169; 1999-2001, Apache Software Foundation
-          </em></font></div>
-        </td></tr>
-      </table>
-    </body>
-  </html>
-#end
diff --git a/xdocs/velocity.properties b/xdocs/velocity.properties
deleted file mode 100644
index 7327d96..0000000
--- a/xdocs/velocity.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-file.resource.loader.path=xdocs/stylesheets
-velocimacro.library=templates.vm