<?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 Apache 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.  For details, see the
      <a href="faq.html#adding-external-tasks">FAQ</a>.</p>

      <p>Nothing listed here is directly supported by the Ant
      developers, if you encounter any problems with them, please use
      the contact information.</p>

    </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 later</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="Anteater">

        <p>Anteater is a set of Ant tasks for the functional testing of websites
          and web services (functional testing being; hit a URL and ensure the
          response meets certain criteria). Can test HTTP params, response
          codes, XPath, regexp and Relax NG expressions. Includes HTML reporting
          (based on junitreport) and a hierarchical grouping system for quickly
          configuring large test scripts.
        </p>
        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.5 and later</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://aft.sourceforge.net">http://aft.sourceforge.net</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="http://lists.sourceforge.net/lists/listinfo/aft-devel">developer
                mailing list</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 to 1.4.1</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://checkstyle.sourceforge.net/">http://checkstyle.sourceforge.net/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:checkstyle@puppycrawl.com">Oliver Burn</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Starting with release 2.0 the license is the GNU
            Lesser General Public License.  Prior releases were under
            the GNU General Public License.</td>
          </tr>
        </table>
      </subsection>

      <subsection name="CleanImports">
        <p>Removes unneeded imports. Formats your import
        sections. Flags ambiguous imports.</p>
        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.3</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.euronet.nl/users/tomb/cleanImports/index.html">http://www.euronet.nl/users/tomb/cleanImports/index.html</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:tomb@euronet.nl">Tom Brus</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Apache Software License</td>
          </tr>
        </table>
      </subsection>

      <subsection name="Clover">

        <p>Clover is an Ant-based Code Coverage tool. It can be used
        seamlessly with Ant-based projects. It provides method,
        statement, and branch coverage analysis, and has rich
        reporting in XML, HTML or via a Swing GUI.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.4.1 or greater</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.thecortex.net/clover">http://www.thecortex.net/clover</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:clover-support@cortexebusiness.com.au">clover-support@cortexebusiness.com.au</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Commercial, free licenses available for open source
            projects.</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="CVSGrab">

        <p>A little CVS client that can be useful when people are
        behind corporate firewall that blocks any cvs
        communications. It uses the ViewCVS web interface to access
        the CVS repository via standard http, and downloads all the
        files present in it.</p>

        <p>It works from the command line or as an Ant task.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.3 or higher</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://cvsgrab.sourceforge.net/">http://cvsgrab.sourceforge.net/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:cvsgrab-users@lists.sourceforge.net">CVSGrab
            user mailing list</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>LGPL</td>
          </tr>
        </table>
      </subsection>

      <subsection name="Doxygen task">
        <p>There are two Ant tasks for running the Doxygen
        documentation system.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.1 and later</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.bgw.org/projects/java/ant/">http://www.bgw.org/projects/java/ant/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:mortis@voicenet.com">Kyle R. Burton</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Apache Software Foundation License</td>
          </tr>
        </table>

        <p>and</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.5 and later</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://ant-doxygen.sourceforge.net">http://ant-doxygen.sourceforge.net</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:akkumar@users.sourceforge.net">Karthik A Kumar</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Apache Software Foundation License</td>
          </tr>
        </table>
      </subsection>

      <subsection name="GenJar">
        <p>Builds a JAR file based on class dependencies rather than simply the contents of a directory</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.4 alpha (built after 2001/08/04) and later</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://genjar.sourceforge.net/">http://genjar.sourceforge.net/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:jesse_dev@yahoo.com">Jesse Stockall</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Apache Software Foundation License</td>
          </tr>
        </table>
      </subsection>

      <subsection name="Greebo">

        <p>Greebo is an Ant-task for downloading dependency files
        (currently only jars) from a network to a specified directory,
        much like Maven. It supports multiple local and remote
        repositories with either flat or maven-like structures. It can
        read the dependency list from a Maven project file, a
        maven-like dependency file, or directly from the build.xml
        file.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.5</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.discore.com/oz/new/index.htm">http://www.discore.com/oz/new/index.htm</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:ozbene@discore.com">Ozben Evren</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Apache Software License</td>
          </tr>
        </table>
      </subsection>

      <subsection name="Importscrubber">
        <p>Removes unnecessary import statements from a Java source code file.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.3</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://importscrubber.sourceforge.net/">http://importscrubber.sourceforge.net/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:tomcopeland@users.sourceforge.net">Tom Copeland</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>LGPL</td>
          </tr>
        </table>
      </subsection>

      <subsection name="Interactive">
        <p>
          Task allowing to run a dialog within a build used to setup some properties.
          This way you can fill a property with the input of a user.
        </p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.5.1</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.kasisoft.de/build/ant/interactive/">http://www.kasisoft.de/build/ant/interactive/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:support@kasisoft.de">Daniel Kasmeroglu</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>LGPL</td>
          </tr>
        </table>
      </subsection>

      <subsection name="IsDirValidator">

        <p>Checks whether a given directory structure conforms to
        certain rules that are defined via nested elements of the
        task.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.4</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://isvalidator.sourceforge.net/en/isDirValidator.htm">http://isvalidator.sourceforge.net/en/isDirValidator.htm</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:news@inigoserrano.com">I&#xF1;igo Serrano</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>GNU General Public License</td>
          </tr>
        </table>
      </subsection>

      <subsection name="J2ME Ant Tasks">

        <p>There are three 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>

        <p>With Antenna, you can compile, preverify, package, and
        obfuscate your MIDP applications, as well as convert them to
        PRC files designed to run on MIDP for PalmOS. The tasks are
        mostly built around the Wireless Toolkit and the free
        RetroGuard obfuscator, with some additional gimmicks like
        automatic version numbering.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.4.1 or later</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://antenna.sourceforge.net/">http://antenna.sourceforge.net/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:joerg@pleumann.de">J&#xF6;rg Pleumann</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>GNU Lesser General Public License</td>
          </tr>
        </table>

      </subsection>

      <subsection name="Jalopy">
        
        <p>An Ant Plug-in for the Java Source Code Formatter
        Jalopy.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.4 (or higher)</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://jalopy.sourceforge.net">http://jalopy.sourceforge.net</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="http://jalopy.sf.net/contact.html">http://jalopy.sf.net/contact.html</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Starting with release 1.0 Beta 6 the license is the
            BSD License.  Prior releases were under the GNU General
            Public License.</td>
          </tr>
        </table>
      </subsection>

      <subsection name="Java+ Precompile Task">

        <p>Java+ is an open source Java preprocessorthat adds these
        features to any Java compiler:</p>

        <ul>
          <li>Multi-line strings with executable inclusions like Perl
          and Ruby. It eliminates the need for JSP or ASP and their
          need for Java compilers on deployment servers (a security
          concern) while adding no overhead in either space or
          time. </li>

          <li>Optionally supports localization by segregating Java+
          strings into ResourceBundle files with invarient keys based
          on the hash code of the strings's value. This is handled
          automatically and transparently; no intervention is
          required.</li>

          <li>Fast. Negligible impact on build times. By default,
          skips inputs whose outputs are up to date to avoid
          triggering recompilations.</li>

          <li>Pure Java code, portable to any platform, with
          graphical, shell and ant interfaces.</li>

          <li>Simple, general, recursive, digraph-driven string
          syntax. Digraph characters are user-selectable.</li>
        </ul>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.5.1</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://virtualschool.edu/java+/">http://virtualschool.edu/java+/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:bcox@virtualschool.edu">Brad Cox</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>BSD-like License</td>
          </tr>
        </table>
      </subsection>

      <subsection name="Javamake">

        <p>A task to compile Java sources and manage class file
        dependencies. Functionality is equivalent to that of standard
        Javac and Depend tasks combined, with improved dependency
        checking.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.4.1</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.experimentalstuff.com/Technologies/JavaMake/index.html">http://www.experimentalstuff.com/Technologies/JavaMake/index.html</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:Mikhail.Dmitriev@eng.sun.com">Mikhail Dmitriev</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>BSD-like License</td>
          </tr>
        </table>
      </subsection>

      <subsection name="javarec">

        <p>Ant tasks that generate record classes for VisualAge for
        Java from Cobol copy books.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.4</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://glezen.org/javarec/">http://glezen.org/javarec/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:pglezen@us.ibm.com">Paul Glezen</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Apache Software License</td>
          </tr>
        </table>
      </subsection>

      <subsection name="JCSC">

        <p>JCSC is a Java Coding Standard Checker which also features
        the generation of some code metrics. It is a command line tool
        with an Ant task to scan whole package trees. The result can
        viewed in an JavaDoc style web page.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant &gt;= 1.5</td>  
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://jcsc.sourceforge.net/">http://jcsc.sourceforge.net/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:rjocham72@netscape.net">Ralph Jocham</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>GNU General Public License</td>
          </tr>
        </table>
      </subsection>

      <subsection name="Jing Task">

        <p> Validates XML files against the RELAX NG alternative to XML Schema.
        The Jing task for Ant allows you to efficiently validate 
        multiple files against multiple RELAX NG patterns and integrate 
        RELAX NG validation with other XML processing.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.4 and later</td>  
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.thaiopensource.com/relaxng/jing-ant.html">
            http://www.thaiopensource.com/relaxng/jing-ant.html</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>BSD-like</td>
          </tr>
        </table>
      </subsection>

      <subsection name="jMetra">

        <p>jMetra is a tool for collecting code metrics across a
        project lifecycle and compiling the results into
        JavaDoc-styled documentation to analyze project metrics over
        time.  jMetra is best utilized by integrating it with your
        project's scheduled build process.</p>

        <p>It works from the command line or using several provided
        Ant tasks.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.4 and higher</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td>
              <a href="http://www.jmetra.com/">http://www.jmetra.com/</a
                >
            </td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td>
              <a href="mailto:tnewton@hypercisioninc.com">R Todd Newton
              </a>
            </td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Commercial, free licenses for open source projects and
            evaluations.</td>
          </tr>
        </table>
      </subsection>

      <subsection name="JNI">

        <p>
        
          JNI is a free toolkit that makes easy work of
          integrating Java and C through the Java Native
          Interface (JNI). It includes a code generator that
          generates both Java "proxy" classes to access C
          "peer" classes, and C "proxy" classes to access
          Java "peer" classes or interfaces. It also
          includes a core library with a simplified JVM
          interface as well as "helper" classes to ease
          working with the JNI data types. The code
          generation is driven by an XML project file that
          can be created with the assistance of the GUI
          Project Manager. The code generation can be
          invoked either from Ant or from the
          GUI. Includes a comprehensive printable PDF User
          Guide and plenty of examples.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.4</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://jnipp.sf.net/">http://jnipp.sf.net/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:ptrewhella@users.sf.net">Phillip E. Trewhella</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>GNU LGPL</td>
          </tr>
        </table>
      </subsection>

      <subsection name="JRun Ant Tasks">

        <p>JRun 4 SP1 ships with lib/jrun-ant-tasks.jar, which defines
        three Ant tasks: jrun, jrunapp, and jrunjmx.  Documentation
        for the tasks can be found in JRun under
        docs/ant/jrun.html.</p> 

        <p>Note that the service pack must be installed on top of an
        existing JRun 4 installation.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.4 or higher</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://dynamic.macromedia.com/bin/MM/software/trial/hwswrec.jsp?product=jrun_sp">http://dynamic.macromedia.com/bin/MM/software/trial/hwswrec.jsp?product=jrun_sp</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:bdeitte@macromedia.com">Brian Deitte</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Commercial</td>
          </tr>
        </table>
      </subsection>
      
     <subsection name="Macker">

        <p>A build-time architectural testing tool, designed
        to maintain clean layering / tiering / modularity.
        Macker works against compiled class files, checking
        dependencies between classes against a set of
        pattern-based access rules you specify for your
        project in an XML rules file.  Macker doesn't presume
        anything about your architecture -- you write the
        rules, and Macker keeps you honest about them.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.5 and higher (1.4 untested but may work)</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://innig.net/macker/">http://innig.net/macker/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="http://innig.net/macker/contact.html">Paul Cantrell</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>GNU GPL 2.0</td>
          </tr>
        </table>
      </subsection>

      <subsection name="pack">

        <p>pack is a task to build the smallest possible JAR to link
        and run one or more classes.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.5</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://sadun-util.sourceforge.net/pack.html">http://sadun-util.sourceforge.net/pack.html</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:cristiano@xtractor.com">Cristiano Sadun</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>GNU Lesser General Public License</td>
          </tr>
        </table>
      </subsection>

      <subsection name="PMD">

        <p>PMD checks Java source code for unused variables,
        unnecessary object creation, etc</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.4 and higher</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://pmd.sf.net/">http://pmd.sf.net/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:tcopeland@apache.org">Tom Copeland</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Apache Software Foundation License</td>
          </tr>
        </table>
      </subsection>

      <subsection name="Purge">

        <p>Purge deletes all but the most recent few files from a fileset. 
        For example: if you have generated files (logs, .ear, .war, .jar 
        etc) accumulating in a directory, the purge task will allow you
        to delete the older files, keeping just the most recent ones.</p>
        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.4 or above</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.dallaway.com/ant/">http://www.dallaway.com/ant/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:purge@dallaway.com">Richard Dallaway</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>LGPL</td>
          </tr>
        </table>
      </subsection>

      <subsection name="SerialVer">

        <p>SerialVer adds the Java serialver functionality to Apache
        Ant.  This project adds Tasks and FilterReaders to get, to
        insert and to modify the serialVersionUID in the source code
        of a serializable class.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.5.1 and later</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://serialver.sourceforge.net/">http://serialver.sourceforge.net/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="https://lists.sourceforge.net/lists/listinfo/serialver-development">developer mailing list</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Apache Software License</td>
          </tr>
        </table>
      </subsection>

      <subsection name="Styler">

        <p>The styler task makes useful combinations of XSLT transformations
        easy to specify in an Ant build file. Like the built-in Ant task
        style, styler can apply a single transformation to a set of XML files.
        But it can also:</p>
        <ul>
          <li>handle multiple transformations, in parallel or pipelined.</li>
          <li>enable transformations that split or merge files</li>
          <li>process non-XML files, especially HTML (based on JTidy)</li>
          <li>apply non-XSLT transformation, especially "regular
          fragmentations"</li>
          <li>use any custom XMLReader or XMLFilter class to handle new file
          formats and transformation techniques.</li>
        </ul>
        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.4</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.langdale.com.au/styler/">http://www.langdale.com.au/styler/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:adv@langdale.com.au">Arnold deVos</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>LGPL</td>
          </tr>
        </table>
      </subsection>

      <subsection name="Tidy Imports (Tim)">

        <p>Tim is a handy utility that can be executed on the command
        line or via Ant that automatically formats your import
        declarations. Tim is capable of removing unused imports,
        expanding or collapsing imports and even organising them into
        pre-determined groups.</p>
        
        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.3 and later</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.chive.com/tim.htm">http://www.chive.com/tim.htm</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:support@chive.com">support@chive.com</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Commercial</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 to 1.4.1</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>
      
      <subsection name="Version_Tool">
        <p>A versioning tool for Ant.</p>
        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.5.1</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://ant.ryangrier.com/">http://ant.ryangrier.com/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:version_tool@ryangrier.com">version_tool@ryangrier.com</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>BSD license</td>
          </tr>
        </table>
      </subsection>

      <subsection name="VPP">

        <p>VPP provides general file preprocessing support based on
        the Velocity Template Engine.  The core funtionality is
        provided as a filter for use with tasks that supports filter
        chains.  Also included are replacement tasks for &lt;copy&gt; and
        &lt;javac&gt; that integrate support for preprocessing.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>1.5.1 and above</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://vpp.sourceforge.net/">http://vpp.sourceforge.net/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:vpp-user@lists.sourceforge.net">vpp-user@lists.sourceforge.net</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>BSD license</td>
          </tr>
        </table>
      </subsection>

      <subsection name="WOProject">

        <p>WOProject provides a set of tools to work with 
        <a href="http://webobjects.com/">WebObjects 5.1</a> 
        independent from platform and IDE. It significantly 
        improves developer productivity
        and makes complex project structures more flexible compared to
        traditional Makefile-based approach.
        </p>
        
        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.4</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://objectstyle.org/woproject/">http://objectstyle.org/woproject/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:andrus@objectstyle.org">Andrus Adamchik</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Apache license</td>
          </tr>
        </table>
      </subsection>

      <subsection name="XDoclet">

        <p>XDoclet is an extended Javadoc Doclet engine for use in Ant.
           It lets you create custom Javadoc @tags and based on those tags 
           generates source code or other files (such as xml-ish deployment 
           descriptors). Templates and matching tasks are provided to generate
           EJB and web application deployment descriptors.
           </p>
        
        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.4</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://sourceforge.net/projects/xdoclet/">http://sourceforge.net/projects/xdoclet/</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>BSD license</td>
          </tr>
        </table>
      </subsection>
      
     <subsection name="XmlTask">

        <p>XmlTask provides a simple means to modify XML documents
        without having to learn XSLT. A simple path reference to an
        XML node specifies the node you want to change, and how you
        want to allow XML insertion and removal, or attribute
        changes. The emphasis is on providing the simplest means to
        perform common XML replacements</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.4 and later</td>  
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.oopsconsultancy.com/software/xmltask.html">http://www.oopsconsultancy.com/software/xmltask.html</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:xmltask@oopsconsultancy.com">xmltask@oopsconsultancy.com</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>GNU General Public License</td>
          </tr>
        </table>
      </subsection>

      <subsection name="yGuard">

        <p>yGuard is a free Java(TM) Bytecode Obfuscator Task that
        needs no external script or project files. It can completely
        be configured and run through the Ant build script. The task
        supports multiple Jar files at once and makes use of
        patternsets and regular expressions to specify elements, which
        should be left unobfuscated.  Additionally it can be used to
        produce patches for obfuscated applications that have already
        been deployed.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.5 and later</td>  
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.yworks.com/products/yguard">http://www.yworks.com/products/yguard</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:yguard@yworks.com">yGuard@yWorks.com</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Library: LGPL, Task: Commercial</td>
          </tr>
        </table>
      </subsection>
      
    </section>

    <section name="Compiler Implementations">
      <subsection name="miniRMI &lt;code&gt;&amp;lt;rmic&amp;gt;&lt;/code&gt; implementation">

        <p>miniRMI is a freeware opensource library that serves as a
        lightweight replacement for the original java.rmi packages and
        is suitable especially for applets. Ant 1.4+
        <code>&lt;rmic&gt;</code> adapter included.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.4 and later</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://dione.zcu.cz/~toman40/miniRMI/">http://dione.zcu.cz/~toman40/miniRMI/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:Petr.Toman@pinknet.cz">Petr Toman</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Gnu Lesser Public License</td>
          </tr>
        </table>

      </subsection>
    </section>

    <section name="IDE and 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="AntMan">

        <p>An AddIn that integrates Ant with the JDeveloper IDE</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.4.1</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.erudra.com/antman/index.html">http://www.erudra.com/antman/index.html</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:ashok@erudra.com">Ashok Sridhar</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>GNU General Public 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="Eclipse">

        <p>Eclipse is a universal tool platform with Ant integration.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.3 - 1.4.1</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.eclipse.org">http://www.eclipse.org</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="news://news.eclipse.org/eclipse.tools">news://news.eclipse.org/eclipse.tools</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Common Public License Version 1.0</td>
          </tr>
        </table>
      </subsection>

      <subsection name="HP RadPak">

        <p>
        RadPak comes with the (free) HP Bluestone HPAS J2EE server, and is primarily 
        a GUI tool for packaging and deploying java web and EJB applications
        as WAR and EAR files. The tool is ant based, and can be used with
        as a GUI for general ant development, providing form based entry 
        of task attributes, and an animated display of task
        execution. 
        </p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>bundles Ant 1.3 and docs; adds a jar of extra tasks
            to any existing ant installation under ANT_HOME</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.bluestone.com/products/hp-as/">http://www.bluestone.com/products/hp-as/</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Proprietary but free to download</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="JDE(E) 2.2.8">

        <p>The Java Development Environment for Emacs (JDEE) supports
        Apache Ant as one of three built-in ways to build your
        applications.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.2 and later</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://jde.sunsite.dk/">http://jde.sunsite.dk/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:jde-subscribe@sunsite.auc.dk">JDEE Mailing list.</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>GNU General Public License</td>
          </tr>
        </table>
      </subsection>

      <subsection name="NetBeans / Sun ONE Studio">

        <p>A module that integrates Ant into the NetBeans or Sun ONE Studio (formerly Forte for Java) IDEs.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>bundles Ant 1.5.1</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>

      <subsection name="Oracle9i JDeveloper">

        <p>Java IDE with support for Ant.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Ant 1.5.1</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://otn.oracle.com/products/jdev/">http://otn.oracle.com/products/jdev/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:jdeveloperbeta_us@oracle.com">jdeveloperbeta_us@oracle.com</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Commercial</td>
          </tr>
        </table>
      </subsection>

      <subsection name="WebSphere Studio Application Developer">

        <p>WSAD features Ant integrate by virtue of being built on the Eclipse tools platform.</p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>bundles Ant 1.4.1</td>
          </tr>
          <tr>
            <th>Article:</th>
            <td><a href="http://www7b.software.ibm.com/wsdd/library/techarticles/0203_searle/searle1.html">Ant Integration Part1</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Commercial</td>
          </tr>
        </table>
      </subsection>

    </section>
    
  </body>
</document>
