diff --git a/proposal/myrmidon/docs/user.html b/proposal/myrmidon/docs/user.html index 8a05f3faa..4ccd471a3 100644 --- a/proposal/myrmidon/docs/user.html +++ b/proposal/myrmidon/docs/user.html @@ -65,6 +65,70 @@ to use Ant 1.4.1 or later. The default target builds the Myrmidon distribution into the dist directory. The distribution is a ready-to-run installation of Myrmidon.

+

There are a number features that are not built unless the appropriate optional Jar +files are found in the lib directory:

+ + + + + + + + + + + + + + + + +
+ + Feature + + + + Jar File + + + + Download From + +
+ + SMB VFS support (Samba, Windows shares) + + + + jcifs.jar + + + + jcifs.samba.org + +
+ + FTP VFS support + + + + netcomponents.jar + + + + www.savarese.org + +
@@ -731,6 +795,332 @@ attributes:

+ + + +
+ + Handling Files + +
+
+

Myrmidon includes a Virtual File System (VFS), which allows files from +different sources to be treated identically. The VFS currently supports +the following file types:

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + File System + + + + Description + + + + URL Format + +
+ + Local Files + + + + Files on the local file system. + + + + Three different formats are currently supported for local file names: +
    +
  • file:// absolute-file-name
  • +
  • Absolute file names
  • +
  • Relative file names. These are resolved relative to the + project's base directory. +
  • +
+ +
+
+ + Zip Files + + + + The contents of Zip files (and Jar, War, and Ear files). + Currently, the VFS supports read-only access to Zip file contents, + and only for local Zip files. + + + + zip:// zip-file-path [!absolute-path] + +
+ + FTP + + + + Files on an FTP server. + + + + ftp:// [[password:] username@] hostname [:port] [absolute-path] + +
+ + SMB + + + + Files on a CFIS server, such as Samba or Windows shares. + + + + smb:// [[password:] username@] hostname [:port] [absolute-path] + +
+

Here are some example URLs:

+
    +
  • build/classes
  • +
  • c:\program files\ant\bin
  • +
  • file://C:/program files/ant
  • +
  • zip://build/lib/ant.jar!/org/apache/tools
  • +
  • ftp://adam@somehost/pub/downloads
  • +
  • smb://password:adam@somehost/home/adam
  • +
+

Currently, there are only a handful of VFS aware tasks. This will grow +as more tasks are ported to the new API, and data types.

+ + + +
+ + File Sets + +
+
+

A file set in Myrmidon is more general than Ant 1's concept of a file set. +Firstly, there is more than one type of file set. Secondly, they are VFS enabled. +File sets are automatically converted to a path, and so +can be used anywhere that a path can.

+

<v-fileset>

+

This is the equivalent of Ant 1's <fileset> (The name +is temporary, it will be changed to <fileset> once more +porting work as been completed).

+

Rather than use a set of include and exclude patterns to choose the files +that make up the file set, <v-fileset> takes zero or more +file selectors. File selectors can be used to +select files based on any attribute of the file, rather than just the name. +You can use <name> selectors to achieve the same result +as using includes or excludes.

+

A <v-fileset> element takes the following attributes:

+ + + + + + + + + + + +
+ + Attribute + + + + Description + + + + Default Value + +
+ + dir + + + + The base directory for the file set. This can be any URL that the + VFS supports. + + + + Required + +
+

A <v-fileset> element takes any number of nested +file selector elements. To be included in the +file set, a file must be selected by all the file selectors. That is, the +file selectors are implicitly AND-ed together. If no file selector is provided, +all the files and directories are included in the set.

+

An example:

+
+ + + + + + + + + + + + + + + + +
+
+<v-fileset dir="src">
+    <name pattern="org/apache/tools/ant/**"/>
+    <is-file/>
+</v-fileset>
+
+
+

<flat-fileset>

+

This file set takes a set of nested file sets and paths, and flattens them +into a single directory. It can be used as a way of converting a path into a +file set. It can also be used as a replacement for the flatten +attribute for the copy and move tasks.

+

A <flat-fileset> element takes no attributes, and a set +of nested paths or file sets.

+

An example:

+
+ + + + + + + + + + + + + + + + +
+
+<v-copy todir="dist/lib">
+  <flat-fileset>
+    <v-fileset dir="build/lib">
+        <basename pattern="*.jar"/>
+    <v-fileset>
+    <v-path path="${classpath}"/>
+  </flat-fileset>
+</v-copy>
+
+
+
+
+ + + +
+ + Paths + +
+
+

Paths are an ordered list of files.

+

<v-path>

+

This is the equivalent of Ant 1's <path>.

+

<filtered-path>

+

A path that applies file selectors to a set of nested file sets and paths.

+
+
+ + + +
+ + File Selectors + +
+
+

File selectors are used to select files from file sets and paths.

+

<and>

+

Combines zero or more file selectors, using AND. An empty <and> +selector accepts all files.

+

<basename>

+

Selects files whose base name matches an Ant 1 style pattern, or a regular +expression.

+

<exists>

+

Selects files that exist.

+

<is-empty>

+

Selects empty folders, that is, folders that have no children.

+

<is-folder>

+

Selects folders, does not select regular files.

+

<is-file>

+

Selects regular files, does not select folders.

+

<name>

+

Selects files whose path in a file set matches an Ant 1 style pattern, or +a regular expression.

+

<not>

+

Selects files that are not selected by a nested file selector.

+

<or>

+

Combines zero or more file selectors, using OR. An empty <or> +selector accepts all files.

+

<url>

+

Selects files whose URL matches an Ant 1 style pattern, or a regular expression.

+
+
+
+
diff --git a/proposal/myrmidon/src/java/org/apache/antlib/vfile/DefaultFileSet.java b/proposal/myrmidon/src/java/org/apache/antlib/vfile/DefaultFileSet.java index 9fb1e4d6a..36f36a330 100644 --- a/proposal/myrmidon/src/java/org/apache/antlib/vfile/DefaultFileSet.java +++ b/proposal/myrmidon/src/java/org/apache/antlib/vfile/DefaultFileSet.java @@ -15,6 +15,7 @@ import org.apache.avalon.excalibur.i18n.ResourceManager; import org.apache.avalon.excalibur.i18n.Resources; import org.apache.myrmidon.api.TaskContext; import org.apache.myrmidon.api.TaskException; +import org.apache.antlib.vfile.selectors.AndFileSelector; /** * A file set, that contains those files under a directory that match diff --git a/proposal/myrmidon/src/java/org/apache/antlib/vfile/FilteredFileList.java b/proposal/myrmidon/src/java/org/apache/antlib/vfile/FilteredFileList.java index 27386c395..7db65d9e6 100644 --- a/proposal/myrmidon/src/java/org/apache/antlib/vfile/FilteredFileList.java +++ b/proposal/myrmidon/src/java/org/apache/antlib/vfile/FilteredFileList.java @@ -11,6 +11,7 @@ import java.util.ArrayList; import org.apache.aut.vfs.FileObject; import org.apache.myrmidon.api.TaskContext; import org.apache.myrmidon.api.TaskException; +import org.apache.antlib.vfile.selectors.AndFileSelector; /** * A file-list which filters another. diff --git a/proposal/myrmidon/src/java/org/apache/antlib/vfile/SingletonFileList.java b/proposal/myrmidon/src/java/org/apache/antlib/vfile/SingletonFileList.java index 13fd2ed64..472c6a5e3 100644 --- a/proposal/myrmidon/src/java/org/apache/antlib/vfile/SingletonFileList.java +++ b/proposal/myrmidon/src/java/org/apache/antlib/vfile/SingletonFileList.java @@ -16,8 +16,6 @@ import org.apache.myrmidon.api.TaskException; * * @author Adam Murdoch * - * @ant:data-type name="v-file" - * @ant:type type="v-path" name="v-file" */ public class SingletonFileList implements FileList diff --git a/proposal/myrmidon/src/java/org/apache/antlib/vfile/AbstractNameFileSelector.java b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/AbstractNameFileSelector.java similarity index 97% rename from proposal/myrmidon/src/java/org/apache/antlib/vfile/AbstractNameFileSelector.java rename to proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/AbstractNameFileSelector.java index 22d10b883..4ff1e32c5 100644 --- a/proposal/myrmidon/src/java/org/apache/antlib/vfile/AbstractNameFileSelector.java +++ b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/AbstractNameFileSelector.java @@ -5,7 +5,7 @@ * version 1.1, a copy of which has been included with this distribution in * the LICENSE.txt file. */ -package org.apache.antlib.vfile; +package org.apache.antlib.vfile.selectors; import org.apache.aut.vfs.FileObject; import org.apache.myrmidon.api.TaskContext; @@ -17,6 +17,7 @@ import org.apache.oro.text.regex.Perl5Compiler; import org.apache.oro.text.regex.Perl5Matcher; import org.apache.avalon.excalibur.i18n.ResourceManager; import org.apache.avalon.excalibur.i18n.Resources; +import org.apache.antlib.vfile.FileSelector; /** * An abstract file selector that selects files based on name. diff --git a/proposal/myrmidon/src/java/org/apache/antlib/vfile/AndFileSelector.java b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/AndFileSelector.java similarity index 94% rename from proposal/myrmidon/src/java/org/apache/antlib/vfile/AndFileSelector.java rename to proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/AndFileSelector.java index dd01cdc14..3a36ebb48 100644 --- a/proposal/myrmidon/src/java/org/apache/antlib/vfile/AndFileSelector.java +++ b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/AndFileSelector.java @@ -5,12 +5,13 @@ * version 1.1, a copy of which has been included with this distribution in * the LICENSE.txt file. */ -package org.apache.antlib.vfile; +package org.apache.antlib.vfile.selectors; import java.util.ArrayList; import org.apache.aut.vfs.FileObject; import org.apache.myrmidon.api.TaskContext; import org.apache.myrmidon.api.TaskException; +import org.apache.antlib.vfile.FileSelector; /** * A file selector that performs an AND of nested selectors. Performs diff --git a/proposal/myrmidon/src/java/org/apache/antlib/vfile/BaseNameFileSelector.java b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/BaseNameFileSelector.java similarity index 88% rename from proposal/myrmidon/src/java/org/apache/antlib/vfile/BaseNameFileSelector.java rename to proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/BaseNameFileSelector.java index fefd426b4..cb7977fa1 100644 --- a/proposal/myrmidon/src/java/org/apache/antlib/vfile/BaseNameFileSelector.java +++ b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/BaseNameFileSelector.java @@ -5,9 +5,10 @@ * version 1.1, a copy of which has been included with this distribution in * the LICENSE.txt file. */ -package org.apache.antlib.vfile; +package org.apache.antlib.vfile.selectors; import org.apache.aut.vfs.FileObject; +import org.apache.antlib.vfile.selectors.AbstractNameFileSelector; /** * A file selector that selects files based on their base-name. diff --git a/proposal/myrmidon/src/java/org/apache/antlib/vfile/ExistenceFileSelector.java b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/ExistenceFileSelector.java similarity index 93% rename from proposal/myrmidon/src/java/org/apache/antlib/vfile/ExistenceFileSelector.java rename to proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/ExistenceFileSelector.java index ad0a15657..8bc4d91aa 100644 --- a/proposal/myrmidon/src/java/org/apache/antlib/vfile/ExistenceFileSelector.java +++ b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/ExistenceFileSelector.java @@ -5,12 +5,13 @@ * version 1.1, a copy of which has been included with this distribution in * the LICENSE.txt file. */ -package org.apache.antlib.vfile; +package org.apache.antlib.vfile.selectors; import org.apache.aut.vfs.FileObject; import org.apache.aut.vfs.FileSystemException; import org.apache.myrmidon.api.TaskContext; import org.apache.myrmidon.api.TaskException; +import org.apache.antlib.vfile.FileSelector; /** * A file selector that only selects files that exist. diff --git a/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/IsEmptyFolderSelector.java b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/IsEmptyFolderSelector.java new file mode 100644 index 000000000..6aaaa9561 --- /dev/null +++ b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/IsEmptyFolderSelector.java @@ -0,0 +1,48 @@ +/* + * 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.txt file. + */ +package org.apache.antlib.vfile.selectors; + +import org.apache.antlib.vfile.FileSelector; +import org.apache.aut.vfs.FileObject; +import org.apache.aut.vfs.FileType; +import org.apache.aut.vfs.FileSystemException; +import org.apache.myrmidon.api.TaskContext; +import org.apache.myrmidon.api.TaskException; + +/** + * A file selector that selects empty directories. + * + * @author Adam Murdoch + * @version $Revision$ $Date$ + * + * @ant:data-type name="is-empty-folder-selector" + * @ant:type type="v-file-selector" name="is-empty" + */ +public class IsEmptyFolderSelector + implements FileSelector +{ + /** + * Accepts a file. + */ + public boolean accept( final FileObject file, + final String path, + final TaskContext context ) + throws TaskException + { + try + { + return ( file.exists() + && file.getType() == FileType.FOLDER + && file.getChildren().length == 0 ); + } + catch( FileSystemException e ) + { + throw new TaskException( e.getMessage(), e ); + } + } +} diff --git a/proposal/myrmidon/src/java/org/apache/antlib/vfile/IsFileSelector.java b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/IsFileSelector.java similarity index 93% rename from proposal/myrmidon/src/java/org/apache/antlib/vfile/IsFileSelector.java rename to proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/IsFileSelector.java index cc275c051..1f1ae5822 100644 --- a/proposal/myrmidon/src/java/org/apache/antlib/vfile/IsFileSelector.java +++ b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/IsFileSelector.java @@ -5,13 +5,14 @@ * version 1.1, a copy of which has been included with this distribution in * the LICENSE.txt file. */ -package org.apache.antlib.vfile; +package org.apache.antlib.vfile.selectors; import org.apache.aut.vfs.FileObject; import org.apache.aut.vfs.FileSystemException; import org.apache.aut.vfs.FileType; import org.apache.myrmidon.api.TaskContext; import org.apache.myrmidon.api.TaskException; +import org.apache.antlib.vfile.FileSelector; /** * A file selector which only selects files, not folders. diff --git a/proposal/myrmidon/src/java/org/apache/antlib/vfile/IsDirectorySelector.java b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/IsFolderSelector.java similarity index 91% rename from proposal/myrmidon/src/java/org/apache/antlib/vfile/IsDirectorySelector.java rename to proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/IsFolderSelector.java index 5a17f2d84..21a828529 100644 --- a/proposal/myrmidon/src/java/org/apache/antlib/vfile/IsDirectorySelector.java +++ b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/IsFolderSelector.java @@ -5,13 +5,14 @@ * version 1.1, a copy of which has been included with this distribution in * the LICENSE.txt file. */ -package org.apache.antlib.vfile; +package org.apache.antlib.vfile.selectors; import org.apache.aut.vfs.FileObject; import org.apache.aut.vfs.FileSystemException; import org.apache.aut.vfs.FileType; import org.apache.myrmidon.api.TaskContext; import org.apache.myrmidon.api.TaskException; +import org.apache.antlib.vfile.FileSelector; /** * A file selector which only selects folders, not files. @@ -22,7 +23,7 @@ import org.apache.myrmidon.api.TaskException; * @ant:data-type name="is-folder-selector" * @ant:type type="v-file-selector" name="is-folder" */ -public class IsDirectorySelector +public class IsFolderSelector implements FileSelector { /** diff --git a/proposal/myrmidon/src/java/org/apache/antlib/vfile/NameFileSelector.java b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/NameFileSelector.java similarity index 88% rename from proposal/myrmidon/src/java/org/apache/antlib/vfile/NameFileSelector.java rename to proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/NameFileSelector.java index 9f498b0df..be6168a13 100644 --- a/proposal/myrmidon/src/java/org/apache/antlib/vfile/NameFileSelector.java +++ b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/NameFileSelector.java @@ -5,9 +5,10 @@ * version 1.1, a copy of which has been included with this distribution in * the LICENSE.txt file. */ -package org.apache.antlib.vfile; +package org.apache.antlib.vfile.selectors; import org.apache.aut.vfs.FileObject; +import org.apache.antlib.vfile.selectors.AbstractNameFileSelector; /** * A file selector that selects files based on their name. diff --git a/proposal/myrmidon/src/java/org/apache/antlib/vfile/NotFileSelector.java b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/NotFileSelector.java similarity index 93% rename from proposal/myrmidon/src/java/org/apache/antlib/vfile/NotFileSelector.java rename to proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/NotFileSelector.java index ac67fbad2..c8963ed61 100644 --- a/proposal/myrmidon/src/java/org/apache/antlib/vfile/NotFileSelector.java +++ b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/NotFileSelector.java @@ -5,11 +5,12 @@ * version 1.1, a copy of which has been included with this distribution in * the LICENSE.txt file. */ -package org.apache.antlib.vfile; +package org.apache.antlib.vfile.selectors; import org.apache.aut.vfs.FileObject; import org.apache.myrmidon.api.TaskContext; import org.apache.myrmidon.api.TaskException; +import org.apache.antlib.vfile.FileSelector; /** * A file selector that negates a nested file selector. diff --git a/proposal/myrmidon/src/java/org/apache/antlib/vfile/OrFileSelector.java b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/OrFileSelector.java similarity index 94% rename from proposal/myrmidon/src/java/org/apache/antlib/vfile/OrFileSelector.java rename to proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/OrFileSelector.java index 32ba9330e..b9dde565a 100644 --- a/proposal/myrmidon/src/java/org/apache/antlib/vfile/OrFileSelector.java +++ b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/OrFileSelector.java @@ -5,12 +5,13 @@ * version 1.1, a copy of which has been included with this distribution in * the LICENSE.txt file. */ -package org.apache.antlib.vfile; +package org.apache.antlib.vfile.selectors; import java.util.ArrayList; import org.apache.aut.vfs.FileObject; import org.apache.myrmidon.api.TaskContext; import org.apache.myrmidon.api.TaskException; +import org.apache.antlib.vfile.FileSelector; /** * A file selector that performs an OR of nested selectors. Performs diff --git a/proposal/myrmidon/src/java/org/apache/antlib/vfile/UrlFileSelector.java b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/UrlFileSelector.java similarity index 88% rename from proposal/myrmidon/src/java/org/apache/antlib/vfile/UrlFileSelector.java rename to proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/UrlFileSelector.java index 6196831aa..b36b8c69b 100644 --- a/proposal/myrmidon/src/java/org/apache/antlib/vfile/UrlFileSelector.java +++ b/proposal/myrmidon/src/java/org/apache/antlib/vfile/selectors/UrlFileSelector.java @@ -5,9 +5,10 @@ * version 1.1, a copy of which has been included with this distribution in * the LICENSE.txt file. */ -package org.apache.antlib.vfile; +package org.apache.antlib.vfile.selectors; import org.apache.aut.vfs.FileObject; +import org.apache.antlib.vfile.selectors.AbstractNameFileSelector; /** * A file selector that selects files based on their URL. diff --git a/proposal/myrmidon/src/xdocs/user.xml b/proposal/myrmidon/src/xdocs/user.xml index c7db268f6..38fef2c03 100644 --- a/proposal/myrmidon/src/xdocs/user.xml +++ b/proposal/myrmidon/src/xdocs/user.xml @@ -24,6 +24,23 @@ into the dist directory. The distribution is a ready-to-run installation of Myrmidon.

+

There are a number features that are not built unless the appropriate optional Jar +files are found in the lib directory:

+ + + + + + + + + + + + + +
FeatureJar FileDownload From
SMB VFS support (Samba, Windows shares)jcifs.jarjcifs.samba.org
FTP VFS supportnetcomponents.jarwww.savarese.org
+
@@ -291,6 +308,199 @@ attributes:

+
+ +

Myrmidon includes a Virtual File System (VFS), which allows files from +different sources to be treated identically. The VFS currently supports +the following file types:

+ + + + + + + + + + + + + + + + + + + + + + + +
File SystemDescriptionURL Format
Local FilesFiles on the local file system.Three different formats are currently supported for local file names: +
    +
  • file:// absolute-file-name
  • +
  • Absolute file names
  • +
  • Relative file names. These are resolved relative to the + project's base directory. +
  • +
+
Zip FilesThe contents of Zip files (and Jar, War, and Ear files). + Currently, the VFS supports read-only access to Zip file contents, + and only for local Zip files.zip:// zip-file-path [!absolute-path]
FTPFiles on an FTP server.ftp:// [[password:] username@] hostname [:port] [absolute-path]
SMBFiles on a CFIS server, such as Samba or Windows shares.smb:// [[password:] username@] hostname [:port] [absolute-path]
+ +

Here are some example URLs:

+ +
    +
  • build/classes
  • +
  • c:\program files\ant\bin
  • +
  • file://C:/program files/ant
  • +
  • zip://build/lib/ant.jar!/org/apache/tools
  • +
  • ftp://adam@somehost/pub/downloads
  • +
  • smb://password:adam@somehost/home/adam
  • +
+ +

Currently, there are only a handful of VFS aware tasks. This will grow +as more tasks are ported to the new API, and data types.

+ + + +

A file set in Myrmidon is more general than Ant 1's concept of a file set. +Firstly, there is more than one type of file set. Secondly, they are VFS enabled. +File sets are automatically converted to a path, and so +can be used anywhere that a path can.

+ +

<v-fileset>

+ +

This is the equivalent of Ant 1's <fileset> (The name +is temporary, it will be changed to <fileset> once more +porting work as been completed).

+ +

Rather than use a set of include and exclude patterns to choose the files +that make up the file set, <v-fileset> takes zero or more +file selectors. File selectors can be used to +select files based on any attribute of the file, rather than just the name. +You can use <name> selectors to achieve the same result +as using includes or excludes.

+ +

A <v-fileset> element takes the following attributes:

+ + + + + + + + +
AttributeDescriptionDefault Value
dirThe base directory for the file set. This can be any URL that the + VFS supports.Required
+ +

A <v-fileset> element takes any number of nested +file selector elements. To be included in the +file set, a file must be selected by all the file selectors. That is, the +file selectors are implicitly AND-ed together. If no file selector is provided, +all the files and directories are included in the set.

+ +

An example:

+ + + + + +]]> + +

<flat-fileset>

+ +

This file set takes a set of nested file sets and paths, and flattens them +into a single directory. It can be used as a way of converting a path into a +file set. It can also be used as a replacement for the flatten +attribute for the copy and move tasks.

+ +

A <flat-fileset> element takes no attributes, and a set +of nested paths or file sets.

+ +

An example:

+ + + + + + + + + +]]> + +
+ + + +

Paths are an ordered list of files.

+ +

<v-path>

+ +

This is the equivalent of Ant 1's <path>.

+ +

<filtered-path>

+ +

A path that applies file selectors to a set of nested file sets and paths.

+ +
+ + + +

File selectors are used to select files from file sets and paths.

+ +

<and>

+ +

Combines zero or more file selectors, using AND. An empty <and> +selector accepts all files.

+ +

<basename>

+ +

Selects files whose base name matches an Ant 1 style pattern, or a regular +expression.

+ +

<exists>

+ +

Selects files that exist.

+ +

<is-empty>

+ +

Selects empty folders, that is, folders that have no children.

+ +

<is-folder>

+ +

Selects folders, does not select regular files.

+ +

<is-file>

+ +

Selects regular files, does not select folders.

+ +

<name>

+ +

Selects files whose path in a file set matches an Ant 1 style pattern, or +a regular expression.

+ +

<not>

+ +

Selects files that are not selected by a nested file selector.

+ +

<or>

+ +

Combines zero or more file selectors, using OR. An empty <or> +selector accepts all files.

+ +

<url>

+ +

Selects files whose URL matches an Ant 1 style pattern, or a regular expression.

+ +
+ +