Commit 2992beb8 authored by Emmanuel Bourg's avatar Emmanuel Bourg

New upstream version 1.9.8

parent 54d05f39
......@@ -51,6 +51,7 @@ Bruce Atherton
Cedomir Igaly
Charles Hudak
Charlie Hubbard
Chris Hegarty
Chris Povirk
Christian Knorr
Christian Schmidt
......@@ -77,6 +78,7 @@ D'Arcy Smith
Dale Anson
Dale Sherwood
Dan Armbrust
Dana Dahlstrom
Daniel Henrique
Daniel Ribagnac
Daniel Spilker
......@@ -136,6 +138,7 @@ Georges-Etienne Legendre
Gero Vermaas
Gerrit Riessen
Gilbert Rebhan
Gilles Querret
Gilles Scokart
Glenn McAllister
Glenn Twiggs
......@@ -251,6 +254,7 @@ Matthew Hawthorne
Matthew Inger
Matthew Kuperus Heun
Matthew Watson
Matthew Yanos
Matthias Bhend
Michael Bayne
Michael Clarke
......@@ -400,6 +404,7 @@ Valentino Miazzo
Victor Toni
Vimil Saju
Vincent Legoll
Vincent Privat
Vitold Sedyshev
Volker Leidl
Waldek Herka
......
Changes from Ant 1.9.7 TO Ant 1.9.8
===================================
Changes that could break older environments:
-------------------------------------------
* <fileset>/<zipfileset>/<tarfileset> exhibited undefined
behavior when both the dir and file attribute have been used on the
same instance. This will now cause the build to fail.
Bugzilla Report 59402
* The ant.java.version property will now hold the value "9" rather
than "1.9" if running on Java 9.
* <rmic> will no longer allow the -Xnew option (or xmic compiler) to
be used when running on Java 9 since this option has been removed.
Bugzilla Report 59906
Fixed bugs:
-----------
* setDynamicAttribute on MacroInstance now lower-cases the attribute
name in order to allow users of the API to use the attributes names
they have specified.
Bugzilla Report 59339
* <get>'s quiet attribute was broken, it didn't suppress any messages.
Bugzilla Report 59379
* <zip>'s check whether an archive is already up-to-date failed on
NTFS filesystems and re-created archives more often than necessary.
Bugzilla Report 59562
* AntClassLoader didn't delegate to the parent loader for classes in
the "jdk" package or one of its subpackages. This hierarchy has
been introduced with Java 7.
Bugzilla Report 59556
* The ant wrapper script used on Unix-like operating systems only
worked on OSes where sed is GNU sed.
Bugzilla Report 59898
* <touch>'s default pattern as well as the default patterns used by
the <date> (resource) selectors depended on the JDK being used - or
rather the locale provider being used and the default locale
provider changed with Java 9.
They are now fixed and the documentation has been updated to
reflect the real patterns used rather than a non-formal description
of the expected format.
Bugzilla Report 59909
* Clarified the documentation of <get>'s retries attribute.
Bugzilla Report 59930
* The ant wrapper script failed if backticks were passed on the
command line.
Bugzilla Report 60150, 59445
* The report generated by <junitreport> could contain duplicate
characters in stack traces.
Bugzilla Report 58661
Other changes:
--------------
* <junit> now initializes the cause of the AssertionFailedError when
converting from AssertionError.
Bugzilla Report 58982
* <scp> now supports compression via the optional compressed attribute.
Bugzilla Report 47552
* <junit> now supports JDK9 modules
Github Pull Request #18
* a new implementation "builtin" has been added to <native2ascii> and
is the default when running on JDK9+ since the tool itself has been
removed from the JDK.
Bugzilla Report 59855
* added a new <native2asciifilter> filter that can perform non-ASCII
to Unicode-escape conversions.
* <rmic> defaults to the "forking" compiler on JDK 9+ as the
implementation class of rmic is not exported by its containing
module and thus not accessible to Ant without applying -XaddExports
magic.
Bugzilla Report 59860
* a new implementation "forking" has been added to <javah> and is
used as default when running on JDK9.
* support for javac's -h switch has been added with the
nativeheaderdir attribute.
Bugzilla Report 59905
* it is now possible to set features of the TraX factory used by <xslt>
and <junitreport>.
* it is now possible to use references to Ant types and classloaders
built around Ant <path>s as values for TraX factory attributes.
* <junitreport> now enables the feature
http://www.oracle.com/xml/jaxp/properties/enableExtensionFunctions
when run on Java 9 so the redirect extension function can be used
if when a SecurityManager is active.
Bugzilla Report 60060
* support for javac's --release switch introduced with Java9 has been
added.
Bugzilla Report 60172
Changes from Ant 1.9.6 TO Ant 1.9.7
===================================
......
......@@ -53,6 +53,7 @@ echo JAVA_HOME=%JAVA_HOME%
echo JAVA=%JAVA%
echo JAVAC=%JAVAC%
echo CLASSPATH=%CLASSPATH%
echo ANT_HOME=%ANT_HOME%
if "%OS%" == "Windows_NT" if exist %CLASSDIR%\nul rmdir/s/q %CLASSDIR%
if not "%OS%" == "Windows_NT" if exist %CLASSDIR%\nul deltree/y %CLASSDIR%
......
......@@ -34,10 +34,10 @@
<property name="name" value="ant"/>
<!-- this is the groupId of ant in the Maven repository -->
<property name="groupid" value="org/apache/ant"/>
<property name="project.version" value="1.9.7"/>
<property name="project.version" value="1.9.8"/>
<!-- pom.version is used when doing a distribution and must match with what is checked in under src/etc/poms -->
<property name="pom.version" value="1.9.7"/>
<property name="manifest-version" value="1.9.7"/>
<property name="pom.version" value="1.9.8"/>
<property name="manifest-version" value="1.9.8"/>
<property name="bootstrap.jar" value="ant-bootstrap.jar"/>
<property name="ant.package" value="org/apache/tools/ant"/>
......@@ -378,9 +378,7 @@
<available property="jdk1.6+" classname="java.net.CookieStore"/>
<available property="jdk1.7+" classname="java.nio.file.FileSystem"/>
<available property="jdk1.8+" classname="java.lang.reflect.Executable"/>
<condition property="jdk1.9+">
<contains string="${java.version}" substring="1.9."/>
</condition>
<available property="jdk9+" classname="java.lang.module.ModuleDescriptor"/>
<available property="kaffe" classname="kaffe.util.NotImplemented"/>
<available property="harmony"
classname="org.apache.harmony.luni.util.Base64"/>
......
......@@ -225,6 +225,10 @@
<first>Charlie</first>
<last>Hubbard</last>
</name>
<name>
<first>Chris</first>
<last>Hegarty</last>
</name>
<name>
<first>Chris</first>
<last>Povirk</last>
......@@ -331,6 +335,10 @@
<first>Dan</first>
<last>Armbrust</last>
</name>
<name>
<first>Dana</first>
<last>Dahlstrom</last>
</name>
<name>
<first>Daniel</first>
<last>Henrique</last>
......@@ -568,6 +576,10 @@
<first>Gilbert</first>
<last>Rebhan</last>
</name>
<name>
<first>Gilles</first>
<last>Querret</last>
</name>
<name>
<first>Gilles</first>
<last>Scokart</last>
......@@ -1033,6 +1045,10 @@
<first>Matthew</first>
<last>Watson</last>
</name>
<name>
<first>Matthew</first>
<last>Yanos</last>
</name>
<name>
<first>Michael</first>
<last>Bayne</last>
......@@ -1604,6 +1620,10 @@
<first>Vincent</first>
<last>Legoll</last>
</name>
<name>
<first>Vincent</first>
<last>Privat</last>
</name>
<name>
<first>Vimil</first>
<last>Saju</last>
......
......@@ -57,7 +57,7 @@ oro.version=2.0.8
regexp.version=1.3
servlet-api.version=2.3
which.version=1.0
xalan.version=2.7.1
xalan.version=2.7.2
xml-resolver.version=1.2
mail.version=1.4
#paired
......
......@@ -107,7 +107,10 @@ plain text' authentication is used. This is only secure over an HTTPS link.
</tr>
<tr>
<td valign="top">retries</td>
<td valign="top">the per download number of retries on error<br/>
<td valign="top">The number of attempts to make for opening the URI.<br/>
The name of the attribute is misleading as a value of 1 means
"don't retry on error" and a value of 0 meant don't even try to
reach the URI at all.<br/>
<em>since Ant 1.8.0</em></td>
<td align="center" valign="top">No; default "3"</td>
</tr>
......
......@@ -79,7 +79,8 @@ attribute are:</a></p>
<code>javac1.6</code> and
<code>javac1.7</code> (<em>since Ant 1.8.2</em>) and
<code>javac1.8</code> (<em>since Ant 1.8.3</em>) and</li>
<code>javac1.9</code> (<em>since Ant 1.9.5</em>) can be used as aliases.</li>
<code>javac1.9</code> (<em>since Ant 1.9.5</em>) and</li>
<code>javac9</code> (<em>since Ant 1.9.8</em>) can be used as aliases.</li>
<li><code>jikes</code> (the <a
href="http://jikes.sourceforge.net/" target="_top">Jikes</a>
compiler).</li>
......@@ -124,6 +125,15 @@ classpath of the <code>&lt;javac&gt;</code> task, and does not release them.
The side effect of this is that you will not be able to delete or move
those files later on in the build. The workaround is to fork when
invoking the compiler.</p>
<p>If you are using Java 8 or above and your source contains native
methods or fields annotated with the <code>@Native</code> annotation
you can set the <code>nativeheaderdir</code> attribute in order to
use the <code>-h</code> switch of <code>javac</code> to generate the
native header files. Note that the logic Ant uses to determine which
files to compile does not take native headers into account, i.e. if
the <code>.class</code> is more recent than the
corresponding <code>.java</code> file the file will not get compiled
even if a native header file generated for it would be outdated.</p>
<h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0">
<tr>
......@@ -504,6 +514,24 @@ invoking the compiler.</p>
<em>since Ant 1.9.7</em></td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">nativeheaderdir</td>
<td valign="top">
Specify where to place generated native header files. Ignored
when running on JDK &lt; 8.
<em>Since Ant 1.9.8</em>.
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">release</td>
<td valign="top">
Specify the value for the <code>--release</code> switch.Ignored
when running on JDK &lt; 9.<br>
When set and running on JDK &gt;= 9 the source and target
attributes as well as the bootclasspath will be ignored.
<em>Since Ant 1.9.8</em>.
<td align="center" valign="top">No</td>
</tr>
</table>
<h3>Parameters specified as nested elements</h3>
......
......@@ -33,16 +33,28 @@ whether <a href="http://docs.oracle.com/javase/7/docs/technotes/tools/windows/ja
or <a href="http://java.sun.com/products/jdk/1.1/docs/tooldocs/win32/javah.html">pre-JDK1.2</a>
systems are used.</p>
<p>If you are building with Java 8 or above consider
using <a href="javac.html"><code>javac</code></a>'s <code>nativeheaderdir</code>
attribute instead which allows you to compile the classes and
generate the native header files with a single step.</p>
<p><b>Note</b> the <code>javah</code> has been deprecated as of Java 9
and is scheduled to be removed with Java 10.</p>
<p>It is possible to use different compilers. This can be selected
with the <code>implementation</code> attribute or a nested element. <a
name="implementationvalues">Here are the choices of the attribute</a>:</p>
<ul>
<li>default - the default compiler (kaffeh or sun) for the platform.</li>
<li>sun (the standard compiler of the JDK)</li>
<li>default - the default compiler for the platform.</li>
<li>sun (the standard compiler of the JDK) - default when not
running on Kaffee or gcj/gij or Java9.</li>
<li>kaffeh (the native standard compiler of <a href="http://www.kaffe.org" target="_top">Kaffe</a>)</li>
<li>gcjh (the native standard compiler
of <a href="http://gcc.gnu.org/java/"
target="_top">gcj and gij</a>) <em>since Apache Ant 1.8.2</em></li>
target="_top">gcj and gij</a>) <em>since Apache Ant 1.8.2</em></li>
<li>forking - runs the javah executable via its command line
interface in a separate process. Default when running on
Java9. <em>since Ant 1.9.8</em></li>
</ul>
<p><b>Note:</b> if you are using this task to work on multiple files
......
......@@ -371,6 +371,21 @@ subelement.</p>
<p><em>since Ant 1.6.</em></p>
<h4>modulepath</h4>
<p>The location of modules can be specified using this <a href="../using.html#path">PATH like structure</a>.<br/>
The modulepath requires <i>fork</i> to be set to <code>true</code>.
<p><em>since Ant 1.9.8</em></p>
<h4>upgrademodulepath</h4>
<p>The location of modules that replace upgradeable modules in the runtime image
can be specified using this <a href="../using.html#path">PATH like structure</a>.<br/>
The upgrademodulepath requires <i>fork</i> to be set to <code>true</code>.
<p><em>since Ant 1.9.8</em></p>
<h4>formatter</h4>
<p>The results of the tests can be printed in different
......@@ -796,7 +811,47 @@ the single <code>&lt;test/&gt;</code> will run. So only the failing test cases a
The two nested formatters are for displaying (for the user) and for updating the collector
class.
</p>
<pre>
&lt;junit fork="true"
jvm="${platform.java}"&gt;
&lt;jvmarg line="--patch-module ${module.name}=${build.test.classes}"/&gt;
&lt;jvmarg line="--add-modules ${module.name}"/&gt;
&lt;jvmarg line="--add-reads ${module.name}=ALL-UNNAMED"/&gt;
&lt;jvmarg line="--add-exports ${module.name}/my.test=ALL-UNNAMED"/&gt;
&lt;classpath&gt;
&lt;pathelement path="${libs.junit}"/&gt;
&lt;/classpath&gt;
&lt;modulepath&gt;
&lt;pathelement path="${modules}:${build.classes}"/&gt;
&lt;/modulepath&gt;
&lt;formatter type="plain"/&gt;
&lt;test name="my.test.TestCase"/&gt;
&lt;/junit&gt;
</pre>
<p>Runs my.test.TestCase as a white-box test in the forked VM given by the <code>platform.java</code> property.
The junit library is a part of an unnamed module while the tested project and required modules are on the module path. The tests
do not have module-info file and are executed in the project module given by <code>module.name</code> property.<br/>
The <code>--patch-module</code> java option executes the tests built into <code>${build.test.classes}</code> in a module given
by <code>module.name</code> property.<br/>
The <code>--add-modules</code> java option enables the tested module.<br/>
The <code>--add-reads</code> java option makes the unnamed module containing the junit readable by tested module.<br/>
The <code>--add-exports</code> java option makes the non-exported test package <code>my.test</code> accessible from the unnamed module containing the junit.<br/>
<pre>
&lt;junit fork="true"
jvm="${platform.java}"&gt;
&lt;jvmarg line="--add-modules ${test.module.name}"/&gt;
&lt;jvmarg line="--add-exports ${test.module.name}/my.test=junit,ALL-UNNAMED"/&gt;
&lt;modulepath&gt;
&lt;pathelement path="${modules}:${build.classes}:${libs.junit}"/&gt;
&lt;/modulepath&gt;
&lt;formatter type="plain"/&gt;
&lt;test name="my.test.TestCase"/&gt;
&lt;/junit&gt;
</pre>
<p>Runs my.test.TestCase as a black-box test in the forked VM given by the <code>platform.java</code> property.
The junit library is used as an automatic module. The tests module-info requires the tested module and junit.<br/>
The <code>--add-modules</code> java option enables the test module.<br/>
The <code>--add-exports</code> java option makes the non-exported test package <code>my.test</code> accessible from the junit module and Ant's test runner.
Another possibility is to export the test package in the tests module-info by <code>exports my.test</code> directive.<br/>
</body>
</html>
......@@ -61,9 +61,14 @@
with the <code>implementation</code> attribute or a nested element.
<a name="implementationvalues">Here are the choices of the attribute</a>:</p>
<ul>
<li>default - the default converter (kaffe or sun) for the platform.</li>
<li>sun (the standard converter of the JDK)</li>
<li>kaffe (the standard converter of <a href="http://www.kaffe.org" target="_top">Kaffe</a>)</li>
<li>default - the default converter for the platform - kaffee
when run on Kaffee, builtin if JDK9 or newer is detected, sun
otherwise.</li>
<li>sun (the standard converter of the JDK < 9)</li>
<li>kaffe (the standard converter
of <a href="http://www.kaffe.org" target="_top">Kaffe</a>)</li>
<li>builtin - Ant's internal implementation used for
JDK9+. <em>since ant 1.9.8</em></li>
</ul>
<table border="1" cellpadding="2" cellspacing="0">
......@@ -76,7 +81,7 @@
<td>reverse</td>
<td>Reverse the sense of the conversion,
i.e. convert from ASCII to native <b>only supported by the
sun converter</b></td>
sun and builtin converters</b></td>
<td align="center">No</td>
</tr>
<tr>
......
......@@ -52,14 +52,18 @@ with the &quot;build.rmic&quot; property, the <code>compiler</code>
attribute. or a nested element.
<a name="compilervalues">Here are the choices</a>:</p>
<ul>
<li>default -the default compiler (kaffe or sun) for the platform.
<li>sun (the standard compiler of the JDK)</li>
<li>default -the default compiler (kaffe, sun or forking) for the platform.
<li>sun (the standard compiler of the JDK &lt; JDK 9)</li>
<li>kaffe (the standard compiler of <a href="http://www.kaffe.org" target="_top">Kaffe</a>)</li>
<li>weblogic</li>
<li>forking - the sun compiler forked into a separate process (since Apache Ant 1.7)</li>
<li>forking - the sun compiler forked into a separate process (since
Apache Ant 1.7). Starting with Ant 1.9.8 this is the default when
running on JDK 9+.</li>
<li>xnew - the sun compiler forked into a separate process,
with the -Xnew option (since Ant 1.7).
This is the most reliable way to use -Xnew</li>
This is the most reliable way to use -Xnew.
<br></br>JDK9 has removed support for -Xnew and starting with Ant
1.9.8 this option will be rejected by ant when running on JDK9.</li>
<li> "" (empty string). This has the same behaviour as not setting the compiler attribute.
First the value of <tt>build.rmic</tt> is used if defined, and if not, the default
for the platform is chosen. If build.rmic is set to this, you get the default.
......
......@@ -217,6 +217,12 @@ for more information. This task has been tested with jsch-0.1.2 and later.</p>
<em>since Ant 1.9.7</em></td>
<td align="center" valign="top">No, defaults to 3</td>
</tr>
<tr>
<td valign="top">compressed</td>
<td valign="top">Whether to enable compression during transfer.
<em>since Ant 1.9.8</em></td>
<td align="center" valign="top">No, defaults to false</td>
</tr>
</table>
<h3>Parameters specified as nested elements</h3>
......
......@@ -69,6 +69,22 @@ attribute) the implicit fileset formed by this task.</p>
to an <code>&lt;xsl:param&gt;</code> declaration.</p>
<p>This task supports the use of a nested <a href="../Types/xmlcatalog.html">xmlcatalog</a>
element which is used to perform Entity and URI resolution.</p>
<p><b>Note on XSLT extension functions</b>: when using the default
TraX implementation of the Java class library and
a <code>SecurityManager</code> is active - e.g. when running from
within an IDE - XSLT extension functions cannot be used as "secure
processing" is active in Java 7 and above. Ant contains a special
"hack" that allows XSLT extensions to be used in Java 7 and 8, but
this hack fails for Java 9. If you want to use extensions like the
redirect extension that are provided by the Java class library
itself, you can allow them by enabling the
feature <code>http://www.oracle.com/xml/jaxp/properties/enableExtensionFunctions</code>
in Java 9 and above. If you need to use an extension function not
provided by Java itself you can set the
attribute <code>jdk.xml.transform.extensionClassLoader</code> to a
classloader (reference to an Ant PATH-like structure).</p>
<h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0">
<tr>
......@@ -395,7 +411,7 @@ Used to specify factory settings.
</tr>
</table>
<h3>Parameters specified as nested elements</h3>
<h4>attribute </h4>
<h4>attribute</h4>
<p>Used to specify settings of the processor factory.
The attribute names and values are entirely processor specific
so you must be aware of the implementation to figure them out.
......@@ -431,8 +447,67 @@ And in Saxon 7.x:
<tr>
<td valign="top">value</td>
<td valign="top">value of the attribute.</td>
<td align="center" valign="middle" rowspan="3">Exactly one of these</td>
</tr>
<tr>
<td valign="top">valueref</td>
<td valign="top">value of the attribute is the value of the
project reference with the given id. <em>since Ant 1.9.8</em></td>
</tr>
<tr>
<td valign="top">classloaderforpath</td>
<td valign="top">value of the attribute is a classloader that uses
the classpath specified by a path that is the project reference
with the given id. <em>since Ant 1.9.8</em></td>
</tr>
</table>
<h4>Examples</h4>
<pre>
&lt;path id="extension-path"&gt;
...
&lt;/path&gt;
&lt;xslt ...&gt;
&lt;factory&gt;
&lt;attribute name="jdk.xml.transform.extensionClassLoader"
classloaderforpath="extension-path"/&gt;
&lt;/factory&gt;
&lt;/xslt ...&gt;
</pre>
<p>Sets the classloader to use when loading extension functions to a
classloader using the <code>path</code> with the
id <code>extension-path</code>.
</blockquote>
<h4>feature</h4>
<p><em>since Ant 1.9.8</em></p>
<p>Used to specify settings of the processor factory. The feature
names are mostly processor specific so you must be aware of the
implementation to figure them out. Read the documentation of your
processor. The only feature all implementations are required to
support
is <code>http://javax.xml.XMLConstants/feature/secure-processing</code>.
<blockquote>
<h4>Parameters</h4>
<table width="60%" border="1" cellpadding="2" cellspacing="0">
<tr>
<td valign="top"><b>Attribute</b></td>
<td valign="top"><b>Description</b></td>
<td align="center" valign="top"><b>Required</b></td>
</tr>
<tr>
<td valign="top">name</td>
<td valign="top">Name of the feature</td>
<td align="center" valign="top">Yes</td>
</tr>
<tr>
<td valign="top">value</td>
<td valign="top">value of the feature. A boolean value
(i.e. permitted values are true,false,yes,no,on,off).</td>
<td align="center" valign="top">No, defaults to false</td>
</tr>
</table>
</blockquote>
</blockquote>
......
......@@ -74,8 +74,10 @@ resource collections (which also includes directories). Prior to Apache Ant
</tr>
<tr>
<td valign="top">pattern</td>
<td valign="top">SimpleDateFormat-compatible pattern string.
Defaults to MM/DD/YYYY HH:MM AM_or_PM or MM/DD/YYYY HH:MM:SS AM_or_PM.
<td valign="top">SimpleDateFormat-compatible pattern string using
the current locale.
Defaults to "MM/dd/YYYY hh:mm a" or "MM/dd/yyyy hh:mm:ss a"
using the US locale.
<b>Since Ant 1.6.3</b></td>
<td valign="top" align="center">No</td>
</tr>
......
......@@ -50,7 +50,7 @@ equivalent to an <code>&lt;and&gt;</code> selector container.</p>
<tr>
<td valign="top">dir</td>
<td valign="top">the root of the directory tree of this FileSet.</td>
<td valign="middle" align="center" rowspan="2">Either dir or file must be specified</td>
<td valign="middle" align="center" rowspan="2">Exactly one of dir or file must be specified</td>
</tr>
<tr>
<td valign="top">file</td>
......
......@@ -1143,6 +1143,7 @@ and \\.
<a href="#ignoreblank">IgnoreBlank</a><br>
<a href="#filterdeletecharacters">DeleteCharacters</a><br>
<a href="#uniqfilter">UniqFilter</a><br>
<a href="#native2asciifilter">Native2AsciiFilter</a><br>
</p>
The following string filters are provided by the optional distribution.
......@@ -1487,6 +1488,39 @@ This suppresses duplicate lines.
&lt;/tokenfilter&gt;
</pre></blockquote>
<p><b><em><a name="native2asciifilter">Native2AsciiFilter</a></em></b></p>
<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>
<p>This filter may be used directly within a filterchain.</p>
<table cellSpacing=0 cellPadding=2 border=1>
<tr>
<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,
i.e. convert from ASCII to native.</td>
<td vAlign=top align="center">No</td>
</tr>
</table>
<h4>Example:</h4>
<p>This replaces all non-ASCII characters by their Unicode-escapes.</p>
<blockquote><pre>
&lt;tokenfilter&gt;