diff --git a/proposal/myrmidon/docs/todo.html b/proposal/myrmidon/docs/todo.html index ad6f184ae..6be2925da 100644 --- a/proposal/myrmidon/docs/todo.html +++ b/proposal/myrmidon/docs/todo.html @@ -133,6 +133,84 @@ by Myrmidon.

(e.g. Zip/Jar/Tar file systems, gzip/encoding file systems, virtual file systems). + + + + + + + diff --git a/proposal/myrmidon/src/xdocs/todo.xml b/proposal/myrmidon/src/xdocs/todo.xml index a00b7b4a7..3dd3fde97 100644 --- a/proposal/myrmidon/src/xdocs/todo.xml +++ b/proposal/myrmidon/src/xdocs/todo.xml @@ -73,6 +73,79 @@ by Myrmidon.

+ + +

The file data-types, such as <fileset> and +<path>, are some of the most widely used parts of Ant 1.x. +Unfortunately, they aren't particularly extensible.

+ + + +
+

One of the goals of Ant 2 is to allow the user to easily customise and

+ + File Data-Types and Tasks + +
+
+

The file data-types, such as <fileset> and +<path>, are some of the most widely used parts of Ant 1.x. +Unfortunately, they aren't particularly extensible.

+
    +
  • Redesign the file data-types, replacing them with an interface-based + API, plus a set of implementations. The API should use the VFS file + FileObject, rather than java.io.File. + This process has started, in the antlib.vfile package. +
  • +
  • File Selectors: +
      +
    • Change AbstractNameFileSelector to use Ant 1 style patterns + matches, rather than Globs patterns.
    • +
    • Add 'defaultexcludes' to DefaultFileSet. Also add a + file selector implementation that matches everything except the default + excludes.
    • +
    • Add a condition -> file selector adaptor, so that arbitrary conditions + can be used to select files.
    • +
    • Add a name selector that loads patterns from a file.
    • +
    • Add more selector implementations: size and last-modified comparisons, + checksum comparison, byte-wise content comparison.
    • +
  • +
  • File Name Mappers: +
      +
    • Add a file name mapper interface, and port the current Mapper + implementations to it.
    • +
  • +
  • File Sets: +
      +
    • Add a file set implementation that uses a mapper to transform a nested + file set.
    • +
    • Add a file set implementation that provides the union of several + nested file sets (that is, a file set that merges several file sets + together).
    • +
    • Add a file set implementation that filters files that are up-to-date + WRT some other file. Alternatively, this might be better done using a + file selector.
    • +
  • +
  • Paths: +
      +
    • Add path implementations that evaluate to the system classpath, + and the ant runtime classpath. Or, more generally, combine this with + ClassLoaderManager to evaluate to the classpath of any + 'library' (e.g. system classpath, ant runtime, tools.jar, + an antlib, an installed extension, or the system classes of another JVM + for cross-compiling).
    • +
  • +
  • File Filters: +
      +
    • Add a file filter interface, and use it in the copy task.
    • +
    • Add a filter implementation that applies the token replacement that + the old copy task provides.
    • +
    • Add a filter that does cr/lf translation.
    • +
    • Add a gzip/gunzip filter.
    • +
    • Add a filter that applies character set encode/decode.
    • +
  • +
  • Copy task: +
      +
    • Implement 'preservelastmodified', 'overwrite', and 'includeemptydirs'.
    • +
    • Support a file name mapper.
    • +
    • Support file filters.
    • +
  • +
  • Implement the <move>, <delete>, + <touch> and <mkdir> tasks on top + of the VFS and the new file data-types. Might be some scope for generalising + 'touch' and 'mkdir' into a single task.