* 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>
* 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>
* 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>
* 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.
* 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.
* Make all datatypes interfaces to allow them to be customized in many
ways.
* Set arithmetic for fileset/patternset/*set
* inheritance of ant properties/datatypes/context etc in project hierarchy
* inheritance of between ant datatypes. ie fileset A inherits from fileset B
(includes
all entries in A).
* Homogenize notion of PATHs and filesets.