Tidy tag soup, remove inlined styling, adjust formatting Project: http://git-wip-us.apache.org/repos/asf/ant/repo Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/94d36a9f Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/94d36a9f Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/94d36a9f
Branch: refs/heads/master Commit: 94d36a9fe7ba4f1bcb18a0501d57f72b75883d44 Parents: 66392ba Author: Gintas Grigelionis <gin...@apache.org> Authored: Thu Feb 8 16:59:52 2018 +0100 Committer: Gintas Grigelionis <gin...@apache.org> Committed: Thu Feb 8 17:00:18 2018 +0100 ---------------------------------------------------------------------- manual/Types/antlib.html | 24 +- manual/Types/assertions.html | 31 +- manual/Types/classfileset.html | 36 +- manual/Types/custom-programming.html | 15 +- manual/Types/description.html | 8 +- manual/Types/dirset.html | 6 +- manual/Types/extension.html | 13 +- manual/Types/extensionset.html | 12 +- manual/Types/filelist.html | 29 +- manual/Types/fileset.html | 11 +- manual/Types/filterchain.html | 885 +++++++++++++++--------------- manual/Types/filterset.html | 116 ++-- manual/Types/mapper.html | 103 ++-- manual/Types/multirootfileset.html | 6 +- manual/Types/namespace.html | 24 +- manual/Types/patternset.html | 19 +- manual/Types/permissions.html | 24 +- manual/Types/propertyset.html | 9 +- manual/Types/redirector.html | 12 +- manual/Types/regexp.html | 13 +- manual/Types/resources.html | 272 ++++----- manual/Types/selectors-program.html | 16 +- manual/Types/selectors.html | 339 ++++++------ manual/Types/tarfileset.html | 18 +- manual/Types/xmlcatalog.html | 61 +- manual/Types/zipfileset.html | 34 +- manual/stylesheets/style.css | 9 + 27 files changed, 1007 insertions(+), 1138 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/antlib.html ---------------------------------------------------------------------- diff --git a/manual/Types/antlib.html b/manual/Types/antlib.html index 925320a..0e738c0 100644 --- a/manual/Types/antlib.html +++ b/manual/Types/antlib.html @@ -17,13 +17,13 @@ <html> <head> - <meta http-equiv="Content-Language" content="en-us"></meta> + <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>AntLib</title> </head> <body> - <h2><a name="antlib">Antlib</a></h2> + <h2 id="antlib">Antlib</h2> <h3>Description</h3> @@ -108,7 +108,7 @@ </blockquote> - <h3><a name="antlibnamespace">Antlib namespace</a></h3> + <h3 id="antlibnamespace">Antlib namespace</h3> <p> The name space URIs with the pattern <b>antlib:<i>java package</i></b> are given special treatment. @@ -152,14 +152,14 @@ </blockquote> <p> The requirement that the resource is in the default classpath - may be removed in future versions of Ant.</p> + may be removed in future versions of Ant. </p> - <h3><a name="loadFromInside">Load antlib from inside of the buildfile</a></h3> + <h3 id="loadFromInside">Load antlib from inside of the buildfile</h3> <p> - If you want to separate the antlib from your local Ant installation, e.g. because you - want to hold that jar in your projects SCM system, you have to specify a classpath, so + If you want to separate the antlib from your local Ant installation, e.g. because you + want to hold that jar in your projects SCM system, you have to specify a classpath, so that Ant could find that jar. The best solution is loading the antlib with <tt><taskdef></tt>. </p> <blockquote> @@ -168,7 +168,7 @@ <taskdef uri="<font color="red">antlib:net.sf.antcontrib</font>" resource="net/sf/antcontrib/antlib.xml" classpath="path/to/ant-contrib.jar"/> - + <target name="iterate"> <<font color="green">antcontrib</font>:for param="file"> <fileset dir="."/> @@ -181,10 +181,7 @@ </pre> </blockquote> - - - - <h3><a name="currentnamespace">Current namespace</a></h3> + <h3 id="currentnamespace">Current namespace</h3> <p> Definitions defined in antlibs may be used in antlibs. However the namespace that definitions are placed in are dependent on @@ -258,9 +255,6 @@ </project> </pre> </blockquote> - - </body> </html> - http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/assertions.html ---------------------------------------------------------------------- diff --git a/manual/Types/assertions.html b/manual/Types/assertions.html index e168969..9942b4c 100644 --- a/manual/Types/assertions.html +++ b/manual/Types/assertions.html @@ -24,22 +24,22 @@ <body> -<h2><a name="assertions">Assertions</a></h2> +<h2 id="assertions">Assertions</h2> <p> The <tt>assertions</tt> type enables or disables the Java 1.4 assertions feature, on a whole Java program, or components of a program. It can be used in <a href="../Tasks/java.html"><code><java></code></a> and -<a href="../Tasks/junit.html"><code><junit></code></a> to add extra validation to code. +<a href="../Tasks/junit.html"><code><junit></code></a> to add extra validation to code. <p> -Assertions are covered in the +Assertions are covered in the <a href="http://docs.oracle.com/javase/7/docs/technotes/guides/language/assert.html">Java SE documentation</a>, and the <a href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.10">Java Language Specification</a>. <p> The key points to note are that a <tt>java.lang.AssertionError</tt> -is thrown when an assertion fails, and that the facility is only available +is thrown when an assertion fails, and that the facility is only available on Java 1.4 and later. To enable assertions one must set <tt>source="1.4"</tt> (or later) in <tt><javac></tt> when the source is being compiled, and that the code must contain <tt>assert</tt> statements to be tested. The @@ -47,20 +47,16 @@ result of such an action is code that neither compiles or runs on earlier versions of Java. For this reason Apache Ant itself currently contains no assertions. <p> -When assertions are enabled (or disabled) in a task through nested -assertions elements, the class loader or command line is modified with the +When assertions are enabled (or disabled) in a task through nested +assertions elements, the class loader or command line is modified with the appropriate options. This means that the JVM executed must be a Java 1.4 or later JVM, even if there are no assertions in the code. Attempting to -enable assertions on earlier VMs will result in an "Unrecognized option" -error and the JVM will not start. +enable assertions on earlier VMs will result in an "Unrecognized option" +error and the JVM will not start. <p> <h4>Attributes</h4> -<p> - - -</p> -<table border="1" cellpadding="2" cellspacing="0"> +<table> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> @@ -75,7 +71,7 @@ error and the JVM will not start. <p> When system assertions have been neither enabled nor disabled, then the JVM is not given any assertion information - the default action of the - current JVMs is to disable system assertions. + current JVMs is to disable system assertions. <p> Note also that there is no apparent documentation for what parts of the JRE come with useful assertions. @@ -87,7 +83,7 @@ JRE come with useful assertions. Enable assertions in portions of code. If neither a package nor class is specified, assertions are turned on in <i>all</i> (user) code. </p> -<table border="1" cellpadding="2" cellspacing="0"> +<table> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> @@ -113,7 +109,7 @@ If neither a package nor class is specified, assertions are turned on in <i>all< Disable assertions in portions of code. </p> -<table border="1" cellpadding="2" cellspacing="0"> +<table> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> @@ -138,7 +134,6 @@ Disable assertions in portions of code. Because assertions are disabled by default, it only makes sense to disable assertions where they have been enabled in a parent package. - <h4>Examples</h4> <h5>Example: enable assertions in all user classes</h5> @@ -190,7 +185,6 @@ Disable system assertions; enable those in the anonymous package </assertions> </pre> - <h5>Example: referenced assertions</h5> This type is a datatype, so you can declare assertions and use them later @@ -203,6 +197,5 @@ This type is a datatype, so you can declare assertions and use them later <assertions refid="project.assertions"/> </pre> - </body> </html> http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/classfileset.html ---------------------------------------------------------------------- diff --git a/manual/Types/classfileset.html b/manual/Types/classfileset.html index a83d266..5e7642c 100644 --- a/manual/Types/classfileset.html +++ b/manual/Types/classfileset.html @@ -22,9 +22,9 @@ </head> <body> -<h2><a name="fileset">ClassFileSet</a></h2> -<p>A classfileset is a specialized type of fileset which, given a set of -"root" classes, will include all of the class files upon which the +<h2 id="fileset">ClassFileSet</h2> +<p>A classfileset is a specialized type of fileset which, given a set of +"root" classes, will include all of the class files upon which the root classes depend. This is typically used to create a jar with all of the required classes for a particular application. </p> @@ -37,14 +37,13 @@ is expected. This type requires the <code>BCEL</code> <a href="../install.html#librarydependencies">library</a>. </p> - <h3>Attributes</h3> <p>The class fileset support the following attributes in addition -to those supported by the -<a href="../Types/fileset.html">standard fileset</a>: +to those supported by the +<a href="fileset.html">standard fileset</a>: </p> - -<table border="1" cellpadding="2" cellspacing="0"> + +<table> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> @@ -64,7 +63,7 @@ to those supported by the When more than one root class is required, multiple nested <code><root></code> elements may be used </p> -<table border="1" cellpadding="2" cellspacing="0"> +<table> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> @@ -79,9 +78,9 @@ may be used <h4>RootFileSet</h4> <p> -A root fileset is used to add a set of root classes from a fileset. In this case the entries in -the fileset are expected to be Java class files. The name of the Java class is determined by the -relative location of the classfile in the fileset. So, the file +A root fileset is used to add a set of root classes from a fileset. In this case the entries in +the fileset are expected to be Java class files. The name of the Java class is determined by the +relative location of the classfile in the fileset. So, the file <code>org/apache/tools/ant/Project.class</code> corresponds to the Java class <code>org.apache.tools.ant.Project</code>.</p> @@ -92,9 +91,9 @@ relative location of the classfile in the fileset. So, the file </classfileset> </pre></blockquote> -<p>This example creates a fileset containing all the class files upon which the -<code>org.apache.tools.ant.Project</code> class depends. This fileset could -then be used to create a jar. +<p>This example creates a fileset containing all the class files upon which the +<code>org.apache.tools.ant.Project</code> class depends. This fileset could +then be used to create a jar. </p> <blockquote><pre> @@ -109,11 +108,8 @@ then be used to create a jar. </classfileset> </pre></blockquote> -<p>This example constructs the classfileset using all the class with names starting with Project -in the org.apache.tools.ant package</p> - - +<p>This example constructs the classfileset using all the class with names starting with Project +in the org.apache.tools.ant package</p> </body> </html> - http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/custom-programming.html ---------------------------------------------------------------------- diff --git a/manual/Types/custom-programming.html b/manual/Types/custom-programming.html index 96bade3..3010b83 100644 --- a/manual/Types/custom-programming.html +++ b/manual/Types/custom-programming.html @@ -16,7 +16,7 @@ --> <html> <head> - <meta http-equiv="Content-Language" content="en-us"></meta> + <meta http-equiv="Content-Language" content="en-us"> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> <title>Custom Components</title> </head> @@ -57,7 +57,7 @@ After the class has been written, it is added to the ant system by using <code><typedef></code>. </p> - <h3><a name="customconditions">Custom Conditions</a></h3> + <h3 id="customconditions">Custom Conditions</h3> <p> Custom conditions are datatypes that implement <code>org.apache.tools.ant.taskdefs.condition.Condition</code>. @@ -112,7 +112,7 @@ public class AllUpperCaseCondition implements Condition { </condition> </pre> </blockquote> - <h3><a name="customselectors">Custom Selectors</a></h3> + <h3 id="customselectors">Custom Selectors</h3> <p> Custom selectors are datatypes that implement <code>org.apache.tools.ant.types.selectors.FileSelector</code>. @@ -265,12 +265,11 @@ public class MatchNumberSelectors extends BaseSelectorContainer { core selectors demonstrate how to do that because they can also be used as custom selectors.</p> - <p>Once that is written, you include it in your build file by using the <code><custom></code> tag. </p> - <table border="1" cellpadding="2" cellspacing="0"> + <table> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> @@ -315,7 +314,6 @@ public class MatchNumberSelectors extends BaseSelectorContainer { </fileset> </pre></blockquote> - <p>The core selectors that can also be used as custom selectors are</p> @@ -351,7 +349,7 @@ public class MatchNumberSelectors extends BaseSelectorContainer { <p>Selects all files in the base directory and one directory below that.</p> - <h3><a name="filterreaders">Custom Filter Readers</a></h3> + <h3 id="filterreaders">Custom Filter Readers</h3> <p> Custom filter readers selectors are datatypes that implement <code>org.apache.tools.ant.types.filters.ChainableReader</code>. @@ -408,8 +406,5 @@ public class AddLineNumber extends ChainableReaderFilter { </pre> </blockquote> - - <hr></hr> </body> </html> - http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/description.html ---------------------------------------------------------------------- diff --git a/manual/Types/description.html b/manual/Types/description.html index 85942be..0445d61 100644 --- a/manual/Types/description.html +++ b/manual/Types/description.html @@ -24,7 +24,7 @@ <body> -<h2><a name="description">Description</a></h2> +<h2 id="description">Description</h2> <h3>Description</h3> <p>Allows for a description of the project to be specified that will be included in the output of the <code>ant ‑projecthelp</code> @@ -33,14 +33,12 @@ command.</p> <h3>Parameters</h3> <p>(none)</p> <h3>Examples</h3> -<pre> +<pre> <description> -This buildfile is used to build the Foo subproject within +This buildfile is used to build the Foo subproject within the large, complex Bar project. </description> </pre> - </body> </html> - http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/dirset.html ---------------------------------------------------------------------- diff --git a/manual/Types/dirset.html b/manual/Types/dirset.html index 0434e9c..24adf54 100644 --- a/manual/Types/dirset.html +++ b/manual/Types/dirset.html @@ -24,7 +24,7 @@ <body> -<h2><a name="dirset">DirSet</a></h2> +<h2 id="dirset">DirSet</h2> <p>A DirSet is a group of directories. These directories can be found in a directory tree starting in a base directory and are matched by patterns taken from a number of <a href="patternset.html">PatternSets</a> @@ -41,7 +41,7 @@ elements of <code><patternset></code> directly, as well as If any of the selectors within the DirSet do not select the directory, it is not considered part of the DirSet. This makes a DirSet equivalent to an <code><and></code> selector container.</p> -<table border="1" cellpadding="2" cellspacing="0"> +<table> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> @@ -148,7 +148,5 @@ using the same patterns as the above example.</p> <p>Selects all directories somewhere under <code>${workingdir}</code> which contain a <code>${markerfile}</code>.</p> - </body> </html> - http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/extension.html ---------------------------------------------------------------------- diff --git a/manual/Types/extension.html b/manual/Types/extension.html index b05c0a6..b54d899 100644 --- a/manual/Types/extension.html +++ b/manual/Types/extension.html @@ -22,7 +22,7 @@ </head> <body> -<h2><a name="fileset">Extension</a></h2> +<h2 id="fileset">Extension</h2> <p>Utility type that represents either an available "Optional Package" (formerly known as "Standard Extension") as described in the manifest of a JAR file, or the requirement for such an optional package.</p> @@ -32,14 +32,12 @@ works with extensions as defined by the "Optional Package" specification. <em>Optional Package Versioning</em> in the documentation bundle for your Java2 Standard Edition package, in file <code>guide/extensions/versioning.html</code> or the online -<a href="http://docs.oracle.com/javase/7/docs/technotes/guides/versioning/spec/versioning2.html#wp90779"> -Package Versioning documentation.</p> +<a href="http://docs.oracle.com/javase/7/docs/technotes/guides/versioning/spec/versioning2.html#wp90779">Package Versioning documentation.</a></p> <h3>Attributes</h3> -<p>The extension type supports the following attributes</a>: -</p> +<p>The extension type supports the following attributes:</p> -<table border="1" cellpadding="2" cellspacing="0"> +<table> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> @@ -107,8 +105,5 @@ Package Versioning documentation.</p> <p>Extension object that just species the specification details.</p> - - </body> </html> - http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/extensionset.html ---------------------------------------------------------------------- diff --git a/manual/Types/extensionset.html b/manual/Types/extensionset.html index f38c1ed..a42d8f4 100644 --- a/manual/Types/extensionset.html +++ b/manual/Types/extensionset.html @@ -30,8 +30,7 @@ works with extensions as defined by the "Optional Package" specification. <em>Optional Package Versioning</em> in the documentation bundle for your Java2 Standard Edition package, in file <code>guide/extensions/versioning.html</code> or online at -<a href="http://docs.oracle.com/javase/7/docs/technotes/guides/versioning/spec/versioning2.html#wp90779"> -Package Versioning documentation.</p> +<a href="http://docs.oracle.com/javase/7/docs/technotes/guides/versioning/spec/versioning2.html#wp90779">Package Versioning documentation.</a></p> <h3>Nested Elements</h3> @@ -39,13 +38,13 @@ Package Versioning documentation.</p> <p><a href="extension.html">Extension</a> object to add to set.</p> <h4>fileset</h4> - <p><a href="../Types/fileset.html">FileSet</a>s all files contained + <p><a href="fileset.html">FileSet</a>s all files contained contained within set that are jars and implement an extension are added to extension set.</p> <h4>LibFileSet</h4> - <p>All files contained contained within set that are jars and implement - an extension are added to extension set. However the extension information + <p>All files contained contained within set that are jars and implement + an extension are added to extension set. However the extension information may be modified by attributes of libfileset</p> <h4>Examples</h4> @@ -76,8 +75,5 @@ Package Versioning documentation.</p> </pre></blockquote> - - </body> </html> - http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/filelist.html ---------------------------------------------------------------------- diff --git a/manual/Types/filelist.html b/manual/Types/filelist.html index 57c981d..3a3f61c 100644 --- a/manual/Types/filelist.html +++ b/manual/Types/filelist.html @@ -24,7 +24,7 @@ <body> -<h2><a name="filelist">FileList</a></h2> +<h2 id="filelist">FileList</h2> <p>FileLists are explicitly named lists of files. Whereas FileSets act as filters, returning only those files that exist in the file @@ -36,7 +36,7 @@ included in the list unchanged). FileLists can appear inside tasks that support this feature or as stand-alone types. </p> -<table border="1" cellpadding="2" cellspacing="0"> +<table> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> @@ -61,7 +61,7 @@ types. white space and commas. </p> <p><em>Since Apache Ant 1.6.2</em></p> - <table border="1" cellpadding="2" cellspacing="0"> + <table> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> @@ -72,13 +72,13 @@ types. <td valign="top">The name of the file.</td> <td valign="top" align="center">Yes</td> </tr> -</table> +</table> <h4>Examples</h4> <blockquote><pre> -<filelist - id="docfiles" +<filelist + id="docfiles" dir="${doc.src}" - files="foo.xml,bar.xml"/> + files="foo.xml,bar.xml"/> </pre></blockquote> <p>The files <code>${doc.src}/foo.xml</code> and @@ -87,24 +87,24 @@ actually exist. </p> <blockquote><pre> -<filelist - id="docfiles" +<filelist + id="docfiles" dir="${doc.src}" files="foo.xml - bar.xml"/> + bar.xml"/> </pre></blockquote> <p>Same files as the example above.</p> <blockquote><pre> -<filelist refid="docfiles"/> +<filelist refid="docfiles"/> </pre></blockquote> <p>Same files as the example above.</p> <blockquote><pre> -<filelist - id="docfiles" +<filelist + id="docfiles" dir="${doc.src}"> <file name="foo.xml"/> <file name="bar.xml"/> @@ -113,8 +113,5 @@ actually exist. <p>Same files as the example above.</p> - - </body> </html> - http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/fileset.html ---------------------------------------------------------------------- diff --git a/manual/Types/fileset.html b/manual/Types/fileset.html index 3d90172..47fcbec 100644 --- a/manual/Types/fileset.html +++ b/manual/Types/fileset.html @@ -24,7 +24,7 @@ <body> -<h2><a name="fileset">FileSet</a></h2> +<h2 id="fileset">FileSet</h2> <p>A FileSet is a group of files. These files can be found in a directory tree starting in a base directory and are matched by patterns taken from a number of <a @@ -41,7 +41,7 @@ attributes.</p> If any of the selectors within the FileSet do not select the file, the file is not considered part of the FileSet. This makes a FileSet equivalent to an <code><and></code> selector container.</p> -<table border="1" cellpadding="2" cellspacing="0"> +<table> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> @@ -115,7 +115,7 @@ equivalent to an <code><and></code> selector container.</p> </tr> </table> -<p><a name="symlink"><b>Note</b></a>: All files/directories for which +<p id="symlink"><b>Note</b>: All files/directories for which the canonical path is different from its path are considered symbolic links. On Unix systems this usually means the file really is a symbolic link but it may lead to false results on other @@ -176,11 +176,8 @@ selector container.</p> <blockquote><pre> <fileset dir="src" includes="main/" /> </pre></blockquote> -<p>Selects all files in <i>src/main</i> (e.g. <i>src/main/Foo.java</i> or +<p>Selects all files in <i>src/main</i> (e.g. <i>src/main/Foo.java</i> or <i>src/main/application/Bar.java</i>).</p> - - </body> </html> - http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/filterchain.html ---------------------------------------------------------------------- diff --git a/manual/Types/filterchain.html b/manual/Types/filterchain.html index 8f4066f..7159185 100644 --- a/manual/Types/filterchain.html +++ b/manual/Types/filterchain.html @@ -14,8 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. --> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> - <html> <head> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> @@ -124,11 +122,11 @@ nested elements.<br> <a href="#tailfilter">TailFilter</a><br> <a href="#deletecharacters">DeleteCharacters</a><br> <a href="#concatfilter">ConcatFilter</a><br> +<a href="#sortfilter">SortFilter</a><br> <a href="#tokenfilter">TokenFilter</a><br> <a href="../Tasks/fixcrlf.html">FixCRLF</a><br> -<a href="#sortfilter">SortFilter</a><br> -<h3><a name="filterreader">FilterReader</a></h3> +<h3 id="filterreader">FilterReader</h3> The filterreader element is the generic way to define a filter. User defined filter elements are @@ -142,16 +140,16 @@ extend java.io.FilterReader. If the custom filter reader needs to be parameterized, it must implement org.apache.tools.type.Parameterizable. -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Attribute</b></td> - <td vAlign=top><b>Description</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Attribute</b></td> + <td valign="top"><b>Description</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>classname</td> - <td vAlign=top>The class name of the filter reader.</td> - <td vAlign=top align="center">Yes</td> + <td valign="top">classname</td> + <td valign="top">The class name of the filter reader.</td> + <td valign="top" align="center">Yes</td> </tr> </table> @@ -164,7 +162,7 @@ attributes - name, type and value. The following FilterReaders are supplied with the default distribution. -<h3><a name="classconstants">ClassConstants</a></h3> +<h3 id="classconstants">ClassConstants</h3> <p> This filters basic constants defined in a Java Class, and outputs them in lines composed of the format <i>name</i>=<i>value</i>. @@ -210,12 +208,12 @@ prepending the names with a prefix. </filterchain> </loadproperties> </pre></blockquote> -<h3><a name="escapeunicode">EscapeUnicode</a></h3> +<h3 id="escapeunicode">EscapeUnicode</h3> <p> This filter converts its input by changing all non US-ASCII characters into their equivalent unicode escape backslash u plus 4 digits.</p> -<p><em>since Ant 1.6</em></p> +<p><em>Since Ant 1.6</em></p> <h4>Example:</h4> @@ -237,7 +235,7 @@ Convenience method: </loadproperties> </pre></blockquote> -<h3><a name="expandproperties">ExpandProperties</a></h3> +<h3 id="expandproperties">ExpandProperties</h3> <p> If the data contains data that represents Ant properties (of the form ${...}), that is substituted @@ -290,28 +288,28 @@ Convenience method: </loadfile> </pre></blockquote> -<h3><a name="headfilter">HeadFilter</a></h3> +<h3 id="headfilter">HeadFilter</h3> This filter reads the first few lines from the data supplied to it. -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Parameter Name</b></td> - <td vAlign=top><b>Parameter Value</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Parameter Name</b></td> + <td valign="top"><b>Parameter Value</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>lines</td> - <td vAlign=top align="center">Number of lines to be read. + <td valign="top">lines</td> + <td valign="top" align="center">Number of lines to be read. Defaults to "10" <br> A negative value means that all lines are passed (useful with <i>skip</i>)</td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> <tr> - <td vAlign=top>skip</td> - <td vAlign=top align="center">Number of lines to be skipped (from the beginning). + <td valign="top">skip</td> + <td valign="top" align="center">Number of lines to be skipped (from the beginning). Defaults to "0"</td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> </table> <p> @@ -350,27 +348,27 @@ in the property src.file.head. (Means: lines 3-17) See the testcases for more examples (<i>src\etc\testcases\filters\head-tail.xml</i> in the source distribution). -<h3><a name="linecontains">LineContains</a></h3> +<h3 id="linecontains">LineContains</h3> This filter includes only those lines that contain all the user-specified strings. -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Parameter Type</b></td> - <td vAlign=top><b>Parameter Value</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Parameter Type</b></td> + <td valign="top"><b>Parameter Value</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>contains</td> - <td vAlign=top align="center">Substring to be searched for.</td> - <td vAlign=top align="center">Yes</td> + <td valign="top">contains</td> + <td valign="top" align="center">Substring to be searched for.</td> + <td valign="top" align="center">Yes</td> </tr> <tr> - <td vAlign=top>negate</td> - <td vAlign=top align="center">Whether to select - <i>non-</i>matching lines only. <b>Since Ant 1.7</b></td> - <td vAlign=top align="center">No</td> + <td valign="top">negate</td> + <td valign="top" align="center">Whether to select + <i>non-</i>matching lines only. <em>Since Ant 1.7</em></td> + <td valign="top" align="center">No</td> </tr> </table> <p> @@ -409,38 +407,38 @@ Negation: </linecontains> </pre></blockquote> -<h3><a name="linecontainsregexp">LineContainsRegExp</a></h3> +<h3 id="linecontainsregexp">LineContainsRegExp</h3> Filter which includes only those lines that contain the user-specified regular expression matching strings. -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Parameter Type</b></td> - <td vAlign=top><b>Parameter Value</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Parameter Type</b></td> + <td valign="top"><b>Parameter Value</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>regexp</td> - <td vAlign=top align="center">Regular expression to be searched for.<br> + <td valign="top">regexp</td> + <td valign="top" align="center">Regular expression to be searched for.<br> <em>Starting with 1.10.2 this also works as an attribute on <code>linecontainsregexp</code>, in earlier versions of Ant you must use a nested element when using the convenience method.</em> </td> - <td vAlign=top align="center">Yes</td> + <td valign="top" align="center">Yes</td> </tr> <tr> - <td vAlign=top>negate</td> - <td vAlign=top align="center">Whether to select - <i>non-</i>matching lines only. <b>Since Ant 1.7</b></td> - <td vAlign=top align="center">No</td> + <td valign="top">negate</td> + <td valign="top" align="center">Whether to select + <i>non-</i>matching lines only. <em>Since Ant 1.7</em></td> + <td valign="top" align="center">No</td> </tr> <tr> - <td vAlign=top>casesensitive</td> - <td vAlign=top align="center">Perform a case sensitive - match. Default is true. <b>Since Ant 1.8.2</b></td> - <td vAlign=top align="center">No</td> + <td valign="top">casesensitive</td> + <td valign="top" align="center">Perform a case sensitive + match. Default is true. <em>Since Ant 1.8.2</em></td> + <td valign="top" align="center">No</td> </tr> </table> @@ -476,20 +474,20 @@ Negation: </linecontainsregexp> </pre></blockquote> -<h3><a name="prefixlines">PrefixLines</a></h3> +<h3 id="prefixlines">PrefixLines</h3> Attaches a prefix to every line. -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Parameter Name</b></td> - <td vAlign=top><b>Parameter Value</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Parameter Name</b></td> + <td valign="top"><b>Parameter Value</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>prefix</td> - <td vAlign=top align="center">Prefix to be attached to lines.</td> - <td vAlign=top align="center">Yes</td> + <td valign="top">prefix</td> + <td valign="top" align="center">Prefix to be attached to lines.</td> + <td valign="top" align="center">Yes</td> </tr> </table> <p> @@ -507,22 +505,22 @@ Convenience method: <prefixlines prefix="Foo"/> </pre></blockquote> -<h3><a name="suffixlines">SuffixLines</a></h3> +<h3 id="suffixlines">SuffixLines</h3> Attaches a suffix to every line. <p><em>since Ant 1.8.0</em></p> -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Parameter Name</b></td> - <td vAlign=top><b>Parameter Value</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Parameter Name</b></td> + <td valign="top"><b>Parameter Value</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>suffix</td> - <td vAlign=top align="center">Suffix to be attached to lines.</td> - <td vAlign=top align="center">Yes</td> + <td valign="top">suffix</td> + <td valign="top" align="center">Suffix to be attached to lines.</td> + <td valign="top" align="center">Yes</td> </tr> </table> <p> @@ -540,59 +538,59 @@ Convenience method: <suffixlines suffix="Foo"/> </pre></blockquote> -<h3><a name="replacetokens">ReplaceTokens</a></h3> +<h3 id="replacetokens">ReplaceTokens</h3> This filter reader replaces all strings that are sandwiched between begintoken and endtoken with user defined values. -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Parameter Type</b></td> - <td vAlign=top><b>Parameter Name</b></td> - <td vAlign=top><b>Parameter Value</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Parameter Type</b></td> + <td valign="top"><b>Parameter Name</b></td> + <td valign="top"><b>Parameter Value</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>tokenchar</td> - <td vAlign=top>begintoken</td> - <td vAlign=top>String marking the + <td valign="top">tokenchar</td> + <td valign="top">begintoken</td> + <td valign="top">String marking the beginning of a token. Defaults to @</td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> <tr> - <td vAlign=top>tokenchar</td> - <td vAlign=top>endtoken</td> - <td vAlign=top>String marking the + <td valign="top">tokenchar</td> + <td valign="top">endtoken</td> + <td valign="top">String marking the end of a token. Defaults to @</td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> <tr> - <td vAlign=top>User defined String.</td> - <td vAlign=top>token</td> - <td vAlign=top>User defined search String.</td> - <td vAlign=top align="center">Yes</td> + <td valign="top">User defined String.</td> + <td valign="top">token</td> + <td valign="top">User defined search String.</td> + <td valign="top" align="center">Yes</td> </tr> <tr> - <td vAlign=top>Not applicable.</td> - <td vAlign=top>propertiesfile</td> - <td vAlign=top>Properties file to take tokens from.</td> - <td vAlign=top align="center">No</td> + <td valign="top">Not applicable.</td> + <td valign="top">propertiesfile</td> + <td valign="top">Properties file to take tokens from.</td> + <td valign="top" align="center">No</td> </tr> <tr> - <td vAlign=top>Not applicable.</td> - <td vAlign=top>propertiesResource</td> - <td vAlign=top>Properties resource to take tokens from. + <td valign="top">Not applicable.</td> + <td valign="top">propertiesResource</td> + <td valign="top">Properties resource to take tokens from. Note this only works is you use the "convenience" <code><replacetokens></code> syntax. <em>since Ant 1.8.0</em></td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> <tr> - <td vAlign=top>User defined String.</td> - <td vAlign=top>value</td> - <td vAlign=top>Replace-value for the token</td> - <td vAlign=top align="center">No</td> + <td valign="top">User defined String.</td> + <td valign="top">value</td> + <td valign="top">Replace-value for the token</td> + <td valign="top" align="center">No</td> </tr></table> <p> @@ -680,7 +678,7 @@ baz=xyzzy </loadfile> </pre></blockquote> -<h3><a name="stripjavacomments">StripJavaComments</a></h3> +<h3 id="stripjavacomments">StripJavaComments</h3> This filter reader strips away comments from the data, using Java syntax guidelines. This filter does not @@ -705,22 +703,22 @@ Convenience method: </loadfile> </pre></blockquote> -<h3><a name="striplinebreaks">StripLineBreaks</a></h3> +<h3 id="striplinebreaks">StripLineBreaks</h3> This filter reader strips away specific characters from the data supplied to it. -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Parameter Name</b></td> - <td vAlign=top><b>Parameter Value</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Parameter Name</b></td> + <td valign="top"><b>Parameter Value</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>linebreaks</td> - <td vAlign=top align="center">Characters that are to + <td valign="top">linebreaks</td> + <td valign="top" align="center">Characters that are to be stripped out. Defaults to "\r\n"</td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> </table> <p> @@ -756,22 +754,22 @@ strips them. </loadfile> </pre></blockquote> -<h3><a name="striplinecomments">StripLineComments</a></h3> +<h3 id="striplinecomments">StripLineComments</h3> This filter removes all those lines that begin with strings that represent comments as specified by the user. -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Parameter Type</b></td> - <td vAlign=top><b>Parameter Value</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Parameter Type</b></td> + <td valign="top"><b>Parameter Value</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>comment</td> - <td vAlign=top align="center">Strings that identify a line as a comment + <td valign="top">comment</td> + <td valign="top" align="center">Strings that identify a line as a comment when they appear at the start of the line.</td> - <td vAlign=top align="center">Yes</td> + <td valign="top" align="center">Yes</td> </tr> </table> <p> @@ -799,20 +797,20 @@ Convenience method: </striplinecomments> </pre></blockquote> -<h3><a name="tabstospaces">TabsToSpaces</a></h3> +<h3 id="tabstospaces">TabsToSpaces</h3> This filter replaces tabs with spaces -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Parameter Name</b></td> - <td vAlign=top><b>Parameter Value</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Parameter Name</b></td> + <td valign="top"><b>Parameter Value</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>tablength</td> - <td vAlign=top align="center">Defaults to "8"</td> - <td vAlign=top align="center">No</td> + <td valign="top">tablength</td> + <td valign="top" align="center">Defaults to "8"</td> + <td valign="top" align="center">No</td> </tr> </table> <p> @@ -836,28 +834,28 @@ Convenience method: </loadfile> </pre></blockquote> -<h3><a name="tailfilter">TailFilter</a></h3> +<h3 id="tailfilter">TailFilter</h3> This filter reads the last few lines from the data supplied to it. -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Parameter Name</b></td> - <td vAlign=top><b>Parameter Value</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Parameter Name</b></td> + <td valign="top"><b>Parameter Value</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>lines</td> - <td vAlign=top align="center">Number of lines to be read. + <td valign="top">lines</td> + <td valign="top" align="center">Number of lines to be read. Defaults to "10" <br> A negative value means that all lines are passed (useful with <i>skip</i>)</td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> <tr> - <td vAlign=top>skip</td> - <td vAlign=top align="center">Number of lines to be skipped (from the end). + <td valign="top">skip</td> + <td valign="top" align="center">Number of lines to be skipped (from the end). Defaults to "0" </td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> </table> <p> @@ -866,93 +864,70 @@ This filter reads the last few lines from the data supplied to it. With HeadFilter and TailFilter you can extract each part of a text file you want. This graphic shows the dependencies: -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <th> Content </th> - <th></th> - <th></th> - <th></th> - <th> Filter </th> + <th>Content</th> + <th colspan="3">Filter</th> </tr> <tr> - <td> Line 1 </td> - <td rowspan="2" bgcolor="#C0C0C0"> </td> - <td rowspan="9" bgcolor="#FF00FF"> </td> - <td rowspan="4"> </td> - <td rowspan="11"> - <table> - <tr> - <td bgcolor="#C0C0C0"> </td> - <td><pre><filterchain> + <td>Line 1</td> + <td rowspan="2" style="background:limegreen;"> + <pre style="background:limegreen;"><filterchain> <headfilter lines="2"/> </filterchain></pre></td> - </tr> - <tr> - <td bgcolor="#FF00FF"> </td> - <td><pre><filterchain> - <tailfilter lines="-1" skip="2"/> -</filterchain></pre></td> - </tr> - <tr> - <td bgcolor="#008000"> </td> - <td><pre><filterchain> - <headfilter lines="-1" skip="2"/> -</filterchain></pre></td> - </tr> - <tr> - <td bgcolor="#0000FF"> </td> - <td><pre><filterchain> - <headfilter lines="-1" skip="2"/> + <td rowspan="9" style="background:fuchsia;"> + <pre style="background:fuchsia;"><filterchain> <tailfilter lines="-1" skip="2"/> -</filterchain></pre></td> - </tr> - <tr> - <td bgcolor="#00FF00"> </td> - <td><pre><filterchain> - <tailfilter lines="2"/> -</filterchain></pre></td> - </tr> - </table> +</filterchain></pre> </td> + <td rowspan="2"> </td> </tr> <tr> - <td> Line 2 </td> + <td>Line 2</td> </tr> <tr> - <td> Line 3 </td> - <td rowspan="9" bgcolor="#008000"> </td> + <td>Line 3</td> + <td rowspan="9" style="background:tomato;"> + <pre style="background:tomato;"><filterchain> + <headfilter lines="-1" skip="2"/> +</filterchain></pre></td> + <td rowspan="7" style="background:dodgerblue;"> + <pre style="background:dodgerblue;"><filterchain> + <headfilter lines="-1" skip="2"/> + <tailfilter lines="-1" skip="2"/> +</filterchain></pre></td> </tr> <tr> - <td> Line 4 </td> + <td>Line 4</td> </tr> <tr> - <td> Line 5 </td> - <td rowspan="3" bgcolor="#0000FF"> </td> + <td>Line 5</td> </tr> <tr> - <td> Lines ... </td> + <td>Lines ...</td> </tr> <tr> - <td> Line 95 </td> + <td>Line 95</td> </tr> <tr> - <td> Line 96 </td> - <td rowspan="4"> </td> + <td>Line 96</td> </tr> <tr> - <td> Line 97 </td> + <td>Line 97</td> </tr> <tr> - <td> Line 98 </td> - <td rowspan="2" bgcolor="#00FF00"> </td> + <td>Line 98</td> + <td rowspan="2" style="background:lime;"> + <pre style="background:lime;"><filterchain> + <tailfilter lines="2"/> +</filterchain></pre></td> + <td rowspan="2"> </td> </tr> <tr> - <td> Line 99 </td> + <td>Line 99</td> </tr> </table> - - <h4>Examples:</h4> This stores the last 15 lines of the supplied data in the property ${src.file.tail} @@ -975,7 +950,6 @@ Convenience method: </loadfile> </pre></blockquote> - This stores the last 5 lines of the first 15 lines of the supplied data in the property ${src.file.mid} <blockquote><pre> @@ -1001,7 +975,6 @@ Convenience method: </loadfile> </pre></blockquote> - This stores the last 10 lines, skipping the last 2 lines, of the supplied data in the property src.file.head. (Means: if supplied data contains 60 lines, lines 49-58 are extracted) @@ -1013,25 +986,25 @@ lines 49-58 are extracted) </loadfile> </pre></blockquote> -<h3><a name="deletecharacters">DeleteCharacters</a></h3> +<h3 id="deletecharacters">DeleteCharacters</h3> <p>This filter deletes specified characters.</p> <p><em>since Ant 1.6</em></p> <p>This filter is only available in the convenience form.</p> -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Parameter Name</b></td> - <td vAlign=top><b>Parameter Value</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Parameter Name</b></td> + <td valign="top"><b>Parameter Value</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>chars</td> - <td vAlign=top> + <td valign="top">chars</td> + <td valign="top"> The characters to delete. This attribute is <a href="#backslash">backslash enabled</a>. </td> - <td vAlign=top align="center">Yes</td> + <td valign="top" align="center">Yes</td> </tr> </table> <p> @@ -1042,28 +1015,28 @@ Delete tabs and returns from the data. <deletecharacters chars="\t\r"/> </pre></blockquote> -<h3><a name="concatfilter">ConcatFilter</a></h3> +<h3 id="concatfilter">ConcatFilter</h3> <p>This filter prepends or appends the content file to the filtered files.</p> <p><em>since Ant 1.6</em></p> -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Parameter Name</b></td> - <td vAlign=top><b>Parameter Value</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Parameter Name</b></td> + <td valign="top"><b>Parameter Value</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>prepend</td> - <td vAlign=top> + <td valign="top">prepend</td> + <td valign="top"> The name of the file which content should be prepended to the file. </td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> <tr> - <td vAlign=top>append</td> - <td vAlign=top> + <td valign="top">append</td> + <td valign="top"> The name of the file which content should be appended to the file. </td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> </table> <p> @@ -1084,14 +1057,125 @@ Adds a license text before each java source: </filterchain> </pre></blockquote> +<h3 id="sortfilter">SortFilter</h3> + <p><em>since Ant 1.8.0</em></p> + +<p>The sort filter reads all lines and sorts them. The sort order can + be reversed and it is possible to specify a custom implementation of + the <code>java.util.Comparator</code> interface to get even more + control.</p> +<table> + <tr> + <td valign="top"><b>Parameter Name</b></td> + <td valign="top"><b>Parameter Value</b></td> + <td valign="top" align="center"><b>Required</b></td> + </tr> + <tr> + <td valign="top">reverse</td> + <td valign="top" align="center">whether to reverse the sort order, + defaults to false. <b>Note:</b> this parameter is ignored if + the comparator parameter is present as well.</td> + <td valign="top" align="center">No</td> + </tr> + <tr> + <td valign="top">comparator</td> + <td valign="top" align="center">Class name of a class that + implements <code>java.util.Comparator</code> for Strings. This + class will be used to determine the sort order of lines.</td> + <td valign="top" align="center">No</td> + </tr> +</table> + +<p>This filter is also available using the + name <code>sortfilter</code>. The <code>reverse</code> parameter + becomes an attribute, <code>comparator</code> can be specified by + using a nested element.</p> + +<h4>Examples:</h4> + +<blockquote><pre> + <copy todir="build"> + <fileset dir="input" includes="*.txt"/> + <filterchain> + <sortfilter/> + </filterchain> + </copy> +</pre></blockquote> + +<p> +Sort all files <code>*.txt</code> from <i>src</i> location +into <i>build</i> location. The lines of each file are sorted in +ascendant order comparing the lines via the +<code>String.compareTo(Object o)</code> method. +</p> + +<blockquote><pre> + <copy todir="build"> + <fileset dir="input" includes="*.txt"/> + <filterchain> + <sortfilter reverse="true"/> + </filterchain> + </copy> +</pre></blockquote> + +<p> +Sort all files <code>*.txt</code> from <i>src</i> location into reverse +order and copy them into <i>build</i> location. +</p> + +<blockquote><pre> + <copy todir="build"> + <fileset dir="input" includes="*.txt"/> + <filterchain> + <filterreader classname="org.apache.tools.ant.filters.SortFilter"> + <param name="comparator" value="org.apache.tools.ant.filters.EvenFirstCmp"/> + </filterreader> + </filterchain> + </copy> +</pre></blockquote> + +<p> +Sort all files <code>*.txt</code> from <i>src</i> location using as +sorting criterium <code>EvenFirstCmp</code> class, that sorts the file +lines putting even lines first then odd lines for example. The modified files +are copied into <i>build</i> location. The <code>EvenFirstCmp</code>, +has to an instanciable class via <code>Class.newInstance()</code>, +therefore in case of inner class has to be <em>static</em>. It also has to +implement <code>java.util.Comparator</code> interface, for example: +</p> + +<pre> + package org.apache.tools.ant.filters; + ...(omitted) + public final class EvenFirstCmp implements <b>Comparator</b> { + public int compare(Object o1, Object o2) { + ...(omitted) + } + } +</pre> + +<p>The example above is equivalent to:</p> + +<blockquote><pre> + <componentdef name="evenfirst" + classname="org.apache.tools.ant.filters.EvenFirstCmp"/> + <copy todir="build"> + <fileset dir="input" includes="*.txt"/> + <filterchain> + <sortfilter> + <evenfirst/> + </sortfilter> + </filterchain> + </copy> +</pre></blockquote> -<h3><a name="tokenfilter">TokenFilter</a></h3> +<h3 id="tokenfilter">TokenFilter</h3> This filter tokenizes the inputstream into strings and passes these strings to filters of strings. Unlike the other filterreaders, this does not support params, only convenience methods are implemented. The tokenizer and the string filters are defined by nested elements. -<p><em>since Ant 1.6</em></p> +<p><em>Since Ant 1.6</em></p> <p> Only one tokenizer element may be used, the LineTokenizer is the default if none are specified. A tokenizer @@ -1106,32 +1190,32 @@ outputs with its associated token delimiter (if one is present). The trailing delimiter may be overridden by the <i>delimOutput</i> attribute. +<h4 id="backslash">Backslash interpretation</h4> <p> -<a name="backslash"><em>backslash interpretation</em></a> A number of attributes (including <i>delimOutput</i>) interpret backslash escapes. The following are understood: \n, \r, \f, \t and \\. +</p> - -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Attribute</b></td> - <td vAlign=top><b>Description</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Attribute</b></td> + <td valign="top"><b>Description</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>delimOutput</td> - <td vAlign=top> + <td valign="top">delimOutput</td> + <td valign="top"> This overrides the tokendelimiter returned by the tokenizer if it is not empty. This attribute is backslash enabled. </td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> </table> <p> - - The following tokenizers are provided by the default distribution. + The following tokenizers are provided by the default distribution. +</p> <p> <a href="#linetokenizer">LineTokenizer</a><br> <a href="#filetokenizer">FileTokenizer</a><br> @@ -1155,42 +1239,45 @@ and \\. <p> <a href="#scriptfilter">ScriptFilter</a><br> </p> - +<p> + <a href="#custom">Custom</a> tokenizers and string filters can be + declared using <a href="../Tasks/typedef.html">typedef</a> task. +</p> +<p> Some of the filters may be used directly within a filter chain. In this case a tokenfilter is created implicitly. An extra attribute "byline" is added to the filter to specify whether to use a linetokenizer (byline="true") or a filetokenizer (byline="false"). The default is "true". -<p> +</p> -<p><b><em><a name="linetokenizer">LineTokenizer</a></em></b></p> +<h4 id="linetokenizer">LineTokenizer</h4> This tokenizer splits the input into lines. The tokenizer delimits lines by "\r", "\n" or "\r\n". This is the default tokenizer. -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Attribute</b></td> - <td vAlign=top><b>Description</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Attribute</b></td> + <td valign="top"><b>Description</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>includeDelims</td> - <td vAlign=top> + <td valign="top">includeDelims</td> + <td valign="top"> Include the line endings in the token. Default is false. </td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> </table> -<h4>Examples:</h4> +<h5>Examples:</h5> Convert input current line endings to unix style line endings. <blockquote><pre> <tokenfilter delimoutput="\n"/> </pre></blockquote> - Remove blank lines. <blockquote><pre> <tokenfilter> @@ -1199,10 +1286,10 @@ Remove blank lines. </pre></blockquote> -<p><b><em><a name="filetokenizer">FileTokenizer</a></em></b></p> +<h4 id="filetokenizer">FileTokenizer</h4> This tokenizer treats <b>all</b> the input as a token. So be careful not to use this on very large input. -<h4>Examples:</h4> +<h5>Examples:</h5> Replace the first occurrence of package with //package. <blockquote><pre> @@ -1214,7 +1301,7 @@ Replace the first occurrence of package with //package. </tokenfilter> </pre></blockquote> -<p><b><em><a name="stringtokenizer">StringTokenizer</a></em></b></p> +<h4 id="stringtokenizer">StringTokenizer</h4> This tokenizer is based on java.util.StringTokenizer. It splits up the input into strings separated by white space, or by a specified list of delimiting characters. @@ -1222,19 +1309,19 @@ If the stream starts with delimiter characters, the first token will be the empty string (unless the <i>delimsaretokens</i> attribute is used). -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Attribute</b></td> - <td vAlign=top><b>Description</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Attribute</b></td> + <td valign="top"><b>Description</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>delims</td> - <td vAlign=top>The delimiter characters. White space + <td valign="top">delims</td> + <td valign="top">The delimiter characters. White space is used if this is not set. (White space is defined in this case by java.lang.Character.isWhitespace()). </td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">delimsaretokens</td> @@ -1253,16 +1340,16 @@ attribute is used). <td valign="top" align="center">No</td> </tr> <tr> - <td vAlign=top>includeDelims</td> - <td vAlign=top> + <td valign="top">includeDelims</td> + <td valign="top"> Include the delimiters in the token. Default is false. </td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> </table> -<h4>Examples:</h4> +<h5>Examples:</h5> Surround each non space token with a "[]". @@ -1274,20 +1361,20 @@ Surround each non space token with a "[]". </pre></blockquote> -<p><b><em><a name="replacestring">ReplaceString</a></em></b></p> +<h4 id="replacestring">ReplaceString</h4> This is a simple filter to replace strings. This filter may be used directly within a filterchain. -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Attribute</b></td> - <td vAlign=top><b>Description</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Attribute</b></td> + <td valign="top"><b>Description</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>from</td> - <td vAlign=top>The string that must be replaced.</td> - <td vAlign=top align="center">Yes</td> + <td valign="top">from</td> + <td valign="top">The string that must be replaced.</td> + <td valign="top" align="center">Yes</td> </tr> <tr> <td valign="top">to</td> @@ -1298,7 +1385,7 @@ This filter may be used directly within a filterchain. </tr> </table> -<h4>Examples:</h4> +<h5>Examples:</h5> Replace "sun" with "moon". @@ -1308,24 +1395,24 @@ Replace "sun" with "moon". </tokenfilter> </pre></blockquote> -<p><b><em><a name="containsstring">ContainsString</a></em></b></p> +<h4 id="containsstring">ContainsString</h4> This is a simple filter to filter tokens that contains a specified string. -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Attribute</b></td> - <td vAlign=top><b>Description</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Attribute</b></td> + <td valign="top"><b>Description</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>contains</td> - <td vAlign=top>The string that the token must contain.</td> - <td vAlign=top align="center">Yes</td> + <td valign="top">contains</td> + <td valign="top">The string that the token must contain.</td> + <td valign="top" align="center">Yes</td> </tr> </table> -<h4>Examples:</h4> +<h5>Examples:</h5> Include only lines that contain "foo"; @@ -1336,7 +1423,7 @@ Include only lines that contain "foo"; </pre></blockquote> -<p><b><em><a name="replaceregex">ReplaceRegex</a></em></b></p> +<h4 id="replaceregex">ReplaceRegex</h4> This string filter replaces regular expressions. This filter may be used directly within a filterchain. <p> @@ -1344,33 +1431,33 @@ This filter may be used directly within a filterchain. concerning the choice of the implementation. </p> -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Attribute</b></td> - <td vAlign=top><b>Description</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Attribute</b></td> + <td valign="top"><b>Description</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>pattern</td> - <td vAlign=top>The regular expression pattern to match in + <td valign="top">pattern</td> + <td valign="top">The regular expression pattern to match in the token.</td> - <td vAlign=top align="center">Yes</td> + <td valign="top" align="center">Yes</td> </tr> <tr> - <td vAlign=top>replace</td> - <td vAlign=top>The substitution pattern to replace the matched + <td valign="top">replace</td> + <td valign="top">The substitution pattern to replace the matched regular expression. When omitted an empty string is used.</td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> <tr> - <td vAlign=top>flags</td> - <td vAlign=top>See + <td valign="top">flags</td> + <td valign="top">See <a href="../Tasks/replaceregexp.html">ReplaceRegexp</a> for an explanation of regex flags.</td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> </table> -<h4>Examples:</h4> +<h5>Examples:</h5> Replace all occurrences of "hello" with "world", ignoring case. @@ -1381,7 +1468,7 @@ Replace all occurrences of "hello" with "world", ignoring case. </pre></blockquote> -<p><b><em><a name="containsregex">ContainsRegex</a></em></b></p> +<h4 id="containsregex">ContainsRegex</h4> This filters strings that match regular expressions. The filter may optionally replace the matched regular expression. This filter may be used directly within a filterchain. @@ -1390,35 +1477,35 @@ See <a href="regexp.html#implementation">Regexp Type</a> concerning the choice of regular expression implementation. </p> -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Attribute</b></td> - <td vAlign=top><b>Description</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Attribute</b></td> + <td valign="top"><b>Description</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>pattern</td> - <td vAlign=top>The regular expression pattern to match in + <td valign="top">pattern</td> + <td valign="top">The regular expression pattern to match in the token.</td> - <td vAlign=top align="center">Yes</td> + <td valign="top" align="center">Yes</td> </tr> <tr> - <td vAlign=top>replace</td> - <td vAlign=top>The substitution pattern to replace the matched + <td valign="top">replace</td> + <td valign="top">The substitution pattern to replace the matched regular expression. When omitted the original token is returned. </td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> <tr> - <td vAlign=top>flags</td> - <td vAlign=top>See + <td valign="top">flags</td> + <td valign="top">See <a href="../Tasks/replaceregexp.html">ReplaceRegexp</a> for an explanation of regex flags.</td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> </table> -<h4>Examples:</h4> +<h5>Examples:</h5> Filter lines that contain "hello" or "world", ignoring case. @@ -1440,31 +1527,33 @@ This example replaces lines like "SUITE(TestSuite, bits);" with </tokenfilter> </pre></blockquote> -<p><b><em><a name="trim">Trim</a></em></b></p> +<h4 id="trim">Trim</h4> This filter trims whitespace from the start and end of tokens. This filter may be used directly within a filterchain. -<p><b><em><a name="ignoreblank">IgnoreBlank</a></em></b></p> + +<h4 id="ignoreblank">IgnoreBlank</h4> This filter removes empty tokens. This filter may be used directly within a filterchain. -<p><b><em><a name="filterdeletecharacters">DeleteCharacters</a></em></b></p> + +<h4 id="filterdeletecharacters">DeleteCharacters</h4> This filter deletes specified characters from tokens. -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Attribute</b></td> - <td vAlign=top><b>Description</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Attribute</b></td> + <td valign="top"><b>Description</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>chars</td> - <td vAlign=top>The characters to delete. This attribute + <td valign="top">chars</td> + <td valign="top">The characters to delete. This attribute is backslash enabled.</td> - <td vAlign=top align="center">Yes</td> + <td valign="top" align="center">Yes</td> </tr> </table> -<h4>Examples:</h4> +<h5>Examples:</h5> Delete tabs from lines, trim the lines and removes empty lines. @@ -1477,14 +1566,14 @@ Delete tabs from lines, trim the lines and removes empty lines. </pre></blockquote> -<p><b><em><a name="uniqfilter">UniqFilter</a></em></b></p> +<h4 id="uniqfilter">UniqFilter</h4> <p>Suppresses all tokens that match their ancestor token. It is most useful if combined with a sort filter.</p> <p>This filter may be used directly within a filterchain.</p> -<h4>Example:</h4> +<h5>Example:</h5> This suppresses duplicate lines. <blockquote><pre> @@ -1493,31 +1582,31 @@ This suppresses duplicate lines. </tokenfilter> </pre></blockquote> -<p><b><em><a name="native2asciifilter">Native2AsciiFilter</a></em></b></p> +<h4 id="native2asciifilter">Native2AsciiFilter</h4> <p>Uses the "builtin" implementation of the <a href="../Tasks/native2ascii.html">native2ascii</a> task.</p> <p>Replaces non-ascii characters by their Unicode-escapes or - vice-versa. <em>Since Ant 1.9.8</em>.</p> + vice-versa. <em>Since Ant 1.9.8</em></p> <p>This filter may be used directly within a filterchain.</p> -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Attribute</b></td> - <td vAlign=top><b>Description</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Attribute</b></td> + <td valign="top"><b>Description</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>reverse</td> - <td vAlign=top>Reverse the sense of the conversion, + <td valign="top">reverse</td> + <td valign="top">Reverse the sense of the conversion, i.e. convert from ASCII to native.</td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> </table> -<h4>Example:</h4> +<h5>Example:</h5> <p>This replaces all non-ASCII characters by their Unicode-escapes.</p> <blockquote><pre> @@ -1526,12 +1615,14 @@ This suppresses duplicate lines. </tokenfilter> </pre></blockquote> -<p><b><em><a name="scriptfilter">ScriptFilter</a></em></b></p> +<h4 id="scriptfilter">ScriptFilter</h4> +<p> This is an optional filter that executes a script in a <a href="http://jakarta.apache.org/bsf" target="_top">Apache BSF</a> or <a href="https://scripting.dev.java.net">JSR 223</a> supported language.</p> +<p> See the <a href="../Tasks/script.html">Script</a> task for an explanation of scripts and dependencies. </p> @@ -1543,17 +1634,17 @@ method replaces the current token. </p> This filter may be used directly within a filterchain.<p> -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Attribute</b></td> - <td vAlign=top><b>Description</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Attribute</b></td> + <td valign="top"><b>Description</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>language</td> - <td vAlign=top> The programming language the script is written in. + <td valign="top">language</td> + <td valign="top"> The programming language the script is written in. Must be a supported Apache BSF or JSR 223 language</td> - <td vAlign=top align="center">Yes</td> + <td valign="top" align="center">Yes</td> </tr> <tr> <td valign="top">manager</td> @@ -1565,20 +1656,20 @@ Must be a supported Apache BSF or JSR 223 language</td> <td valign="top" align="center">No - default is "auto"</td> </tr> <tr> - <td vAlign=top>src</td> - <td vAlign=top>The location of the script as a file, if not inline + <td valign="top">src</td> + <td valign="top">The location of the script as a file, if not inline </td> - <td vAlign=top align="center">No</td> + <td valign="top" align="center">No</td> </tr> <tr> <td valign="top">encoding</td> - <td valign="top">The encoding of the script as a file. <em>since Ant 1.10.2.</em></td> + <td valign="top">The encoding of the script as a file. <em>Since Ant 1.10.2</em></td> <td valign="top" align="center">No - defaults to default JVM encoding</td> </tr> <tr> <td valign="top">setbeans</td> <td valign="top">whether to have all properties, references and targets as - global variables in the script. <em>since Ant 1.8.0</em></td> + global variables in the script. <em>Since Ant 1.8.0</em></td> <td valign="top" align="center">No, default is "true".</td> </tr> <tr> @@ -1600,7 +1691,7 @@ Must be a supported Apache BSF or JSR 223 language</td> See the <a href="../Tasks/script.html">script</a> task on how to use this element. </p> -<h4>Examples:</h4> +<h5>Examples:</h5> Convert to uppercase: <blockquote><pre> @@ -1628,13 +1719,13 @@ copying text files: </pre> </blockquote> -<h4>Custom tokenizers and string filters</h4> +<h4 id="custom">Custom tokenizers and string filters</h4> Custom string filters and tokenizers may be plugged in by extending the interfaces org.apache.tools.ant.filters.TokenFilter.Filter and org.apache.tools.ant.util.Tokenizer respectly. -They are defined the build file using <code><typedef/></code>. For +They are defined in the build file using <code><typedef/></code>. For example a string filter that capitalizes words may be declared as: <blockquote><pre> package my.customant; @@ -1666,118 +1757,4 @@ This may be used as follows: </copy> </pre></blockquote> - -<h3><a name="sortfilter">SortFilter</a></h3> - <p><em>since Ant 1.8.0</em></p> - -<p>The sort filter reads all lines and sorts them. The sort order can - be reversed and it is possible to specify a custom implementation of - the <code>java.util.Comparator</code> interface to get even more - control.</p> - -<table cellSpacing=0 cellPadding=2 border=1> - <tr> - <td vAlign=top><b>Parameter Name</b></td> - <td vAlign=top><b>Parameter Value</b></td> - <td vAlign=top align="center"><b>Required</b></td> - </tr> - <tr> - <td vAlign=top>reverse</td> - <td vAlign=top align="center">whether to reverse the sort order, - defaults to false. <b>Note:</b> this parameter is ignored if - the comparator parameter is present as well.</td> - <td vAlign=top align="center">No</td> - </tr> - <tr> - <td vAlign=top>comparator</td> - <td vAlign=top align="center">Class name of a class that - implements <code>java.util.Comparator</code> for Strings. This - class will be used to determine the sort order of lines.</td> - <td vAlign=top align="center">No</td> - </tr> -</table> - -<p>This filter is also available using the - name <code>sortfilter</code>. The <code>reverse</code> parameter - becomes an attribute, <code>comparator</code> can be specified by - using a nested element.</p> - -<h4>Examples:</h4> - -<blockquote><pre> - <copy todir="build"> - <fileset dir="input" includes="*.txt"/> - <filterchain> - <sortfilter/> - </filterchain> - </copy> -</pre></blockquote> - -<p> -Sort all files <code>*.txt</code> from <i>src</i> location -into <i>build</i> location. The lines of each file are sorted in -ascendant order comparing the lines via the -<code>String.compareTo(Object o)</code> method. -</p> - -<blockquote><pre> - <copy todir="build"> - <fileset dir="input" includes="*.txt"/> - <filterchain> - <sortfilter reverse="true"/> - </filterchain> - </copy> -</pre></blockquote> - -<p> -Sort all files <code>*.txt</code> from <i>src</i> location into reverse -order and copy them into <i>build</i> location. -</p> - -<blockquote><pre> - <copy todir="build"> - <fileset dir="input" includes="*.txt"/> - <filterchain> - <filterreader classname="org.apache.tools.ant.filters.SortFilter"> - <param name="comparator" value="org.apache.tools.ant.filters.EvenFirstCmp"/> - </filterreader> - </filterchain> - </copy> -</pre></blockquote> - -<p> -Sort all files <code>*.txt</code> from <i>src</i> location using as -sorting criterium <code>EvenFirstCmp</code> class, that sorts the file -lines putting even lines first then odd lines for example. The modified files -are copied into <i>build</i> location. The <code>EvenFirstCmp</code>, -has to an instanciable class via <code>Class.newInstance()</code>, -therefore in case of inner class has to be <em>static</em>. It also has to -implement <code>java.util.Comparator</code> interface, for example: -</p> - -<pre> - package org.apache.tools.ant.filters; - ...(omitted) - public final class EvenFirstCmp implements <b>Comparator</b> { - public int compare(Object o1, Object o2) { - ...(omitted) - } - } -</pre> - -<p>The example above is equivalent to:</p> - -<blockquote><pre> - <componentdef name="evenfirst" - classname="org.apache.tools.ant.filters.EvenFirstCmp"/> - <copy todir="build"> - <fileset dir="input" includes="*.txt"/> - <filterchain> - <sortfilter> - <evenfirst/> - </sortfilter> - </filterchain> - </copy> -</pre></blockquote> - </body></html> http://git-wip-us.apache.org/repos/asf/ant/blob/94d36a9f/manual/Types/filterset.html ---------------------------------------------------------------------- diff --git a/manual/Types/filterset.html b/manual/Types/filterset.html index 8b0dfe1..a50d750 100644 --- a/manual/Types/filterset.html +++ b/manual/Types/filterset.html @@ -14,8 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. --> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> - <html> <head> <link rel="stylesheet" type="text/css" href="../stylesheets/style.css"> @@ -23,13 +21,13 @@ </head> <body> -<h2><a name="filterset">FilterSet</a></h2> +<h2 id="filterset">FilterSet</h2> <p>FilterSets are groups of filters. Filters can be defined as token-value -pairs -or be read in from a file. FilterSets can appear inside tasks that support this +pairs +or be read in from a file. FilterSets can appear inside tasks that support this feature or at the same level as <code><target></code> - i.e., as -children of +children of <code><project></code>.</p> <p>FilterSets support the <code>id</code> and <code>refid</code> @@ -40,9 +38,9 @@ filtersets into filtersets to get a set union of the contained filters.</p> <p>In addition, FilterSets can specify -<code>begintoken</code> and/or +<code>begintoken</code> and/or <code>endtoken</code> attributes to define what to match.</p> -<p>Filtersets are used for doing +<p>Filtersets are used for doing replacements in tasks such as <code><copy></code>, etc.</p> <p>Filters can also by specified by one or more nested propertysets, the @@ -52,96 +50,96 @@ replacements in tasks such as <code><copy></code>, etc.</p> defined within a filterset will be used.</p> <p> -<strong>Note: </strong>When a filterset is used in an operation, the files are +<strong>Note: </strong>When a filterset is used in an operation, the files are processed in text mode and the filters applied line by line. This means that the copy operations will typically corrupt binary files. When applying filters you should ensure that the set of files being filtered are all text files. </p> -<h2>Filterset</h2> +<h3>Filterset</h3> -<table cellSpacing=0 cellPadding=2 border=1> +<table> <tr> - <td vAlign=top><b>Attribute</b></td> - <td vAlign=top><b>Description</b></td> - <td vAlign=top><b>Default</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Attribute</b></td> + <td valign="top"><b>Description</b></td> + <td valign="top"><b>Default</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>begintoken</td> - <td vAlign=top>The string marking the beginning of a token (eg., + <td valign="top">begintoken</td> + <td valign="top">The string marking the beginning of a token (eg., <code>@DATE@</code>).</td> - <td vAlign=top>@</td> - <td vAlign=top align="center">No</td> + <td valign="top">@</td> + <td valign="top" align="center">No</td> </tr> <tr> - <td vAlign=top>endtoken</td> - <td vAlign=top>The string marking the end of a token (eg., + <td valign="top">endtoken</td> + <td valign="top">The string marking the end of a token (eg., <code>@DATE@</code>).</td> - <td vAlign=top>@</td> - <td vAlign=top align="center">No</td> + <td valign="top">@</td> + <td valign="top" align="center">No</td> </tr> <tr> - <td vAlign=top>filtersfile</td> - <td vAlign=top>Specify a single filtersfile.</td> - <td vAlign=top><i>none</i></td> - <td vAlign=top align="center">No</td> + <td valign="top">filtersfile</td> + <td valign="top">Specify a single filtersfile.</td> + <td valign="top"><i>none</i></td> + <td valign="top" align="center">No</td> </tr> <tr> - <td vAlign=top>recurse</td> - <td vAlign=top>Indicates whether the replacement text of tokens - should be searched for more tokens. <b>Since Ant 1.6.3</b></td> - <td vAlign=top><i>true</i></td> - <td vAlign=top align="center">No</td> + <td valign="top">recurse</td> + <td valign="top">Indicates whether the replacement text of tokens + should be searched for more tokens. <em>Since Ant 1.6.3</em></td> + <td valign="top"><i>true</i></td> + <td valign="top" align="center">No</td> </tr> <tr> - <td vAlign=top>onmissingfiltersfile</td> - <td vAlign=top>Indicate behavior when a nonexistent <i>filtersfile</i> - is specified. One of "fail", "warn", "ignore". <b>Since Ant 1.7</b></td> - <td vAlign=top>"fail"</td> - <td vAlign=top align="center">No</td> + <td valign="top">onmissingfiltersfile</td> + <td valign="top">Indicate behavior when a nonexistent <i>filtersfile</i> + is specified. One of "fail", "warn", "ignore". <em>Since Ant 1.7</em></td> + <td valign="top">"fail"</td> + <td valign="top" align="center">No</td> </tr> </table> -<h2>Filter</h2> -<table cellSpacing=0 cellPadding=2 border=1> +<h3>Filter</h3> +<table> <tr> - <td vAlign=top><b>Attribute</b></td> - <td vAlign=top><b>Description</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Attribute</b></td> + <td valign="top"><b>Description</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>token</td> - <td vAlign=top>The token to replace (eg., <code>@DATE@</code>)</td> - <td vAlign=top align="center">Yes</td> + <td valign="top">token</td> + <td valign="top">The token to replace (eg., <code>@DATE@</code>)</td> + <td valign="top" align="center">Yes</td> </tr> <tr> - <td vAlign=top>value</td> - <td vAlign=top>The value to replace it with + <td valign="top">value</td> + <td valign="top">The value to replace it with (eg., <code>Thursday, April 26, 2001</code>).</td> - <td vAlign=top align="center">Yes</td> + <td valign="top" align="center">Yes</td> </tr> </table> -<h2>Filtersfile</h2> -<table cellSpacing=0 cellPadding=2 border=1> +<h3>Filtersfile</h3> +<table> <tr> - <td vAlign=top><b>Attribute</b></td> - <td vAlign=top><b>Description</b></td> - <td vAlign=top align="center"><b>Required</b></td> + <td valign="top"><b>Attribute</b></td> + <td valign="top"><b>Description</b></td> + <td valign="top" align="center"><b>Required</b></td> </tr> <tr> - <td vAlign=top>file</td> - <td vAlign=top>A properties file of + <td valign="top">file</td> + <td valign="top">A properties file of name-value pairs from which to load the tokens.</td> - <td vAlign=top align="center">Yes</td> + <td valign="top" align="center">Yes</td> </tr> </table> <h4>Examples</h4> <p>You are copying the <code>version.txt</code> file to the <code>dist</code> -directory from the <code>build</code> directory +directory from the <code>build</code> directory but wish to replace the token <code>@DATE@</code> with today's date.</p> <blockquote><pre> <copy file="${build.dir}/version.txt" toFile="${dist.dir}/version.txt"> @@ -152,7 +150,7 @@ but wish to replace the token <code>@DATE@</code> with today's date.</p> </pre></blockquote> <p>You are copying the <code>version.txt</code> file to the <code>dist</code> -directory from the build directory +directory from the build directory but wish to replace the token <code>%DATE*</code> with today's date.</p> <blockquote><pre> <copy file="${build.dir}/version.txt" toFile="${dist.dir}/version.txt"> @@ -186,7 +184,7 @@ but wish to replace the token <code>%DATE*</code> with today's date.</p> </pre></blockquote> <p>You are copying the <code>version.txt</code> file to the <code>dist</code> -directory from the <code>build</code> directory +directory from the <code>build</code> directory but wish to replace the token <code>@project.date@</code> with the property of the same name.</p> <blockquote><pre> <copy file="${build.dir}/version.txt" toFile="${dist.dir}/version.txt">