More todo list updates. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271708 13f79535-47bb-0310-9956-ffa450edef68master
@@ -613,153 +613,59 @@ attributes:</p> | |||
<tr><td> | |||
<blockquote> | |||
<p> | |||
The following table lists some of the current set of tasks. You can find | |||
example usages of these tasks in the sample project file | |||
<code>src/make/sample.ant</code>. | |||
Listed below are some of the current set of tasks. You can find example | |||
usages of these tasks in the sample project file <code>src/make/sample.ant</code>. | |||
</p> | |||
<table> | |||
<tr> | |||
<td bgcolor="#039acc" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
Task | |||
</font> | |||
</td> | |||
<td bgcolor="#039acc" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
Description | |||
</font> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor="#a0ddf0" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
fail | |||
</font> | |||
</td> | |||
<td bgcolor="#a0ddf0" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
Causes the build to fail. | |||
</font> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor="#a0ddf0" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
if | |||
</font> | |||
</td> | |||
<td bgcolor="#a0ddf0" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
Conditionally executes a set of tasks. | |||
</font> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor="#a0ddf0" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
load-properties | |||
</font> | |||
</td> | |||
<td bgcolor="#a0ddf0" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
Loads a set of properties from a file. | |||
</font> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor="#a0ddf0" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
log | |||
</font> | |||
</td> | |||
<td bgcolor="#a0ddf0" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
Writes a log message. | |||
</font> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor="#a0ddf0" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
property | |||
</font> | |||
</td> | |||
<td bgcolor="#a0ddf0" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
Sets a property. | |||
</font> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor="#a0ddf0" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
try-catch | |||
</font> | |||
</td> | |||
<td bgcolor="#a0ddf0" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
Runs a set of tasks, with a provided error and clean-up handler. | |||
</font> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor="#a0ddf0" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
converter-def | |||
</font> | |||
</td> | |||
<td bgcolor="#a0ddf0" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
Register a type converter. These are used when configuring a task | |||
or data-type from attributes. | |||
</font> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor="#a0ddf0" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
type-def | |||
</font> | |||
</td> | |||
<td bgcolor="#a0ddf0" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
Register a task or data-type. | |||
</font> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td bgcolor="#a0ddf0" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
import | |||
</font> | |||
</td> | |||
<td bgcolor="#a0ddf0" colspan="" rowspan="" | |||
valign="top" align="left"> | |||
<font color="#000000" size="-1" face="arial,helvetica,sanserif"> | |||
Register the contents of an antlib. | |||
</font> | |||
</td> | |||
</tr> | |||
</table> | |||
<h3><code><condition></code></h3> | |||
<p>Sets a property if a particular condition is true. See | |||
<a href="#Conditions">Conditions</a> for a list of available conditions.</p> | |||
<h3><code><fail></code></h3> | |||
<p>Causes the build to fail.</p> | |||
<h3><code><if></code></h3> | |||
<p>Conditionally executes a set of tasks.</p> | |||
<h3><code><load-properties></code></h3> | |||
<p>Loads a set of properties from a file.</p> | |||
<h3><code><log></code></h3> | |||
<p>Writes a log message.</p> | |||
<h3><code><property></code></h3> | |||
<p>Sets a property.</p> | |||
<h3><code><try-catch></code></h3> | |||
<p>Runs a set of tasks, with a provided error and clean-up handler.</p> | |||
<h3><code><converter-def></code></h3> | |||
<p>Register a type converter. These are used when configuring a task | |||
or data-type from attributes.</p> | |||
<h3><code><type-def></code></h3> | |||
<p>Register a task or data-type.</p> | |||
<h3><code><import></code></h3> | |||
<p>Register the contents of an antlib.</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="Conditions"><strong>Conditions</strong></a> | |||
</font> | |||
</td></tr> | |||
<tr><td> | |||
<blockquote> | |||
<p>The following conditions are available </p> | |||
<h3><code><and></code></h3> | |||
<p>Evaluates a set of nested conditions, and AND them together. Evaluation is | |||
lazy. An empty <code><and></code> condition evaluates to true.</p> | |||
<h3><code><available></code></h3> | |||
<p>Tests if a particular class or resource is available.</p> | |||
<h3><code><file-test></code></h3> | |||
<p>Tests a file against a set of <a href="vfs.html#File Selectors">file selectors</a>.</p> | |||
<h3><code><is-set></code></h3> | |||
<p>Tests whether a proeprty is set, and not set to 'false'.</p> | |||
<h3><code><or></code></h3> | |||
<p>Evaluates a set of nested conditions, and OR them together. Evaluation is | |||
lazy. An empty <code><or></code> evaluates to true.</p> | |||
<h3><code><os></code></h3> | |||
<p>Tests which operating system the build is running on.</p> | |||
<h3><code><not></code></h3> | |||
<p>Negates a nested condition.</p> | |||
</blockquote> | |||
</td></tr> | |||
</table> | |||
@@ -0,0 +1,232 @@ | |||
<!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="Peter Donald"> | |||
<meta name="email" value="peter@apache.org"> | |||
<title>Apache Myrmidon - Writing a task</title> | |||
</head> | |||
<body bgcolor="#ffffff" text="#000000" link="#525D76"> | |||
<table border="0" width="100%" cellspacing="0"> | |||
<!-- TOP IMAGE --> | |||
<tr> | |||
<td> <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> | |||
</td> | |||
<td valign="bottom"><div align="right"><b><font size="+3" color="#525D76">Apache Myrmidon</font></b></div></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>Myrmidon</strong></p> | |||
<ul> | |||
<li> <a href="./index.html">Introduction</a> | |||
</li> | |||
<li> <a href="./getinvolved.html">Get Involved</a> | |||
</li> | |||
<li> <a href="./user.html">Building Myrmidon</a> | |||
</li> | |||
<li> <a href="./todo.html">Todo List</a> | |||
</li> | |||
</ul> | |||
<p><strong>User Guide</strong></p> | |||
<ul> | |||
<li> <a href="./buildfile.html">Build file</a> | |||
</li> | |||
<li> <a href="./vfs.html">Virtual File System</a> | |||
</li> | |||
</ul> | |||
<p><strong>Extending Ant</strong></p> | |||
<ul> | |||
<li> <a href="./task.html">Task Writers HOWTO</a> | |||
</li> | |||
<li> <a href="./classloader.html">ClassLoader HOWTO</a> | |||
</li> | |||
<li> <a href="./librarys.html">Library HOWTO</a> | |||
</li> | |||
</ul> | |||
<p><strong>Container Design</strong></p> | |||
<ul> | |||
</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="Writing a Task"><strong>Writing a Task</strong></a> | |||
</font> | |||
</td></tr> | |||
<tr><td> | |||
<blockquote> | |||
<p>In ant1 it was very easy to write your own task. In Ant2 we plan | |||
to make it even easier. To write a basic task simply follow the following | |||
formula.</p> | |||
<ol> | |||
<li> | |||
Create a Java class that extends | |||
<code>org.apache.myrmidon.api.AbstractTask</code> | |||
</li> | |||
<li> | |||
For each attribute, write a setter method. The setter method | |||
must be a public void method that takes a single argument. The name | |||
of the method must begin with "set", 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>String</li> | |||
<li> | |||
Any primitive type - they are converted for you from their | |||
String-representation in the buildfile | |||
</li> | |||
<li> | |||
File - the string representation will be interpreted relative to | |||
the project's basedir. | |||
</li> | |||
</ul> | |||
</li> | |||
<li> | |||
For each nested element create a public void method that takes a single | |||
argument. The name of the method must begin with "add", followed by the | |||
attribute name, with the first character of the name in uppercase, and | |||
the rest in lowercase. The type of the parameter is an object with a | |||
no-arguement constructor. It is configured in exactly the same was a | |||
task is configured (via setters and adders) and then added to the task. | |||
</li> | |||
<li> | |||
Write a public void method named "execute" with no arguments that | |||
throws a TaskException. This is the method called to do the | |||
actual work of the task. | |||
</li> | |||
</ol> | |||
<table border="0" cellspacing="0" cellpadding="2" width="100%"> | |||
<tr><td bgcolor="#828DA6"> | |||
<font color="#ffffff" face="arial,helvetica,sanserif"> | |||
<a name="A Basic Example"><strong>A Basic Example</strong></a> | |||
</font> | |||
</td></tr> | |||
<tr><td> | |||
<blockquote> | |||
<p>So a basic task that has one attribute named "message" and just prints | |||
out this message is as simple as;</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> | |||
package org.realityforge.tasks; | |||
import org.apache.myrmidon.api.AbstractTask; | |||
import org.apache.myrmidon.api.TaskException; | |||
public class SystemOutPrinterTask | |||
extends Task | |||
{ | |||
private String m_message; | |||
// The setter for the "message" attribute | |||
public void setMessage( final String message ) | |||
{ | |||
m_message = message; | |||
} | |||
// The method executing the task | |||
public void execute() | |||
throws TaskException | |||
{ | |||
System.out.println( m_message ); | |||
} | |||
} | |||
</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>To use this task you <em>could</em> create a library but instead we will | |||
just use <taskdef> to define the task. An example usage would be;</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> | |||
<?xml version="1.0"?> | |||
<project version="2.0"> | |||
<target name="main"> | |||
<taskdef name="printer" | |||
classname="org.realityforge.tasks.SystemOutPrinterTask" | |||
classpath="build/classes"/> | |||
<printer message="Hello World!"/> | |||
</target> | |||
</project> | |||
</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> | |||
</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 © 2000-2002, Apache Software Foundation | |||
</em></font></div> | |||
</td></tr> | |||
</table> | |||
</body> | |||
</html> | |||
<!-- end the processing --> | |||
@@ -159,12 +159,15 @@ | |||
<li>Add 'defaultexcludes' to <code>DefaultFileSet</code>. Also add a | |||
file selector implementation that matches everything except the default | |||
excludes.</li> | |||
<li>Add a condition -> file selector adaptor, so that arbitrary conditions | |||
can be used to select files.</li> | |||
<li>Add a name selector that loads patterns from a file.</li> | |||
<li>Add more selector implementations: size and last-modified comparisons, | |||
checksum comparison, byte-wise content comparison.</li> | |||
</ul></li> | |||
<li>File conditions: | |||
<ul> | |||
<li>Add more condition implementations that perform checks on files. | |||
One that searches a path for a file would be useful.</li> | |||
</ul></li> | |||
<li>File Name Mappers: | |||
<ul> | |||
<li>Add a file name mapper interface, and port the current Mapper | |||
@@ -190,15 +193,7 @@ | |||
an antlib, an installed extension, or the system classes of another JVM | |||
for cross-compiling).</li> | |||
</ul></li> | |||
<li>File Filters: | |||
<ul> | |||
<li>Add a file filter interface, and use it in the copy task.</li> | |||
<li>Add a filter implementation that applies the token replacement that | |||
the old copy task provides.</li> | |||
<li>Add a filter that does cr/lf translation.</li> | |||
<li>Add a gzip/gunzip filter.</li> | |||
<li>Add a filter that applies character set encode/decode.</li> | |||
</ul></li> | |||
<li>Port across the Ant 1 file filter proposal, once it is complete.</li> | |||
<li>Copy task: | |||
<ul> | |||
<li>Implement 'preservelastmodified', 'overwrite', and 'includeemptydirs'.</li> | |||
@@ -244,6 +239,27 @@ | |||
</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"> | |||
<a name="Scripting"><strong>Scripting</strong></a> | |||
</font> | |||
</td></tr> | |||
<tr><td> | |||
<blockquote> | |||
<p>Add the ability to extend Ant using languages other than | |||
Java:</p> | |||
<ul> | |||
<li>Define a task using a scripting language such as Javascript.</li> | |||
<li>Use Rhino's ability to implement Java interfaces, to | |||
implement and define types, such as FileSelector, or | |||
Condition.</li> | |||
<li>Define a task using template.</li> | |||
<li>Add some lightweight scripting tasks.</li> | |||
</ul> | |||
</blockquote> | |||
</td></tr> | |||
</table> | |||
<table border="0" cellspacing="0" cellpadding="2" width="100%"> | |||
<tr><td bgcolor="#828DA6"> | |||
@@ -309,6 +325,12 @@ | |||
<li>Detect duplicate type names.</li> | |||
<li>Add fully qualified type names, based on antlib name and type shorthand name. | |||
Allow these to be used in build files in addition to the shorthand names.</li> | |||
<li>Move the <code><http></code> and <code><socket></code> | |||
conditions to an antlib. Need to resolve how these will be passed a logger.</li> | |||
<li>Make the <code><uptodate></code> task a condition, and move to | |||
an antlib.</li> | |||
<li>Split up <code><is-set></code> condition into is-set and is-true conditions.</li> | |||
<li>Allow the <code><if></code> task to take any condition implementation.</li> | |||
<li>Unit tests.</li> | |||
</ul> | |||
</blockquote> | |||
@@ -367,9 +367,13 @@ | |||
<h3><code><basename></code></h3> | |||
<p>Selects files whose base name matches an Ant 1 style pattern, or a regular | |||
expression.</p> | |||
<h3><code><condition></code></h3> | |||
<p>Takes a set of <a href="buildfile.html#Conditions">conditions</a>. If | |||
the conditions evaluate to true, then select every file. Otherwise, | |||
select no files.</p> | |||
<h3><code><exists></code></h3> | |||
<p>Selects files that exist.</p> | |||
<h3><code><is-empty></code></h3> | |||
<h3><code><is-empty-folder></code></h3> | |||
<p>Selects empty folders, that is, folders that have no children.</p> | |||
<h3><code><is-folder></code></h3> | |||
<p>Selects folders, does not select regular files.</p> | |||
@@ -206,53 +206,74 @@ attributes:</p> | |||
<section name="Tasks"> | |||
<p> | |||
The following table lists some of the current set of tasks. You can find | |||
example usages of these tasks in the sample project file | |||
<code>src/make/sample.ant</code>. | |||
Listed below are some of the current set of tasks. You can find example | |||
usages of these tasks in the sample project file <code>src/make/sample.ant</code>. | |||
</p> | |||
<table> | |||
<tr><th>Task</th><th>Description</th></tr> | |||
<tr> | |||
<td>fail</td> | |||
<td>Causes the build to fail.</td> | |||
</tr> | |||
<tr> | |||
<td>if</td> | |||
<td>Conditionally executes a set of tasks.</td> | |||
</tr> | |||
<tr> | |||
<td>load-properties</td> | |||
<td>Loads a set of properties from a file.</td> | |||
</tr> | |||
<tr> | |||
<td>log</td> | |||
<td>Writes a log message.</td> | |||
</tr> | |||
<tr> | |||
<td>property</td> | |||
<td>Sets a property.</td> | |||
</tr> | |||
<tr> | |||
<td>try-catch</td> | |||
<td>Runs a set of tasks, with a provided error and clean-up handler.</td> | |||
</tr> | |||
<tr> | |||
<td>converter-def</td> | |||
<td>Register a type converter. These are used when configuring a task | |||
or data-type from attributes.</td> | |||
</tr> | |||
<tr> | |||
<td>type-def</td> | |||
<td>Register a task or data-type.</td> | |||
</tr> | |||
<tr> | |||
<td>import</td> | |||
<td>Register the contents of an antlib.</td> | |||
</tr> | |||
</table> | |||
<h3><code><condition></code></h3> | |||
<p>Sets a property if a particular condition is true. See | |||
<a href="#Conditions">Conditions</a> for a list of available conditions.</p> | |||
<h3><code><fail></code></h3> | |||
<p>Causes the build to fail.</p> | |||
<h3><code><if></code></h3> | |||
<p>Conditionally executes a set of tasks.</p> | |||
<h3><code><load-properties></code></h3> | |||
<p>Loads a set of properties from a file.</p> | |||
<h3><code><log></code></h3> | |||
<p>Writes a log message.</p> | |||
<h3><code><property></code></h3> | |||
<p>Sets a property.</p> | |||
<h3><code><try-catch></code></h3> | |||
<p>Runs a set of tasks, with a provided error and clean-up handler.</p> | |||
<h3><code><converter-def></code></h3> | |||
<p>Register a type converter. These are used when configuring a task | |||
or data-type from attributes.</p> | |||
<h3><code><type-def></code></h3> | |||
<p>Register a task or data-type.</p> | |||
<h3><code><import></code></h3> | |||
<p>Register the contents of an antlib.</p> | |||
</section> | |||
<section name="Conditions"> | |||
<p>The following conditions are available </p> | |||
<h3><code><and></code></h3> | |||
<p>Evaluates a set of nested conditions, and AND them together. Evaluation is | |||
lazy. An empty <code><and></code> condition evaluates to true.</p> | |||
<h3><code><available></code></h3> | |||
<p>Tests if a particular class or resource is available.</p> | |||
<h3><code><file-test></code></h3> | |||
<p>Tests a file against a set of <a href="vfs.html#File Selectors">file selectors</a>.</p> | |||
<h3><code><is-set></code></h3> | |||
<p>Tests whether a proeprty is set, and not set to 'false'.</p> | |||
<h3><code><or></code></h3> | |||
<p>Evaluates a set of nested conditions, and OR them together. Evaluation is | |||
lazy. An empty <code><or></code> evaluates to true.</p> | |||
<h3><code><os></code></h3> | |||
<p>Tests which operating system the build is running on.</p> | |||
<h3><code><not></code></h3> | |||
<p>Negates a nested condition.</p> | |||
</section> | |||
</body> | |||
</document> |
@@ -74,12 +74,15 @@ | |||
<li>Add 'defaultexcludes' to <code>DefaultFileSet</code>. Also add a | |||
file selector implementation that matches everything except the default | |||
excludes.</li> | |||
<li>Add a condition -> file selector adaptor, so that arbitrary conditions | |||
can be used to select files.</li> | |||
<li>Add a name selector that loads patterns from a file.</li> | |||
<li>Add more selector implementations: size and last-modified comparisons, | |||
checksum comparison, byte-wise content comparison.</li> | |||
</ul></li> | |||
<li>File conditions: | |||
<ul> | |||
<li>Add more condition implementations that perform checks on files. | |||
One that searches a path for a file would be useful.</li> | |||
</ul></li> | |||
<li>File Name Mappers: | |||
<ul> | |||
<li>Add a file name mapper interface, and port the current Mapper | |||
@@ -105,15 +108,7 @@ | |||
an antlib, an installed extension, or the system classes of another JVM | |||
for cross-compiling).</li> | |||
</ul></li> | |||
<li>File Filters: | |||
<ul> | |||
<li>Add a file filter interface, and use it in the copy task.</li> | |||
<li>Add a filter implementation that applies the token replacement that | |||
the old copy task provides.</li> | |||
<li>Add a filter that does cr/lf translation.</li> | |||
<li>Add a gzip/gunzip filter.</li> | |||
<li>Add a filter that applies character set encode/decode.</li> | |||
</ul></li> | |||
<li>Port across the Ant 1 file filter proposal, once it is complete.</li> | |||
<li>Copy task: | |||
<ul> | |||
<li>Implement 'preservelastmodified', 'overwrite', and 'includeemptydirs'.</li> | |||
@@ -155,6 +150,19 @@ | |||
</subsection> | |||
<subsection name="Scripting"> | |||
<p>Add the ability to extend Ant using languages other than | |||
Java:</p> | |||
<ul> | |||
<li>Define a task using a scripting language such as Javascript.</li> | |||
<li>Use Rhino's ability to implement Java interfaces, to | |||
implement and define types, such as FileSelector, or | |||
Condition.</li> | |||
<li>Define a task using template.</li> | |||
<li>Add some lightweight scripting tasks.</li> | |||
</ul> | |||
</subsection> | |||
<subsection name="Documentation"> | |||
<p>Everyone loves writing documentation, and so a goal for Ant 2 is to | |||
@@ -209,6 +217,12 @@ | |||
<li>Detect duplicate type names.</li> | |||
<li>Add fully qualified type names, based on antlib name and type shorthand name. | |||
Allow these to be used in build files in addition to the shorthand names.</li> | |||
<li>Move the <code><http></code> and <code><socket></code> | |||
conditions to an antlib. Need to resolve how these will be passed a logger.</li> | |||
<li>Make the <code><uptodate></code> task a condition, and move to | |||
an antlib.</li> | |||
<li>Split up <code><is-set></code> condition into is-set and is-true conditions.</li> | |||
<li>Allow the <code><if></code> task to take any condition implementation.</li> | |||
<li>Unit tests.</li> | |||
</ul> | |||
@@ -163,6 +163,12 @@ | |||
<p>Selects files whose base name matches an Ant 1 style pattern, or a regular | |||
expression.</p> | |||
<h3><code><condition></code></h3> | |||
<p>Takes a set of <a href="buildfile.html#Conditions">conditions</a>. If | |||
the conditions evaluate to true, then select every file. Otherwise, | |||
select no files.</p> | |||
<h3><code><exists></code></h3> | |||
<p>Selects files that exist.</p> | |||