Browse Source

Merge from 1.4 changes

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@269662 13f79535-47bb-0310-9956-ffa450edef68
master
Conor MacNeill 24 years ago
parent
commit
a8d4391240
44 changed files with 1036 additions and 415 deletions
  1. +207
    -32
      docs/ant_in_anger.html
  2. +4
    -4
      docs/manual/CoreTasks/antcall.html
  3. +12
    -1
      docs/manual/CoreTasks/available.html
  4. +1
    -1
      docs/manual/CoreTasks/chmod.html
  5. +31
    -6
      docs/manual/CoreTasks/copy.html
  6. +1
    -1
      docs/manual/CoreTasks/delete.html
  7. +2
    -2
      docs/manual/CoreTasks/dependset.html
  8. +8
    -2
      docs/manual/CoreTasks/ear.html
  9. +4
    -5
      docs/manual/CoreTasks/fixcrlf.html
  10. +11
    -0
      docs/manual/CoreTasks/jar.html
  11. +78
    -4
      docs/manual/CoreTasks/javac.html
  12. +4
    -1
      docs/manual/CoreTasks/mail.html
  13. +38
    -20
      docs/manual/CoreTasks/overview.html
  14. +3
    -3
      docs/manual/CoreTasks/parallel.html
  15. +195
    -0
      docs/manual/CoreTasks/pathconvert.html
  16. +15
    -10
      docs/manual/CoreTasks/property.html
  17. +19
    -19
      docs/manual/CoreTasks/recorder.html
  18. +2
    -2
      docs/manual/CoreTasks/sleep.html
  19. +26
    -9
      docs/manual/CoreTasks/sql.html
  20. +6
    -1
      docs/manual/CoreTasks/style.html
  21. +2
    -2
      docs/manual/CoreTasks/tstamp.html
  22. +6
    -0
      docs/manual/CoreTasks/war.html
  23. +20
    -3
      docs/manual/CoreTasks/zip.html
  24. +0
    -1
      docs/manual/CoreTypes/filelist.html
  25. +118
    -0
      docs/manual/CoreTypes/filterset.html
  26. +4
    -0
      docs/manual/CoreTypes/mapper.html
  27. +1
    -1
      docs/manual/CoreTypes/patternset.html
  28. +12
    -23
      docs/manual/Integration/Antidote.html
  29. +25
    -23
      docs/manual/Integration/VAJAntTool.html
  30. +5
    -5
      docs/manual/OptionalTasks/BorlandEJBTasks.html
  31. +1
    -1
      docs/manual/OptionalTasks/BorlandGenerateClient.html
  32. +41
    -41
      docs/manual/OptionalTasks/ccm.html
  33. +39
    -33
      docs/manual/OptionalTasks/depend.html
  34. +2
    -2
      docs/manual/OptionalTasks/ftp.html
  35. +5
    -6
      docs/manual/OptionalTasks/icontract.html
  36. +63
    -92
      docs/manual/OptionalTasks/jdepend.html
  37. +4
    -1
      docs/manual/OptionalTasks/junitreport.html
  38. +2
    -0
      docs/manual/OptionalTasks/script.html
  39. +2
    -0
      docs/manual/OptionalTasks/stylebook.html
  40. +1
    -0
      docs/manual/coretasklist.html
  41. +13
    -12
      docs/manual/install.html
  42. +0
    -42
      docs/manual/resources.html
  43. +0
    -1
      docs/manual/toc.html
  44. +3
    -3
      docs/manual/using.html

+ 207
- 32
docs/ant_in_anger.html View File

@@ -12,7 +12,7 @@
</h2> </h2>


<h4 align="center"> <h4 align="center">
Steve Loughran (<a href="mailto:steve_l@iseran.com">steve_l@iseran.com</a>)
Steve Loughran
</h4> </h4>


<a name="introduction"> <a name="introduction">
@@ -38,7 +38,7 @@ done.
Firstly, here are some assumptions about the projects which this Firstly, here are some assumptions about the projects which this
document covers document covers
<ul> <ul>
<li> Pretty much pure Java.
<li> Pretty much pure Java, maybe with some legacy cruft on the edges.


<li> Team efforts, usually with the petulant prima-donnas all us Java <li> Team efforts, usually with the petulant prima-donnas all us Java
programmers become once we realise how much in demand we are. programmers become once we realise how much in demand we are.
@@ -52,7 +52,7 @@ be vaguely aware of each other.


<li> Significant mismatch between expectations and time available to <li> Significant mismatch between expectations and time available to
deliver. 'Last Week' is the ideal delivery date handed down from above, deliver. 'Last Week' is the ideal delivery date handed down from above,
next century the date coming up from below.
late next century the date coming up from below.


<li> Everyone is struggling to keep up with platform and tool evolution. <li> Everyone is struggling to keep up with platform and tool evolution.


@@ -107,8 +107,8 @@ And of course, the ubiquitous <b>clean</b> target.
With standard target names, it is easy to build encompassing ant build With standard target names, it is easy to build encompassing ant build
files which just hand off the work to the classes below using the files which just hand off the work to the classes below using the
<a href="manual/CoreTasks/ant.html">ant</a> <a href="manual/CoreTasks/ant.html">ant</a>
task. For example. the clean target could be handed down to the intf and
impl subdirectories from a parent directory
task. For example. the clean target could be handed down to the <tt>intf</tt> and
<tt>impl</tt> subdirectories from a parent directory


<pre>&lt;target name=&quot;clean&quot; depends=&quot;clean-intf, clean-impl&quot;&gt; <pre>&lt;target name=&quot;clean&quot; depends=&quot;clean-intf, clean-impl&quot;&gt;
&lt;/target&gt; &lt;/target&gt;
@@ -121,6 +121,11 @@ impl subdirectories from a parent directory
&lt;ant dir=&quot;impl&quot; target=&quot;clean&quot; /&gt; &lt;ant dir=&quot;impl&quot; target=&quot;clean&quot; /&gt;
&lt;/target&gt; </pre> &lt;/target&gt; </pre>


If you give targets a <tt>description</tt> tag, then calling <tt>ant
-projecthelp</tt> will list all tasks with their description as 'main targets', and
all tasks without a description as subtargets. Describing all your
entry points is therefore very useful, even before a project becomes big and complicated.
<h3> <h3>
Extend ant through new tasks Extend ant through new tasks
</h3> </h3>
@@ -178,7 +183,13 @@ write java code to stress large portions of the system -even if the code
can not run as JUnit tasks- then the <a href= "manual/CoreTasks/java.html">java</a> can not run as JUnit tasks- then the <a href= "manual/CoreTasks/java.html">java</a>
task can be used to invoke them. It is best to specify that you want a task can be used to invoke them. It is best to specify that you want a
new JVM for these tests, so that a significant crash does not break the new JVM for these tests, so that a significant crash does not break the
full build.
full build. The Junit extensions such as
<a href="http://httpunit.sourceforge.net/">HttpUnit</a> for web pages, and
<a href="http://jakarta.apache.org/commons/cactus/">Cactus</a> for J2EE and servlet
testing help to expand the testing framework. To test properly you will still
need to invest a lot of effort in getting these to work with your project, and
deriving great unit, system and regression tests -but your customers will love
you for shipping software that works.




<a name="crossplatform"> <a name="crossplatform">
@@ -199,7 +210,7 @@ tools (exec tasks) which are not portable, path issues, and hard coding
in the location of things. in the location of things.


<h3>Command Line apps: <a href="manual/CoreTasks/exec.html">Exec</a>/ <a href= <h3>Command Line apps: <a href="manual/CoreTasks/exec.html">Exec</a>/ <a href=
"manual/CoreTasks/execon.html">ExecOn</a></h3>
"manual/CoreTasks/apply.html">Apply</a></h3>


The trouble with external invocation is that not all functions are found The trouble with external invocation is that not all functions are found
cross platform, and those that are often have different names -DOS cross platform, and those that are often have different names -DOS
@@ -225,7 +236,7 @@ split entries. Thus
a path in unix. In Windows the path must use semicolon separators, a path in unix. In Windows the path must use semicolon separators,
colons being used to specify disk drives, and backslash separators colons being used to specify disk drives, and backslash separators
<i>"c:\bin\java\lib\xerces.jar;c:\bin\java\lib\ant.jar"</i>. <i>"c:\bin\java\lib\xerces.jar;c:\bin\java\lib\ant.jar"</i>.
<p>
This difference between platforms (indeed, the whole java classpath This difference between platforms (indeed, the whole java classpath
paradigm) can cause hours of fun. paradigm) can cause hours of fun.


@@ -242,8 +253,13 @@ defined property in the command line. In the build files you may find it
better to build a classpath by listing individual files (using location= better to build a classpath by listing individual files (using location=
attributes), or by including a fileset of *.jar in the classpath attributes), or by including a fileset of *.jar in the classpath
definition. definition.


<p>
There is also the <a
href="manual/CoreTasks/pathconvert.html">PathConvert</a> task which
can put a fully resolved path into a property. Why do that? Because then
you can use that path in other ways -such as pass it as a parameter to
some application you are calling, or use the replace task to patch it
into a localised shell script or batch file.
<p> <p>
Note that DOS descended file systems are case insensitive (apart from Note that DOS descended file systems are case insensitive (apart from
the obscure aberration of the WinNT posix subsystem run against NTFS), the obscure aberration of the WinNT posix subsystem run against NTFS),
@@ -254,7 +270,7 @@ directories to see a disastrous example of this).
<p> <p>


Ant's policy on case sensitivity is whatever the underlying file system Ant's policy on case sensitivity is whatever the underlying file system
implements *VERIFY*, and its handling of file extensions is that *.jav does not
implements, and its handling of file extensions is that *.jav does not
find any .java files. The Java compiler is of course case sensitive -you can find any .java files. The Java compiler is of course case sensitive -you can
not have a class 'ExampleThree' implemented in "examplethree.java". not have a class 'ExampleThree' implemented in "examplethree.java".


@@ -336,8 +352,8 @@ file with tight access control is slightly better. The <a href=
"manual/CoreTasks/fixcrlf.html">FixCRLF task</a> is often a useful interim step if "manual/CoreTasks/fixcrlf.html">FixCRLF task</a> is often a useful interim step if
you need to ensure that files have unix file extensions before upload. A you need to ensure that files have unix file extensions before upload. A
WebDav task has long been discussed, which would provide a more secure WebDav task has long been discussed, which would provide a more secure
upload to web servers, but it is still in the todo list. If DAV is your
required upload mechanism, why not take up the challenge?
upload to web servers, but it is still in the todo list. Rumour has it
that there is such a task in the jakarta-slide libraries.


<p> <p>


@@ -351,15 +367,19 @@ project and the rest of the ant community.
Finally, there are of course the fallbacks of just copying files to a Finally, there are of course the fallbacks of just copying files to a
destination using <a href="manual/CoreTasks/copy.html">Copy</a> and <a href = destination using <a href="manual/CoreTasks/copy.html">Copy</a> and <a href =
"index.html#copydir">Copydir</a> , or just sending them to a person or "index.html#copydir">Copydir</a> , or just sending them to a person or
process using <a href= "manual/CoreTasks/mail.html">Mail</a>.

process using <a href= "manual/CoreTasks/mail.html">Mail</a> or the attachment
aware <a href= "manual/OptionalTasks/mimemail.html">MimeMail</a>.
In one project our team even used ant to build CD images through a build followed
by a long set of Copy tasks, which worked surprisingly well.
<a name="directories"> <a name="directories">
<h2> Directory Structures</h2> <h2> Directory Structures</h2>
</a> </a>


How you structure your directory tree is very dependent upon the How you structure your directory tree is very dependent upon the
project. Here are some directory layout patterns which can be used as project. Here are some directory layout patterns which can be used as
starting points.
starting points. All the jakarta projects follow a roughly similar
style, which makes it easy to navigate around one form one project to
another, and easy to clean up when desired.


<h3>Simple Project</h3> <h3>Simple Project</h3>


@@ -401,14 +421,25 @@ The project contains sub directories
<tr> <tr>
<td><b>src</b> <td><b>src</b>
</td> </td>
<td>source goes in under this tree
<td>source goes in under this tree <i>in a heirarchy which matches
the package names<i>. The dependency compilation of javac requires this.
</td> </td>
</tr> </tr>
</table> </table>


The bin, lib, doc and src directories should be under source code control. The bin, lib, doc and src directories should be under source code control.
Slight variations include an extra tree of content to be included in the Slight variations include an extra tree of content to be included in the
distribution jars -inf files, images, etc. Javadoc output can be
distribution jars -inf files, images, etc. These can go under source
too, with a <tt>metadata</tt> directory for web.xml and similar
manifests, and a <tt>web</tt> folder for web content -JSP, html, images
and so on. Keeping the content in this folder (or sub heirarchy)
together makes it easier to test links before deployment. The actual
production of a deployment image -such as a war file- can be left to the
appropriate ant task: there is no need to completely model your source tree
upon the deployment heirarchy.
<p>

Javadoc output can be
directed to a doc/ folder beneath build/, or to doc/javadoc. directed to a doc/ folder beneath build/, or to doc/javadoc.


<h3>Interface and Implementation split</h3> <h3>Interface and Implementation split</h3>
@@ -439,6 +470,14 @@ This style works well if different teams have different code
access/commitment rights. The risk is that by giving extra leeway to the access/commitment rights. The risk is that by giving extra leeway to the
sub projects, you can end up with incompatible source, libraries, build sub projects, you can end up with incompatible source, libraries, build
processes and just increase your workload and integration grief all round. processes and just increase your workload and integration grief all round.
<p>
The only way to retain control over a fairly loosely integrated
collection of projects is to have a fully automated build
and test process which verifies that everything is still compatible. Sam
Ruby runs one for all the apache java libraries and emails everyone when
something breaks; your own project may be able to make use of
<A href="http://cruisecontrol.sourceforge.net/">Cruise Control</a> for
an automated, continuous, background build process.


<h3>Integrated sub projects</h3> <h3>Integrated sub projects</h3>


@@ -456,7 +495,7 @@ more loosely coupled design will become a requirement as the projects
progress -but by the time this is realised schedule pressure and progress -but by the time this is realised schedule pressure and
intertwined build files make executing the split well nigh impossible. intertwined build files make executing the split well nigh impossible.
If that happens then just keep with it until there is the time to If that happens then just keep with it until there is the time to
refactor the project directory structures.
refactor the project directory structures.


<a name="antupdate"> <a name="antupdate">
<h2> <h2>
@@ -505,7 +544,12 @@ enhance it and offer up the enhancements to the rest of the world. This
is certainly better than starting work on your 'text case converter' is certainly better than starting work on your 'text case converter'
task on Ant 0.8 in isolation, announcing its existence six months latter task on Ant 0.8 in isolation, announcing its existence six months latter
and discovering that instead of adulation all you get are helpful and discovering that instead of adulation all you get are helpful
pointers to the existing implementation.
pointers to the existing implementation. The final benefit of being
involved with the process is that it makes it easier for your tasks to
be added with the ant CVS tree, bringing forward the date when ant has
taken on all the changes you needed to make to get your project to work.
If that happens you can revert to an official ant release, and get on
with all the other crises.


<p> <p>


@@ -517,7 +561,62 @@ consider routing it to an email address you don't use for much else. And
don't make everyone on the team subscribe; it can be too much of a don't make everyone on the team subscribe; it can be too much of a
distraction. distraction.


<a name="install">
<h2>
Installing with Ant.
</h2>
</a>

Because ant can read environment variables, copy, unzip and delete files
and make java and OS calls, it can be used for simple installation
tasks. For example, an installer for tomcat could extract the
environment variable TOMCAT_HOME, stop tomcat running, and copy a war
file to TOMCAT_HOME/webapps. It could even start tomcat again, but the
build wouldn't complete until tomcat exited, which is probably not what
was wanted.

<p>

The advantage of using ant is firstly that the same install targets
can be used from your local build files (via an <tt>ant</tt> invocation
of the install.xml file), and secondly that a basic install target is
quite easy to write. The disadvantages of this approach are that the
destination must have an up to date version of ant correctly
pre-installed, and ant doesn't allow you to handle failures well -and a
good installer is all about handling when things go wrong, from files
being in use to jar versions being different. This means that ant is not
suited for shrink wrapped software, but it does work for deployment and
installation to your local servers.

<p>

One major build project I was involved in had an ant install build file
for the bluestone application server, which would shutdown all four
instances of the app server on a single machine, copy the new version of
the war file (with datestamp and buildstamp) to an archive directory,
clean up the current deployed version of the war and then install the
new version. Because bluestone restarted JVMs on demand, this script was
all you needed for web service deployment. On the systems behind the
firewall, we upped the ante in the deployment process by using the ftp
task to copy out the war and build files, then the telnet task to
remotely invoke the build file. The result was we had automated
recompile and redeploy to local servers from inside our IDE (Jedit) or
the command line, which was simply invalualbe.

<p>

One extra trick I added later was a junit test case to run through
the install check list. With tests to verify access permissions on network
drives, approximate clock synchronisation between servers, DNS functionality,
ability to spawn executables and all the other trouble spots
, the install script could automatically do
a system health test during install time and report problems. [The same tests
could also be invoked from a JMX MBean, but that's another story].
<p>


So, ant is not a substitute for a real installer tool, except in the
special case of servers you control, but in that context it does let
you integrate remote installation with your build.
<a name="tips"> <a name="tips">
<h2> <h2>
Tips and Tricks</h2> Tips and Tricks</h2>
@@ -530,7 +629,7 @@ Tips and Tricks</h2>
The <a href="manual/CoreTasks/get.html">get</a> task can fetch any URL, so be used The <a href="manual/CoreTasks/get.html">get</a> task can fetch any URL, so be used
to trigger remote server side code during the build process, from remote to trigger remote server side code during the build process, from remote
server restarts to sending SMS/pager messages to the developer server restarts to sending SMS/pager messages to the developer
cellphones
cellphones.


<dt><b> <dt><b>
i18n i18n
@@ -561,7 +660,9 @@ Faster compiles with Jikes


The <a href="http://www.jikes.org/">jikes compiler</a> is usually much The <a href="http://www.jikes.org/">jikes compiler</a> is usually much
faster than javac, and does dependency checking. Get it. Then set faster than javac, and does dependency checking. Get it. Then set
build.compiler to "jikes" for it to be used in your build files.
build.compiler to "jikes" for it to be used in your build files. Better
yet, set the JIKES_HOME environment variable for jikes to automatically
get used, without changing your build files to only work with jikes.


<dt><b> <dt><b>
#include targets to simplify multi build.xml projects #include targets to simplify multi build.xml projects
@@ -584,8 +685,6 @@ method is the most portable:-
&lt;!DOCTYPE project [ &lt;!DOCTYPE project [
&lt;!ENTITY IncludeBuildCore SYSTEM &quot;buildCore.xml&quot;&gt; &lt;!ENTITY IncludeBuildCore SYSTEM &quot;buildCore.xml&quot;&gt;
&lt;!ENTITY IncludeBuildSecondary SYSTEM &quot;buildSecondary.xml&quot;&gt; &lt;!ENTITY IncludeBuildSecondary SYSTEM &quot;buildSecondary.xml&quot;&gt;
%IncludeBuildCore;
%IncludeBuildSecondary;
]&gt; ]&gt;
&lt;target name=&quot;includedBuild&quot;&gt; &lt;target name=&quot;includedBuild&quot;&gt;
@@ -593,12 +692,27 @@ method is the most portable:-
&amp;IncludeBuildSecondary; &amp;IncludeBuildSecondary;
&lt;/target&gt; &lt;/target&gt;
</pre> </pre>
The clean method using XInclude/Xpath will let you include named
The cleaner method using XInclude/Xpath will let you include named
targets from one build file or another, using targets from one build file or another, using
<a href="http://www.w3.org/XML/Linking"> <a href="http://www.w3.org/XML/Linking">
the xpointer syntax</a>. You'll need to wait for the W3C proposals the xpointer syntax</a>. You'll need to wait for the W3C proposals
to finalise and the java XML parsers to implement it before to finalise and the java XML parsers to implement it before
using xpointer references.
using xpointer references.
<p>
Before you go overboard with using XML inclusion, note that the <tt>ant</tt> task lets
you call any target in any other build file -with all your property settings propagating down to
that target. So you can actually have a suite of utility targets -"deploy-to-stack-a", "email-to-team",
"cleanup-installation" which can be called from any of your main build files, perhaps with subtly changed
parameters. Indeed, after a couple of projects you may be able to create a re-usable core build file which
contains the core targets of a basic java development project -compile, debug, deploy- which project specific
build files call with their own settings. If you can achive this then
you are definately making your way up the software maturity ladder. NB,
<tt>ant</tt> copies all your properties unless the <i>inheritall</i> attribute is set to false. Before that
attribute existed you had to carefully name all property definitions in all build files to prevent unintentional
overwriting of the invoked property by that of the caller, now you just have to remember to set
<tt>inheritall="false"</tt> on all uses of the ant task.

<dt><b> <dt><b>
Implement complex Ant builds through XSL Implement complex Ant builds through XSL
</b><dd> </b><dd>
@@ -606,7 +720,8 @@ Implement complex Ant builds through XSL
XSLT can be used to dynamically generate build.xml files from a source XSLT can be used to dynamically generate build.xml files from a source
xml file, with the <a href="manual/CoreTasks/style.html">Style</a> task controlling xml file, with the <a href="manual/CoreTasks/style.html">Style</a> task controlling
the transform. This is the current recommended strategy for creating the transform. This is the current recommended strategy for creating
complex build files dynamically.
complex build files dynamically. However, its use is still apparently
quite rare -which means you will be on the bleeding edge of technology.




<dt><b> <dt><b>
@@ -654,6 +769,33 @@ Even if you edit ant files by hand, Antidote makes a good execution tool
because it eliminates the startup time of the JVM, perhaps even some of because it eliminates the startup time of the JVM, perhaps even some of
the XML parsing delays. the XML parsing delays.


<dt><b>
Use the replace task to programmatic modify text files in your project.
</b><dd>
Imagine your project has some source files -BAT files, ASP pages (!), anything
which needs to be statically customised at compile time for particular
installations, such driven from some properties of the project such as JVM options, or the URL
to direct errors too. The replace task can be used to modify files, substituting text and creating
versions customised for that build or destination. Of course, per-destination customisation
should be delayed until installation, but if you are using ant for the remote installation
that suddenly becomes feasible.

<dt><b>
Use the mailing lists
</b><dd>
There are two
<a href="http://jakarta.apache.org/site/mail.html">mailing lists</a>
related to ant, ant-user and ant-developer. Ant user is where <i>all</i>
questions related to using ant should go. Installation, syntax, code
samples, etc -post your questions there or search the archives for
whether the query has been posted and answered before. Ant-developer
is where ant development takes place -so it is <i>not</i> the place to
post things like "I get a compilation error when I build my project" or
"how do I make a zip file". If you are actually extending ant, on the other
hand, it is the ideal place to ask questions about how to add new tasks, make
changes to existing ones -and to post the results of your work, if you want them
incorporated into the ant source tree.
</dl> </dl>


<a name="puttingtogether"> <a name="puttingtogether">
@@ -684,7 +826,8 @@ should be considered if they are part of the process.
<p> <p>
Debug/release switching can be handled with separate initialisation Debug/release switching can be handled with separate initialisation
targets called before the compile tasks which define the appropriate targets called before the compile tasks which define the appropriate
properties.
properties. Antcall is the trick here, as it allows you to have two paths
of property initialisation in a build file.


<p> <p>
Internal targets should be used to structure the process Internal targets should be used to structure the process
@@ -773,7 +916,7 @@ before acting.


<h3>It's not meant to be a nice language for humans</h3> <h3>It's not meant to be a nice language for humans</h3>


XML isnt a nice representation of information for humans. It's a
XML isn't a nice representation of information for humans. It's a
reasonable representation for programs, and text editors and source code reasonable representation for programs, and text editors and source code
management systems can all handle it nicely. But a complex ant file can management systems can all handle it nicely. But a complex ant file can
get ugly because XML is a bit ugly, and a complex build is, well, get ugly because XML is a bit ugly, and a complex build is, well,
@@ -781,6 +924,24 @@ complicated. Use XML comments so that the file you wrote last month
still makes sense when you get back to it, and use Antidote to edit the still makes sense when you get back to it, and use Antidote to edit the
files if you prefer it. files if you prefer it.


<h3>You still need all the other foundational bits of a software
project</h3>

If you don't have an source code management system, you are going to end
up hosed. If you don't have everything under SCM, including web pages,
dependent jars, installation files, you are still going to end up hosed,
it's just a question of when it's going to happen.
CVS is effectively free and works well with ant, but Sourcesafe, Perforce,
Clearcase and StarTeam also have ant tasks. These tasks
let you have auto-incrementing build counters, and automated file
update processes.

<p>

You also need some kind of change control process, to resist
uncontrolled feature creep. Bugzilla is a simple and low cost tool for
this, using ant and a continuous test process enables a rapid evolution of code
to adapt to those changes which are inevitable.


<h2>Endpiece</h2> <h2>Endpiece</h2>


@@ -809,8 +970,22 @@ running a continuous integration/testing proces.
code you will soon have. code you will soon have.


</ul> </ul>
<hr>
<p align="center">Copyright &copy; 2000 Apache Software Foundation. All rights
Reserved.</p>


<a name="author">
<h3>About the Author</h3>
</a>

Steve Loughran is a research scientist at a corporate R&amp;D lab,
currently on a sabbatical building production web services against
implausible deadlines for the fun of it. Because of those implausible
deadlines, email questions related to this document are generally, and
regretfully unwelcome, unless they are corrections to the content,
advanced discourse on how to evolve software engineering processes to
meet the next generation of challenges, or from someone he knows. Even
then, a timely response is unlikely. Please use the mailing lists
instead.


<hr>
<p align="center">Copyright &copy; 2000, 2001 Apache Software Foundation. All rights
Reserved.</p>
</body>

+ 4
- 4
docs/manual/CoreTasks/antcall.html View File

@@ -24,10 +24,10 @@ setting of <i>inheritAll</i>. This allows you to parameterize your subprojects.
<p> <p>
When a target is invoked by antcall, all of its dependent targets will When a target is invoked by antcall, all of its dependent targets will
also be called within the context of any new parameters. For example. if also be called within the context of any new parameters. For example. if
the target "doSomethingElse" depended on the target "init", then the <i>antcall</i> of
"doSomethingElse" will call "init" during the call. Of course, any properties defined in the
antcall task or inherited from the calling target will be fixed and not overridable
in the init task -or indeed in the "doSomethingElse" task.
the target &quot;doSomethingElse&quot; depended on the target &quot;init&quot;, then the
<i>antcall</i> of &quot;doSomethingElse&quot; will call &quot;init&quot; during the call.
Of course, any properties defined in the antcall task or inherited from the calling target
will be fixed and not overridable in the init task -or indeed in the &quot;doSomethingElse&quot; task.
</p> </p>
<h3>Parameters</h3> <h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0"> <table border="1" cellpadding="2" cellspacing="0">


+ 12
- 1
docs/manual/CoreTasks/available.html View File

@@ -51,6 +51,11 @@ execution depending on system parameters.</p>
<td valign="top">The classpath to use when looking up <code>classname</code> or <code>resource</code>.</td> <td valign="top">The classpath to use when looking up <code>classname</code> or <code>resource</code>.</td>
<td align="center" valign="top">No</td> <td align="center" valign="top">No</td>
</tr> </tr>
<tr>
<td valign="top">filepath</td>
<td valign="top">The path to use when looking up <code>file</code>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr> <tr>
<td valign="top">classpathref</td> <td valign="top">classpathref</td>
<td valign="top">The classpath to use, given as a <a href="../using.html#references">reference</a> to a path defined elsewhere.</td> <td valign="top">The classpath to use, given as a <a href="../using.html#references">reference</a> to a path defined elsewhere.</td>
@@ -58,7 +63,9 @@ execution depending on system parameters.</p>
</tr> </tr>
<tr> <tr>
<td valign="top">type</td> <td valign="top">type</td>
<td valign="top">The type of <code>file</code> to look for, either a directory (<code>type="dir"</code>) or a file (<code>type="file"</code>). If not set, the property will be set if the name specified in the <code>file</code> attribute exists as either a file or a directory.</td>
<td valign="top">The type of <code>file</code> to look for, either a directory (<code>type=&quot;dir&quot;</code>) or a file
(<code>type=&quot;file&quot;</code>). If not set, the property will be set if the name specified in the <code>file</code>
attribute exists as either a file or a directory.</td>
<td align="center" valign="top">No</td> <td align="center" valign="top">No</td>
</tr> </tr>
@@ -68,6 +75,10 @@ execution depending on system parameters.</p>
<p><code>Available</code>'s <code>classpath</code> attribute is a <a <p><code>Available</code>'s <code>classpath</code> attribute is a <a
href="../using.html#path">path-like structure</a> and can also be set via a nested href="../using.html#path">path-like structure</a> and can also be set via a nested
<code>&lt;classpath&gt;</code> element.</p> <code>&lt;classpath&gt;</code> element.</p>
<h4>filepath</h4>
<p><code>Available</code>'s <code>filepath</code> attribute is a <a
href="../using.html#path">path-like structure</a> and can also be set via a nested
<code>&lt;filepath&gt;</code> element.</p>
<h3>Examples</h3> <h3>Examples</h3>
<pre> &lt;available classname=&quot;org.whatever.Myclass&quot; property=&quot;Myclass.present&quot;/&gt;</pre> <pre> &lt;available classname=&quot;org.whatever.Myclass&quot; property=&quot;Myclass.present&quot;/&gt;</pre>
<p>sets the <code>Myclass.present</code> property to the value &quot;true&quot; <p>sets the <code>Myclass.present</code> property to the value &quot;true&quot;


+ 1
- 1
docs/manual/CoreTasks/chmod.html View File

@@ -44,7 +44,7 @@ directly. More FileSets can be specified using nested
<tr> <tr>
<td valign="top">includes</td> <td valign="top">includes</td>
<td valign="top">comma separated list of patterns of files that must be <td valign="top">comma separated list of patterns of files that must be
included. All files are included when omitted.</td>
included.</td>
<td valign="top" align="center">No</td> <td valign="top" align="center">No</td>
</tr> </tr>
<tr> <tr>


+ 31
- 6
docs/manual/CoreTasks/copy.html View File

@@ -53,8 +53,9 @@ To use a fileset, the <var>todir</var> attribute must be set.</p>
</tr> </tr>
<tr> <tr>
<td valign="top">filtering</td> <td valign="top">filtering</td>
<td valign="top">Indicates whether token filtering should take place during
the copy. Defaults to &quot;no&quot;.</td>
<td valign="top">Indicates whether token filtering using the global build file
filters should take place during the copy. Defaults to &quot;no&quot;.
Nested filtersets will be used even if this value is &quot;no&quot;</td>
<td valign="top" align="center">No</td> <td valign="top" align="center">No</td>
</tr> </tr>
<tr> <tr>
@@ -73,11 +74,22 @@ To use a fileset, the <var>todir</var> attribute must be set.</p>
</tr> </tr>
</table> </table>
<h3>Parameters specified as nested elements</h3> <h3>Parameters specified as nested elements</h3>
<h4>fileset</h4>
<p><a href="../CoreTypes/fileset.html">FileSets</a> are used to select files to copy.
To use a fileset, the <var>todir</var> attribute must be set.</p>
<h4>mapper</h4> <h4>mapper</h4>
<p>You can define file name transformations by using a nested <a
href="../CoreTypes/mapper.html">mapper</a> element. The default mapper used by
<code>&lt;copy&gt;</code> is the <a
href="../CoreTypes/mapper.html#identity-mapper">identity</a>.</p>
<p>You can define file name transformations by using a nested <a
href="../CoreTypes/mapper.html">mapper</a> element. The default mapper used by
<code>&lt;copy&gt;</code> is the <a
href="../CoreTypes/mapper.html#identity-mapper">identity</a>.</p>
<h4>filterset</h4>
<p><a href="../CoreTypes/filterset.html">Filtersets</a> are used to replace tokens in files that are copied.
To use a filterset just add the nested filterset elements.</P>
<h3>Examples</h3> <h3>Examples</h3>
<p><b>Copy a single file</b></p> <p><b>Copy a single file</b></p>
<pre> <pre>
@@ -113,6 +125,19 @@ href="../CoreTypes/mapper.html#identity-mapper">identity</a>.</p>
&lt;mapper type=&quot;glob&quot; from=&quot;*&quot; to=&quot;*.bak&quot;/&gt; &lt;mapper type=&quot;glob&quot; from=&quot;*&quot; to=&quot;*.bak&quot;/&gt;
&lt;/copy&gt; &lt;/copy&gt;
</pre> </pre>


<p><b>Copy a set of files to a replacing @TITLE@ with Foo Bar in all files.</b></p>
<pre>
&lt;copy todir=&quot;../backup/dir&quot; &gt;
&lt;fileset dir=&quot;src_dir&quot; /&gt;
&lt;filterset&gt;
&lt;filter token=&quot;TITLE&quot; value=&quot;Foo Bar&quot; /&gt;
&lt;/filterset&gt;
&lt;/copy&gt;
</pre>


<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights <hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
Reserved.</p> Reserved.</p>




+ 1
- 1
docs/manual/CoreTasks/delete.html View File

@@ -112,7 +112,7 @@ and any sub-directories.</p>
&lt;fileset dir=&quot;build&quot; /&gt; &lt;fileset dir=&quot;build&quot; /&gt;
&lt;/delete&gt; &lt;/delete&gt;
</pre> </pre>
<p>deletes all files and subdirectories of <code>build</code>, but not
<p>deletes all files and subdirectories of <code>build</code>, including
<code>build</code> itself.</p> <code>build</code> itself.</p>
<hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights <hr><p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
Reserved.</p> Reserved.</p>


+ 2
- 2
docs/manual/CoreTasks/dependset.html View File

@@ -110,12 +110,12 @@ filelists, and if any are older, they are all deleted.
<p> <p>
In this example derived HTML files in the ${output.dir} directory In this example derived HTML files in the ${output.dir} directory
will be removed if any are out-of-date with respect to: will be removed if any are out-of-date with respect to:
<olist>
<ol>
<li>the DTD of their source XML files</li> <li>the DTD of their source XML files</li>
<li>a common DTD (imported by the main DTD)</li> <li>a common DTD (imported by the main DTD)</li>
<li>a subordinate XSLT stylesheet (imported by the main stylesheet), or</li> <li>a subordinate XSLT stylesheet (imported by the main stylesheet), or</li>
<li>the buildfile</li> <li>the buildfile</li>
</olist>
</ol>
</p> </p>
<p> <p>
If any of the source files in the above example does not exist, all If any of the source files in the above example does not exist, all


+ 8
- 2
docs/manual/CoreTasks/ear.html View File

@@ -91,6 +91,12 @@ attributes of zipfilesets in a Zip or Jar task.)</p>
<td valign="top">the manifest file to use.</td> <td valign="top">the manifest file to use.</td>
<td valign="top" align="center">No</td> <td valign="top" align="center">No</td>
</tr> </tr>
<tr>
<td valign="top">update</td>
<td valign="top">indicates whether to update or overwrite
the destination file if it already exists.</td>
<td valign="top" align="center">No</td>
</tr>
<tr> <tr>
<td valign="top">whenempty</td> <td valign="top">whenempty</td>
<td valign="top">Behavior to use if no files match.</td> <td valign="top">Behavior to use if no files match.</td>
@@ -106,8 +112,8 @@ fileset includes a file named <code>MANIFEST.MF</code>, the file is
ignored and you will get a warning.</p> ignored and you will get a warning.</p>
<h2>Example</h2> <h2>Example</h2>
<pre> <pre>
&lt;ear earfile="${build.dir}/myapp.ear" appxml="${src.dir}/metadata/application.xml"&gt;
&lt;fileset dir="${build.dir}" includes="*.jar,*.war"/&gt;
&lt;ear earfile=&quot;${build.dir}/myapp.ear&quot; appxml=&quot;${src.dir}/metadata/application.xml&quot;&gt;
&lt;fileset dir=&quot;${build.dir}&quot; includes=&quot;*.jar,*.war&quot;/&gt;
&lt;/ear&gt; &lt;/ear&gt;
</pre> </pre>
<hr> <hr>


+ 4
- 5
docs/manual/CoreTasks/fixcrlf.html View File

@@ -102,9 +102,9 @@ supports all attributes of <code>&lt;fileset&gt;</code>
<li>crlf: convert all EOLs to the pair CRLF</li> <li>crlf: convert all EOLs to the pair CRLF</li>
</ul> </ul>
Default is based on the platform on which you are running Default is based on the platform on which you are running
this task. For Unix platforms, the default is "lf".
this task. For Unix platforms, the default is &quot;lf&quot;.
For DOS based systems (including Windows), the default is For DOS based systems (including Windows), the default is
"crlf". For Mac OS, the default is "cr".
&quot;crlf&quot;. For Mac OS, the default is &quot;cr&quot;.
<p> <p>
This is the preferred method for specifying EOL. The This is the preferred method for specifying EOL. The
&quot;<i><b>cr</b></i>&quot; attribute (see below) is &quot;<i><b>cr</b></i>&quot; attribute (see below) is
@@ -138,9 +138,9 @@ supports all attributes of <code>&lt;fileset&gt;</code>
</li> </li>
</ul> </ul>
Default is based on the platform on which you are running Default is based on the platform on which you are running
this task. For Unix platforms, the default is "remove".
this task. For Unix platforms, the default is &quot;remove&quot;.
For DOS based systems (including Windows), the default is For DOS based systems (including Windows), the default is
"add".
&quot;add&quot;.
<p> <p>
<i>N.B.</i>: One special case is recognized. The three <i>N.B.</i>: One special case is recognized. The three
characters CR-CR-LF are regarded as a single EOL. characters CR-CR-LF are regarded as a single EOL.
@@ -164,7 +164,6 @@ supports all attributes of <code>&lt;fileset&gt;</code>
<td valign="top" align="center">No</td> <td valign="top" align="center">No</td>
</tr> </tr>
<tr> <tr>
<tr>
<td valign="top">tab</td> <td valign="top">tab</td>
<td valign="top">Specifies how tab characters are to be handled. Valid <td valign="top">Specifies how tab characters are to be handled. Valid
values for this property are: values for this property are:


+ 11
- 0
docs/manual/CoreTasks/jar.html View File

@@ -33,6 +33,11 @@ in the jar task.
See the <a href="zip.html">Zip</a> task for more details and examples.</p> See the <a href="zip.html">Zip</a> task for more details and examples.</p>
<p>If the manifest is omitted, a simple one will be supplied by Ant. <p>If the manifest is omitted, a simple one will be supplied by Ant.
You should not include <samp>META-INF/MANIFEST.MF</samp> in your set of files.</p> You should not include <samp>META-INF/MANIFEST.MF</samp> in your set of files.</p>
<p>The <code>update</code> parameter controls what happens if the
JAR file already exists. When set to <code>yes</code>, the JAR file is
updated with the files specified. When set to <code>no</code> (the
default) the JAR file is overwritten. An example use of this is
provided in the <a href="zip.html">Zip task documentation</a>.
<p>The <code>whenempty</code> parameter controls what happens when no files match. <p>The <code>whenempty</code> parameter controls what happens when no files match.
If <code>create</code> (the default), the JAR is created anyway with only a manifest. If <code>create</code> (the default), the JAR is created anyway with only a manifest.
If <code>skip</code>, the JAR is not created and a warning is issued. If <code>skip</code>, the JAR is not created and a warning is issued.
@@ -113,6 +118,12 @@ include an empty one for you.)</p>
<td valign="top">the manifest file to use.</td> <td valign="top">the manifest file to use.</td>
<td valign="top" align="center">No</td> <td valign="top" align="center">No</td>
</tr> </tr>
<tr>
<td valign="top">update</td>
<td valign="top">indicates whether to update or overwrite
the destination file if it already exists.</td>
<td valign="top" align="center">No</td>
</tr>
<tr> <tr>
<td valign="top">whenempty</td> <td valign="top">whenempty</td>
<td valign="top">Behavior to use if no files match.</td> <td valign="top">Behavior to use if no files match.</td>


+ 78
- 4
docs/manual/CoreTasks/javac.html View File

@@ -9,7 +9,7 @@


<h2><a name="javac">Javac</a></h2> <h2><a name="javac">Javac</a></h2>
<h3>Description</h3> <h3>Description</h3>
<p>Compiles a source tree within the running (Ant) VM.</p>
<p>Compiles a Java source tree.</p>
<p>The source and destination directory will be recursively scanned for Java <p>The source and destination directory will be recursively scanned for Java
source files to compile. Only Java files that have no corresponding class file source files to compile. Only Java files that have no corresponding class file
or where the class file is older than the java file will be compiled.</p> or where the class file is older than the java file will be compiled.</p>
@@ -29,7 +29,7 @@ want to use default exclusions or not. See the section on <a
href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
inclusion/exclusion of files works, and how to write patterns.</p> inclusion/exclusion of files works, and how to write patterns.</p>
<p>It is possible to use different compilers. This can be selected with the <p>It is possible to use different compilers. This can be selected with the
&quot;build.compiler&quot; property. There are four choices:</p>
&quot;build.compiler&quot; property. Here are the choices:-</p>
<ul> <ul>
<li>classic (the standard compiler of JDK 1.1/1.2) - javac1.1 and <li>classic (the standard compiler of JDK 1.1/1.2) - javac1.1 and
javac1.2 can be used as aliases</li> javac1.2 can be used as aliases</li>
@@ -47,7 +47,7 @@ inclusion/exclusion of files works, and how to write patterns.</p>
<li>extJavac (run either modern or classic in a JVM of its own)</li> <li>extJavac (run either modern or classic in a JVM of its own)</li>
</ul> </ul>
<p>For JDK 1.1/1.2, classic is the default. For JDK 1.3/1.4, modern is the default. <p>For JDK 1.1/1.2, classic is the default. For JDK 1.3/1.4, modern is the default.
If you wish to use a different compiler interface than one of the four
If you wish to use a different compiler interface than those
supplied, write a class that implements the CompilerAdapter interface supplied, write a class that implements the CompilerAdapter interface
(package org.apache.tools.ant.taskdefs.compilers). Supply the full (package org.apache.tools.ant.taskdefs.compilers). Supply the full
classname in the &quot;build.compiler&quot; property. classname in the &quot;build.compiler&quot; property.
@@ -137,6 +137,12 @@ files/directories from the CLASSPATH it passes to the compiler.</p>
this option yet)</td> this option yet)</td>
<td align="center" valign="top">No</td> <td align="center" valign="top">No</td>
</tr> </tr>
<tr>
<td valign="top">nowarn</td>
<td valign="top">indicates whether -nowarn switch should be passed
to the compiler; defaults to <code>off</code>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr> <tr>
<td valign="top">debug</td> <td valign="top">debug</td>
<td valign="top">indicates whether source should be compiled with debug <td valign="top">indicates whether source should be compiled with debug
@@ -189,6 +195,20 @@ files/directories from the CLASSPATH it passes to the compiler.</p>
defaults to <code>no</code>.</td> defaults to <code>no</code>.</td>
<td align="center" valign="top">No</td> <td align="center" valign="top">No</td>
</tr> </tr>
<tr>
<td valign="top">memoryInitialSize</td>
<td valign="top">the initial size of the memory for the underlying VM, if javac is run
externally, ignored otherwise; defaults to the standard VM memory setting.
(examples: <code>83886080</code>, <code>81920k</code>, or <code>80m</code>)</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">memoryMaximumSize</td>
<td valign="top">the maximum size of the memory for the underlying VM, if javac is run
externally, ignored otherwise; defaults to the standard VM memory setting.
(examples: <code>83886080</code>, <code>81920k</code>, or <code>80m</code>)</td>
<td align="center" valign="top">No</td>
</tr>
<tr> <tr>
<td valign="top">failonerror</td> <td valign="top"> <td valign="top">failonerror</td> <td valign="top">
indicates whether the build will continue even if there are compilation errors; defaults to <code>true</code>. indicates whether the build will continue even if there are compilation errors; defaults to <code>true</code>.
@@ -267,8 +287,62 @@ This problem may occur with all JDKs &lt; 1.2.</p>
<p><b>Note:</b> If you wish to compile only source-files located in some packages below a <p><b>Note:</b> If you wish to compile only source-files located in some packages below a
common root you should not include these packages in the srcdir-attribute. Use include/exclude-attributes common root you should not include these packages in the srcdir-attribute. Use include/exclude-attributes
or elements to filter for these packages. If you include part of your package-structure inside the srcdir-attribute or elements to filter for these packages. If you include part of your package-structure inside the srcdir-attribute
(or nested src-elements) Ant will start to recompile your sources everytime you call it.</p>
(or nested src-elements) Ant will start to recompile your sources every time you call it.</p>

<h3>Jikes Notes</h3>

If the environment variable <tt>JIKES_HOME</tt> is set to the location
of the jikes compiler, then the standard Ant invocation scripts
automatically set build.compiler to &quot;jikes&quot;. This enables one to use
jikes when available, without having to commit the build file to a
single choice of compiler.


<p>

Jikes also supports some extra options, which can be set be defining
properties prior to invoking the task. The ant developers are aware that
this is ugly and inflexible -expect a better solution in the future. All
the options are boolean, and must be set to &quot;true&quot; or &quot;yes&quot; to be
interpreted as anything other than false; by default
build.compiler.warnings is &quot;true&quot; while all others are &quot;false&quot;

<table border="1" cellpadding="2" cellspacing="0">
<tr>
<td valign="top">
build.compiler.emacs
</td>
<td valign="top">
Enable emacs compatible error messages
</td>
</tr>
<tr>
<td valign="top">
build.compiler.warnings<br>
<b>This property has been deprecated, use the nowarn attribute
instead</b>
</td>
<td valign="top">
don't disable warning messages
</td>
</tr>
<tr>
<td valign="top">
build.compiler.pedantic
</td>
<td valign="top">
enable pedantic warnings
</td>
</tr>
<tr>
<td valign="top">
build.compiler.fulldepend
</td>
<td valign="top">
enable full dependency checking,<br>
&quot;+F&quot; in the jikes manual.
</td>
</tr>
</table>
<hr> <hr>
<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights <p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
Reserved.</p> Reserved.</p>


+ 4
- 1
docs/manual/CoreTasks/mail.html View File

@@ -9,7 +9,10 @@


<h2><a name="mail">Mail</a></h2> <h2><a name="mail">Mail</a></h2>
<h3>Description</h3> <h3>Description</h3>
<p>A task to send SMTP email.</p>
<p>A task to send SMTP email. Text and text files to include in the message
body may be specified. To send binary attachments the optional
<a href="../OptionalTasks/mimemail.html">MimeMail</a> task should be used instead</p>

<h3>Parameters</h3> <h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0"> <table border="1" cellpadding="2" cellspacing="0">
<tr> <tr>


+ 38
- 20
docs/manual/CoreTasks/overview.html View File

@@ -36,7 +36,7 @@ about all tasks currently known to Ant.</p></td>
</tr> </tr>
<tr valign="top"> <tr valign="top">
<td><a href="apply.html">Apply</a></td>
<td><a href="apply.html">Apply/<i>ExecOn</i></a></td>
<td><p>Executes a system command. When the <i>os</i> attribute is specified, then <td><p>Executes a system command. When the <i>os</i> attribute is specified, then
the command is only executed when Ant is run on one of the specified operating the command is only executed when Ant is run on one of the specified operating
systems.</p></td> systems.</p></td>
@@ -55,6 +55,13 @@ file, a directory, a class in the classpath, or a JVM system resource.</p></td>
the argument for the chmod command.</p></td> the argument for the chmod command.</p></td>
</tr> </tr>


<tr valign="top">
<td><a href="condition.html">Condition</a></td>
<td><p>Sets a property if a certain condition holds true - this is a
generalization of <a href="available.html">Available</a> and
<a href="uptodate.html">Uptodate</a>.</p></td>
</tr>

<tr valign="top"> <tr valign="top">
<td><a href="copy.html">Copy</a></td> <td><a href="copy.html">Copy</a></td>
<td><p>Copies a file or Fileset to a new file or directory.</p></td> <td><p>Copies a file or Fileset to a new file or directory.</p></td>
@@ -94,6 +101,13 @@ file, a directory, a class in the classpath, or a JVM system resource.</p></td>
<td><p><i>This task has been deprecated. Use the Delete task instead.</i></p></td> <td><p><i>This task has been deprecated. Use the Delete task instead.</i></p></td>
</tr> </tr>


<tr valign="top">
<td><a href="dependset.html">Dependset</a></td>
<td><p>The dependset task compares a set of source files with a set of target
files. If any of the source files is more recent than any of
the target files, all of the target files are removed. </p></td>
</tr>

<tr valign="top"> <tr valign="top">
<td><a href="ear.html">Ear</a></td> <td><a href="ear.html">Ear</a></td>
<td><p>An extension of the <a href="jar.html">Jar</a> task with special <td><p>An extension of the <a href="jar.html">Jar</a> task with special
@@ -112,16 +126,6 @@ the command is only executed when Ant is run on one of the specified operating
systems.</p></td> systems.</p></td>
</tr> </tr>


<tr valign="top">
<td><a href="execon.html">ExecOn</a></td>
<td><p>Executes a system command. When the <i>os</i> attribute is specified, then
the command is only executed when Ant is run on one of the specified operating
systems.</p>
<p>The files and/or directories of a number of <a
href="../CoreTypes/fileset.html">FileSet</a>s are passed as arguments to the system
command. At least one nested <code>&lt;fileset&gt;</code> is required.</p></td>
</tr>

<tr valign="top"> <tr valign="top">
<td><a href="fail.html">Fail</a></td> <td><a href="fail.html">Fail</a></td>
<td><p>Exits the current build (just throwing a BuildException), optionally printing additional information.</p></td> <td><p>Exits the current build (just throwing a BuildException), optionally printing additional information.</p></td>
@@ -192,15 +196,21 @@ specified.</p></td>
<tr valign="top"> <tr valign="top">
<td><a href="mkdir.html">Mkdir</a></td> <td><a href="mkdir.html">Mkdir</a></td>
<td><p>Creates a directory. Also non-existent parent directories are created, when <td><p>Creates a directory. Also non-existent parent directories are created, when
necessary.</p></td>
necessary.</p></td>
</tr> </tr>


<tr valign="top"> <tr valign="top">
<td><a href="move.html">Move</a></td> <td><a href="move.html">Move</a></td>
<td><p>Moves a file to a new file or directory, or sets of files to <td><p>Moves a file to a new file or directory, or sets of files to
a new directory.</p></td>
a new directory.</p></td>
</tr> </tr>


<tr valign="top">
<td><a href="parallel.html">Parallel</a></td>
<td><p>Parallel is a container task - it can contain other Ant tasks. Each nested
task within the parallel task will be executed in its own thread. </p> </td>
</tr>
<tr valign="top"> <tr valign="top">
<td><a href="patch.html">Patch</a></td> <td><a href="patch.html">Patch</a></td>
<td><p>Applies a diff file to originals.</p></td> <td><p>Applies a diff file to originals.</p></td>
@@ -215,13 +225,13 @@ a new directory.</p></td>
<tr valign="top"> <tr valign="top">
<td><a href="property.html">Property</a></td> <td><a href="property.html">Property</a></td>
<td><p>Sets a property (by name and value), or set of properties (from file or <td><p>Sets a property (by name and value), or set of properties (from file or
resource) in the project.</p></td>
resource) in the project.</p></td>
</tr> </tr>


<tr valign="top"> <tr valign="top">
<td><a href="recorder.html">Record</a></td> <td><a href="recorder.html">Record</a></td>
<td><p>A recorder is a listener to the current build process that records the <td><p>A recorder is a listener to the current build process that records the
output to a file.</p></td>
output to a file.</p></td>
</tr> </tr>


<tr valign="top"> <tr valign="top">
@@ -232,7 +242,7 @@ output to a file.</p></td>
<tr valign="top"> <tr valign="top">
<td><a href="replace.html">Replace</a></td> <td><a href="replace.html">Replace</a></td>
<td><p>Replace is a directory based task for replacing the occurrence of a given string with another string <td><p>Replace is a directory based task for replacing the occurrence of a given string with another string
in selected file.</p></td>
in selected file.</p></td>
</tr> </tr>


<tr valign="top"> <tr valign="top">
@@ -240,6 +250,14 @@ in selected file.</p></td>
<td><p>Runs the rmic compiler for a certain class.</p></td> <td><p>Runs the rmic compiler for a certain class.</p></td>
</tr> </tr>


<tr valign="top">
<td><a href="sequential.html">Sequential</a></td>
<td><p>Sequential is a container task - it can contain other Ant tasks. The nested
tasks are simply executed in sequence. Sequential's primary use is to support
the sequential execution of a subset of tasks within the
<a href="parallel.html">parallel</a> task</p></td>
</tr>
<tr valign="top"> <tr valign="top">
<td><a href="signjar.html">SignJar</a></td> <td><a href="signjar.html">SignJar</a></td>
<td><p>Signs a jar or zip file with the javasign command line tool.</p></td> <td><p>Signs a jar or zip file with the javasign command line tool.</p></td>
@@ -271,13 +289,13 @@ in selected file.</p></td>
<tr valign="top"> <tr valign="top">
<td><a href="taskdef.html">Taskdef</a></td> <td><a href="taskdef.html">Taskdef</a></td>
<td><p>Adds a task definition to the current project, such that this new task can be <td><p>Adds a task definition to the current project, such that this new task can be
used in the current project.</p></td>
used in the current project.</p></td>
</tr> </tr>


<tr valign="top"> <tr valign="top">
<td><a href="touch.html">Touch</a></td> <td><a href="touch.html">Touch</a></td>
<td><p>Changes the modification time of a file and possibly creates it at <td><p>Changes the modification time of a file and possibly creates it at
the same time.</p></td>
the same time.</p></td>
</tr> </tr>


<tr valign="top"> <tr valign="top">
@@ -290,7 +308,7 @@ the same time.</p></td>
<tr valign="top"> <tr valign="top">
<td><a href="typedef.html">Typedef</a></td> <td><a href="typedef.html">Typedef</a></td>
<td><p>Adds a data type definition to the current project, such that this <td><p>Adds a data type definition to the current project, such that this
new type can be used in the current project.</p></td>
new type can be used in the current project.</p></td>
</tr> </tr>


<tr valign="top"> <tr valign="top">
@@ -316,7 +334,7 @@ new type can be used in the current project.</p></td>
<tr valign="top"> <tr valign="top">
<td><a href="uptodate.html">Uptodate</a></td> <td><a href="uptodate.html">Uptodate</a></td>
<td><p>Sets a property if a target files are more up to date than a set of <td><p>Sets a property if a target files are more up to date than a set of
Source files.</p></td>
Source files.</p></td>
</tr> </tr>


<tr valign="top"> <tr valign="top">


+ 3
- 3
docs/manual/CoreTasks/parallel.html View File

@@ -22,7 +22,7 @@ harness is run in another thread.</li>
<p>Care must be taken when using multithreading to ensure the tasks within the <p>Care must be taken when using multithreading to ensure the tasks within the
threads do not interact. For example, two javac compile tasks which write threads do not interact. For example, two javac compile tasks which write
classes into the same destination directory may interact where one tries to classes into the same destination directory may interact where one tries to
read a class for depenency information while the other task is writing the
read a class for dependency information while the other task is writing the
class file. Be sure to avoid these types of interactions within a class file. Be sure to avoid these types of interactions within a
&lt;parallel&gt; task</p> &lt;parallel&gt; task</p>
@@ -35,7 +35,7 @@ thread will be blocked waiting for all the child threads to complete.</p>


<p>If any of the tasks within the &lt;parallel&gt; task fails, the remaining <p>If any of the tasks within the &lt;parallel&gt; task fails, the remaining
tasks in other threads will continue to run until all threads have completed. tasks in other threads will continue to run until all threads have completed.
In this sitiuation, the parallel task will also fail.</p>
In this situation, the parallel task will also fail.</p>


<p>The parallel task may be combined with the <a href="sequential.html"> <p>The parallel task may be combined with the <a href="sequential.html">
sequential</a> task to define sequences of tasks to be executed on each thread sequential</a> task to define sequences of tasks to be executed on each thread
@@ -55,7 +55,7 @@ within the parallel block</p>
<p>This example represents a typical pattern for testing a server application. <p>This example represents a typical pattern for testing a server application.
In one thread the server is started (the wlrun task). The other thread consists In one thread the server is started (the wlrun task). The other thread consists
of a three tasks which are performed in sequence. The sleep task is used to of a three tasks which are performed in sequence. The sleep task is used to
give the server time to come up. Another task which is capabale of validating
give the server time to come up. Another task which is capable of validating
that the server is available could be used in place of the sleep task. The that the server is available could be used in place of the sleep task. The
test harness is then run. Once the tests are complete, the server is stopped test harness is then run. Once the tests are complete, the server is stopped
(using wlstop in this example), allowing both threads to complete. The (using wlstop in this example), allowing both threads to complete. The


+ 195
- 0
docs/manual/CoreTasks/pathconvert.html View File

@@ -0,0 +1,195 @@
<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<title>Ant User Manual</title>
</head>

<body>

<h2><a name="foreach">Pathconvert</a></h2>
<h3>Description</h3>
<p>Converts a nested path, path reference, or fileset reference to the form usable on a
specified platform
and stores the result in a given property. This operation is useful when script files
(batch files or shell scripts) must be generated my the build system and they contain
path information that must be properly formatted for the target architecture, not the
architecture on which the build is running, or when you need to create a list of files
separated by a given character, like a comma or a space.
</p>
<p>Prefix maps can be specified to map Windows drive letters to Unix paths and vice
versa.</p>

<h3>Parameters</h3>
<table 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">targetos</td>
<td valign="top">
The target architecture. Must be one of 'unix' or 'windows'. <BR>This is a
shorthand mechanism for specifying both <tt>pathsep</tt> and <tt>dirsep</tt>
according to the specified target architecture.
</td>
<td valign="top" align="center">
Must specify one of <tt>targetos</tt>, <tt>pathsep</tt>,or <tt>dirsep</tt>.
</td>
</tr>
<tr>
<td valign="top">dirsep</td>
<td valign="top">
The character to use as the directory separator in the generated paths.
</td>
<td valign="top" align="center">No, defaults to current JVM <tt>File.separator</tt></td>
</tr>
<tr>
<td valign="top">pathsep</td>
<td valign="top">
The character to use as the path element separator in the generated paths.
</td>
<td valign="top" align="center">No, defaults to current JVM <tt>File.pathSeparator</tt></td>
</tr>
<tr>
<td valign="top">property</td>
<td valign="top">The name of the property in which to place the converted path</td>
<td valign="top" align="center">Yes</td>
</tr>
<tr>
<td valign="top">refid</td>
<td valign="top">What to convert, given as a
<a href="../using.html#references">reference</a> to a PATH or FILESET
defined elsewhere</td>
<td valign="top" align="center">No, if omitted a nested &lt;path> element must be supplied.</td>
</tr>
</table>
<h3>Parameters specified as nested elements</h3>
<h4>map</h4>
<p>Specifies the mapping of path prefixes between Unix and Windows.</p>
<table 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">from</td>
<td valign="top">The prefix to match. Note that this value is case insensitive when
the build is running on a windows platform and case sensitive when running on a
Unix platform.</td>
<td valign="top" align="center">Yes</td>
</tr>
<tr>
<td valign="top">to</td>
<td valign="top">The replacement text to use when <i>from</i> is matched.</td>
<td valign="top" align="center">Yes</td>
</tr>
</table>

<p>Each map element specifies a single replacement map to be applied to the elements of
the path being processed. If no map entries are specified, then no path prefix mapping
is performed.
</p>
<p><i>Note that the map elements are applied in the order specified and the only the first
matching map element is applied. So, the ordering of your map elements can be important
if any <TT>from</tt> values are prefixes of other <tt>from</tt> values.</i>
</p>
<h4>path</h4>
<p>If a path reference is not supplied using the <i>refid</i> attribute, then a
nested path element must be supplied. See
<a href="../using.html#path">Path-like Structures</a> for details.</p>

<h3>Examples</h3>
<p>In the examples below, assume that the property <b>wl.home</b> has the value
<tt>d:\weblogic</tt> on Windows and <tt>/weblogic</tt> on Unix.</p>
<h4>Example 1</h4>
<pre>
&lt;path id="wl.path"&gt;
&lt;pathelement location=&quot;${wl.home}/lib/weblogicaux.jar&quot; /&gt;
&lt;pathelement location=&quot;${wl.home}/classes&quot; /&gt;
&lt;pathelement location=&quot;${wl.home}/mssqlserver4/classes&quot; /&gt;
&lt;pathelement location=&quot;c:\winnt\System32&quot; /&gt;
&lt;/path&gt;
&lt;pathconvert targetos=&quot;unix&quot; property=&quot;newpath&quot; refid=&quot;wl.path&quot;/&gt;
</pre>
<p>Assuming wl.property has the value "d:\weblogic", will generate the path shown below
and store it in the property named <tt>newpath</tt>
</p>
<pre>
/weblogic/lib/weblogicaux.jar:/weblogic/classes:/weblogic/mssqlserver4/classes:/WINNT/SYSTEM32
</pre>
Note that the drive letters have been removed. This is the default behavior when no map
elements have been specified.

<h4>Example 2</h4>
<pre>
&lt;pathconvert targetos=&quot;unix&quot; property=&quot;newpath&quot; &gt;
&lt;path id="wl.path"&gt;
&lt;pathelement location=&quot;${wl.home}/lib/weblogicaux.jar&quot; /&gt;
&lt;pathelement location=&quot;${wl.home}/classes&quot; /&gt;
&lt;pathelement location=&quot;${wl.home}/mssqlserver4/classes&quot; /&gt;
&lt;pathelement location=&quot;c:\winnt\System32&quot; /&gt;
&lt;/path&gt;
&lt;/pathconvert&gt;
</pre>
This generates the exact same path as the previous example. It demonstrates the use of
a nested path element.
<h4>Example 3</h4>
<pre>
&lt;pathconvert targetos=&quot;unix&quot; property=&quot;newpath&quot; refid=&quot;wl.path&quot;&gt;
&lt;map from=&quot;d:&quot; to=&quot;/foo&quot;/&gt;
&lt;map from=&quot;c:&quot; to=&quot;/bar&quot;/&gt;
&lt;/pathconvert&gt;
</pre>
<p>This example specifies two map entries that will convert path elements that start with
<tt>c:</tt> to <TT>/dos</tt> and <tt>d:</tt> to <TT>/</tt>. The resulting path is shown
below.</p>
<pre>
/weblogic/lib/weblogicaux.jar:/weblogic/classes:/weblogic/mssqlserver4/classes:/dos/WINNT/SYSTEM32
</pre>
<h4>Example 4</h4>
<pre>
&lt;pathconvert targetos=&quot;windows&quot; property=&quot;newpath&quot; &gt;
&lt;path id="wl.path"&gt;
&lt;pathelement location=&quot;${wl.home}/lib/weblogicaux.jar&quot; /&gt;
&lt;pathelement location=&quot;${wl.home}/classes&quot; /&gt;
&lt;pathelement location=&quot;${wl.home}/mssqlserver4/classes&quot; /&gt;
&lt;pathelement location=&quot;/dos/winnt/System32&quot; /&gt;
&lt;/path&gt;
&lt;map from=&quot;/dos&quot; to=&quot;c:\&quot;/&gt;
&lt;map from=&quot;/&quot; to=&quot;d:\&quot;/&gt;
&lt;/pathconvert&gt;
</pre>
<p>This example, similar to the one above but targetting windows, specifies two map
entries that will convert path elements that start with
<tt>/dos</tt> to <TT>c:\</tt> and <tt>/</tt> to <TT>d:\</tt>. Note that the order of the
map elements was important here since <tt>/</tt> is a prefix of <tt>/dos</tt>.
The resulting path is shown below.</p>
<pre>
d:\weblogic\lib\weblogicaux.jar;d:\weblogic\classes;d:\weblogic\mssqlserver4\classes;c:\WINNT\SYSTEM32
</pre>
<h4>Example 5</h4>
<pre>
&lt;fileset dir=&quot;${src.dir}&quot; id=&quot;src.files&quot;&gt;
&lt;include name=&quot;**/*.java&quot;/&gt;
&lt;/fileset&gt;
&lt;pathconvert pathsep=&quot;,&quot; property=&quot;javafiles&quot; refid=&quot;src.files&quot;/&gt;
</pre>
<p>This example takes the set of files determined by the fileset (all files ending
in <tt>.java</tt>), joins them together separated by commas, and places the resulting
list into the property <tt>javafiles</tt>. The directory separator is not specified, so
it defaults to the appropriate character for the current platform. Such a list could
then be used in another task, like <tt>javadoc</tt>, that requires a comma separated
list of files.
</p>
<hr>

</body>
</html>


+ 15
- 10
docs/manual/CoreTasks/property.html View File

@@ -36,6 +36,8 @@ instance.</p>
<p>The value part of the properties being set, might contain references to other <p>The value part of the properties being set, might contain references to other
properties. These references are resolved at the time these properties are set. properties. These references are resolved at the time these properties are set.
This also holds for properties loaded from a property file.</p> This also holds for properties loaded from a property file.</p>
<p>A list of predefined properties can be found <a
href="../using.html#built-in-props">here</a>.</p>
<h3>Parameters</h3> <h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0"> <table border="1" cellpadding="2" cellspacing="0">
<tr> <tr>
@@ -46,12 +48,21 @@ This also holds for properties loaded from a property file.</p>
<tr> <tr>
<td valign="top">name</td> <td valign="top">name</td>
<td valign="top">the name of the property to set.</td> <td valign="top">the name of the property to set.</td>
<td valign="top" align="center">Yes</td>
<td valign="top" align="center">No</td>
</tr> </tr>
<tr> <tr>
<td valign="top">value</td> <td valign="top">value</td>
<td valign="top">the value of the property.</td> <td valign="top">the value of the property.</td>
<td valign="middle" align="center" rowspan="6">Yes</td>
<td valign="middle" align="center" rowspan="3">One of these, when using the
name attribute</td>
</tr>
<tr>
<td valign="top">location</td>
<td valign="top">Sets the property to the absolute filename of the
given file. If the value of this attribute is an absolute path, it
is left unchanged (with / and \ characters converted to the
current platforms conventions). Otherwise it is taken as a path
relative to the project's basedir and expanded.</td>
</tr> </tr>
<tr> <tr>
<td valign="top">refid</td> <td valign="top">refid</td>
@@ -62,19 +73,13 @@ This also holds for properties loaded from a property file.</p>
<tr> <tr>
<td valign="top">resource</td> <td valign="top">resource</td>
<td valign="top">the resource name of the property file.</td> <td valign="top">the resource name of the property file.</td>
<td valign="middle" align="center" rowspan="3">One of these, when
<b>not</b> using the name attribute</td>
</tr> </tr>
<tr> <tr>
<td valign="top">file</td> <td valign="top">file</td>
<td valign="top">the filename of the property file .</td> <td valign="top">the filename of the property file .</td>
</tr> </tr>
<tr>
<td valign="top">location</td>
<td valign="top">Sets the property to the absolute filename of the
given file. If the value of this attribute is an absolute path, it
is left unchanged (with / and \ characters converted to the
current platforms conventions). Otherwise it is taken as a path
relative to the project's basedir and expanded.</td>
</tr>
<tr> <tr>
<td valign="top">environment</td> <td valign="top">environment</td>
<td valign="top">the prefix to use when retrieving environment variables. Thus <td valign="top">the prefix to use when retrieving environment variables. Thus


+ 19
- 19
docs/manual/CoreTasks/recorder.html View File

@@ -16,11 +16,11 @@ output to a file.
associated with a file. The filename is used as a unique identifier for associated with a file. The filename is used as a unique identifier for
the recorders. The first call to the recorder task with an unused filename the recorders. The first call to the recorder task with an unused filename
will create a recorder (using the parameters provided) and add it to the will create a recorder (using the parameters provided) and add it to the
listeners of the build. All subsiquent calls to the recorder task using
listeners of the build. All subsequent calls to the recorder task using
this filename will modify that recorders state (recording or not) or other this filename will modify that recorders state (recording or not) or other
properties (like logging level). properties (like logging level).


<p>Some technical issues: the file's print stream is flushed for "finished"
<p>Some technical issues: the file's print stream is flushed for &quot;finished&quot;
events (buildFinished, targetFinished and taskFinished), and is closed on events (buildFinished, targetFinished and taskFinished), and is closed on
a buildFinished event. a buildFinished event.


@@ -41,8 +41,8 @@ a buildFinished event.
<td valign="top">This tells the logger what to do: should it start <td valign="top">This tells the logger what to do: should it start
recording or stop? The first time that the recorder task is called for recording or stop? The first time that the recorder task is called for
this logfile, and if this attribute is not provided, then the default this logfile, and if this attribute is not provided, then the default
for this attribute is "start". If this attribute is not provided on
subsiquest calls, then the state remains as previous.
for this attribute is &quot;start&quot;. If this attribute is not provided on
subsequent calls, then the state remains as previous.
[Values = {start|stop}, Default = no state change]</td> [Values = {start|stop}, Default = no state change]</td>
<td align="center" valign="middle">no</td> <td align="center" valign="middle">no</td>
</tr> </tr>
@@ -50,7 +50,7 @@ a buildFinished event.
<td valign="top">append</td> <td valign="top">append</td>
<td valign="top">Should the recorder append to a file, or create a new <td valign="top">Should the recorder append to a file, or create a new
one? This is only applicable the first time this task is called for one? This is only applicable the first time this task is called for
this file. [Vaules = {yes|no}, Default=yes]</td>
this file. [Values = {yes|no}, Default=yes]</td>
<td align="center" valign="middle">no</td> <td align="center" valign="middle">no</td>
</tr> </tr>
<tr> <tr>
@@ -58,38 +58,38 @@ a buildFinished event.
<td valign="top">At what logging level should this recorder instance <td valign="top">At what logging level should this recorder instance
record to? This is not a once only parameter (like <code>append</code> record to? This is not a once only parameter (like <code>append</code>
is) -- you can increase or decrease the logging level as the build process is) -- you can increase or decrease the logging level as the build process
continues. [Vaules= {error|warn|info|verbose|debug}, Default = no change]
continues. [Values= {error|warn|info|verbose|debug}, Default = no change]
</td> </td>
<td align="center" valign="middle">no</td> <td align="center" valign="middle">no</td>
</tr> </tr>
</table> </table>


<h3>Examples</h3> <h3>Examples</h3>
<p>The following build.xml snippit is an example of how to use the recorder
<p>The following build.xml snippet is an example of how to use the recorder
to record just the <code>&lt;javac&gt;</code> task: to record just the <code>&lt;javac&gt;</code> task:
<pre> <pre>
... ...
&lt;compile &gt; &lt;compile &gt;
&lt;record name="log.txt" action="start" /&gt;
&lt;record name=&quot;log.txt&quot; action=&quot;start&quot; /&gt;
&lt;javac ... &lt;javac ...
&lt;record name="log.txt" action="stop" /&gt;
&lt;record name=&quot;log.txt&quot; action=&quot;stop&quot; /&gt;
&lt;compile/&gt; &lt;compile/&gt;
... ...
</pre> </pre>


<p>The following two calls to <code>&lt;record&gt;</code> set up two <p>The following two calls to <code>&lt;record&gt;</code> set up two
recorders: one to file "records-simple.log" at logging level <code>info</code>
(the default) and one to file "ISO.log" using logging level of
recorders: one to file &quot;records-simple.log&quot; at logging level <code>info</code>
(the default) and one to file &quot;ISO.log&quot; using logging level of
<code>verbose</code>. <code>verbose</code>.
<pre> <pre>
... ...
&lt;record name="records-simple.log" /&gt;
&lt;record name="ISO.log" loglevel="verbose" /&gt;
&lt;record name=&quot;records-simple.log&quot; /&gt;
&lt;record name=&quot;ISO.log&quot; loglevel=&quot;verbose&quot; /&gt;
... ...
</pre> </pre>


<h3>Notes</h3> <h3>Notes</h3>
<p>There is some funtionality that I would like to be able to add in the
<p>There is some functionality that I would like to be able to add in the
future. They include things like the following: future. They include things like the following:
<table border="1" cellpadding="2" cellspacing="0"> <table border="1" cellpadding="2" cellspacing="0">
<tr> <tr>
@@ -113,8 +113,8 @@ future. They include things like the following:
</tr> </tr>
<tr> <tr>
<td valign="top">includetarget</td> <td valign="top">includetarget</td>
<td valign="top" rowspan=2>A comma-separated list of targets to automaticly
record. If this value is "all", then all targets are recorded.
<td valign="top" rowspan=2>A comma-separated list of targets to automatically
record. If this value is &quot;all&quot;, then all targets are recorded.
[Default = all]</td> [Default = all]</td>
<td align="center" valign="middle">no</td> <td align="center" valign="middle">no</td>
</tr> </tr>
@@ -124,10 +124,10 @@ future. They include things like the following:
</tr> </tr>
<tr> <tr>
<td valign="top">includetask</td> <td valign="top">includetask</td>
<td valign="top" rowspan=2>A comma-separated list of task to automaticly
<td valign="top" rowspan=2>A comma-separated list of task to automatically
record or not. This could be difficult as it could conflict with the record or not. This could be difficult as it could conflict with the
<code>includetarget/excludetarget</code>. (e.g.: <code>includetarget/excludetarget</code>. (e.g.:
<code>includetarget="compile" exlcudetask="javac"</code>, what should
<code>includetarget=&quot;compile&quot; exlcudetask=&quot;javac&quot;</code>, what should
happen?)</td> happen?)</td>
<td align="center" valign="middle">no</td> <td align="center" valign="middle">no</td>
</tr> </tr>
@@ -137,7 +137,7 @@ future. They include things like the following:
</tr> </tr>
<tr> <tr>
<td valign="top">action</td> <td valign="top">action</td>
<td valign="top">add greater flexability to the action attribute. Things
<td valign="top">add greater flexibility to the action attribute. Things
like <code>close</code> to close the print stream.</td> like <code>close</code> to close the print stream.</td>
<td align="center" valign="top">no</td> <td align="center" valign="top">no</td>
</tr> </tr>


+ 2
- 2
docs/manual/CoreTasks/sleep.html View File

@@ -57,8 +57,8 @@
Sleep for about 10 mS. Sleep for about 10 mS.
<pre> &lt;sleep seconds=&quot;2&quot;/&gt;</pre> <pre> &lt;sleep seconds=&quot;2&quot;/&gt;</pre>
Sleep for about 2 seconds. Sleep for about 2 seconds.
<pre> &lt;sleep minutes=&quot;-59&quot; seconds=&quot;-58&quot;/&gt;</pre>
<p>Sleep for -one hour less 59:58, or two seconds again </p>
<pre> &lt;sleep hours=&quot;1&quot; minutes=&quot;-59&quot; seconds=&quot;-58&quot;/&gt;</pre>
<p>Sleep for one hour less 59:58, or two seconds again </p>
<pre> &lt;sleep /&gt;</pre> <pre> &lt;sleep /&gt;</pre>
Sleep for no time at all. This may yield the CPU time to another thread or process. Sleep for no time at all. This may yield the CPU time to another thread or process.
<hr> <hr>


+ 26
- 9
docs/manual/CoreTasks/sql.html View File

@@ -7,13 +7,21 @@


<h2><a name="sql">Sql</a></h2> <h2><a name="sql">Sql</a></h2>
<h3>Description</h3> <h3>Description</h3>
<p>Executes a series of SQL statements via JDBC to a database. Statements can either be read in from a text file using the <i>src</i> attribute or from between the enclosing SQL tags.</p>
<p>Executes a series of SQL statements via JDBC to a database. Statements can
either be read in from a text file using the <i>src</i> attribute or from
between the enclosing SQL tags.</p>


<p>Multiple statements can be provided, separated by semi-colons (or the defined <i>delimiter</i>). Individual lines within the statements can be commented using either --, // or REM at the start of the line.</p>
<p>Multiple statements can be provided, separated by semicolons (or the
defined <i>delimiter</i>). Individual lines within the statements can be
commented using either --, // or REM at the start of the line.</p>


<p>The <i>autocommit</i> attribute specifies whether auto-commit should be turned on or off whilst executing the statements. If auto-commit is turned on each statement will be executed and committed. If it is turned off the statements will all be executed as one transaction.</p>
<p>The <i>autocommit</i> attribute specifies whether auto-commit should be
turned on or off whilst executing the statements. If auto-commit is turned
on each statement will be executed and committed. If it is turned off the
statements will all be executed as one transaction.</p>


<p>The <i>onerror</i> attribute specifies how to proceed when an error occurs during the execution of one of the statements.
<p>The <i>onerror</i> attribute specifies how to proceed when an error occurs
during the execution of one of the statements.
The possible values are: <b>continue</b> execution, only show the error; The possible values are: <b>continue</b> execution, only show the error;
<b>stop</b> execution and commit transaction; <b>stop</b> execution and commit transaction;
and <b>abort</b> execution and transaction and fail task.</p> and <b>abort</b> execution and transaction and fail task.</p>
@@ -53,7 +61,7 @@ and <b>abort</b> execution and transaction and fail task.</p>
<tr> <tr>
<td width="12%" valign="top">delimiter</td> <td width="12%" valign="top">delimiter</td>
<td width="78%" valign="top">String that separates SQL statements</td> <td width="78%" valign="top">String that separates SQL statements</td>
<td width="10%" valign="top">No, default ";"</td>
<td width="10%" valign="top">No, default &quot;;&quot;</td>
</tr> </tr>
<tr> <tr>
<td width="12%" valign="top">autocommit</td> <td width="12%" valign="top">autocommit</td>
@@ -134,7 +142,9 @@ The
/&gt; /&gt;
</pre></blockquote> </pre></blockquote>


<p>Connects to the database given in <i>url</i> as the sa user using the org.database.jdbcDriver and executes the SQL statements contained within the file data.sql</p>
<p>Connects to the database given in <i>url</i> as the sa user using the
org.database.jdbcDriver and executes the SQL statements contained within
the file data.sql</p>


<blockquote><pre>&lt;sql <blockquote><pre>&lt;sql
driver=&quot;org.database.jdbcDriver&quot; driver=&quot;org.database.jdbcDriver&quot;
@@ -151,7 +161,8 @@ truncate table some_other_table;
</pre></blockquote> </pre></blockquote>


<p>Connects to the database given in <i>url</i> as the sa <p>Connects to the database given in <i>url</i> as the sa
user using the org.database.jdbcDriver and executes the two SQL statements inserting data into some_table and truncating some_other_table </p>
user using the org.database.jdbcDriver and executes the two SQL statements
inserting data into some_table and truncating some_other_table </p>


<p>Note that you may want to enclose your statements in <p>Note that you may want to enclose your statements in
<code>&lt;![CDATA[</code> ... <code>]]&gt;</code> sections so you don't <code>&lt;![CDATA[</code> ... <code>]]&gt;</code> sections so you don't
@@ -170,7 +181,10 @@ update some_table set column1 = column1 + 1 where column2 &lt; 42;
]]&gt;&lt;/sql&gt; ]]&gt;&lt;/sql&gt;
</pre></blockquote> </pre></blockquote>


<p>The following connects to the database given in url as the sa user using the org.database.jdbcDriver and executes the SQL statements contained within the files data1.sql, data2.sql and data3.sql and then executes the truncate operation on <i>some_other_table</i>.</p>
<p>The following connects to the database given in url as the sa user using
the org.database.jdbcDriver and executes the SQL statements contained within
the files data1.sql, data2.sql and data3.sql and then executes the truncate
operation on <i>some_other_table</i>.</p>


<blockquote><pre>&lt;sql <blockquote><pre>&lt;sql
driver=&quot;org.database.jdbcDriver&quot; driver=&quot;org.database.jdbcDriver&quot;
@@ -186,7 +200,10 @@ update some_table set column1 = column1 + 1 where column2 &lt; 42;
&lt;/sql&gt; &lt;/sql&gt;
</pre></blockquote> </pre></blockquote>


<p>The following connects to the database given in url as the sa user using the org.database.jdbcDriver and executes the SQL statements contained within the file data.sql, with output piped to outputfile.txt, searching /some/jdbc.jar as well as the system classpath for the driver class.</p>
<p>The following connects to the database given in url as the sa user using the
org.database.jdbcDriver and executes the SQL statements contained within the
file data.sql, with output piped to outputfile.txt, searching /some/jdbc.jar
as well as the system classpath for the driver class.</p>


<blockquote><pre>&lt;sql <blockquote><pre>&lt;sql
driver=&quot;org.database.jdbcDriver&quot; driver=&quot;org.database.jdbcDriver&quot;


+ 6
- 1
docs/manual/CoreTasks/style.html View File

@@ -12,6 +12,8 @@
<p>Process a set of documents via XSLT.</p> <p>Process a set of documents via XSLT.</p>
<p>This is useful for building views of XML based documentation, <p>This is useful for building views of XML based documentation,
or in generating code.</p> or in generating code.</p>
<p><b>Note:</b> This task depends on external libraries not included in the Ant distribution.
See <a href="../install.html#librarydependencies">Library Dependencies</a> for more information.</p>
<p>It is possible to refine the set of files that are being copied. This can be <p>It is possible to refine the set of files that are being copied. This can be
done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i> done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
@@ -87,7 +89,10 @@ inclusion/exclusion of files works, and how to write patterns.</p>
XSL:P processor, &quot;xalan&quot; for the Apache XML Xalan (version 1) XSL:P processor, &quot;xalan&quot; for the Apache XML Xalan (version 1)
processor, or the name of an arbitrary XSLTLiaison class. Defaults to trax, processor, or the name of an arbitrary XSLTLiaison class. Defaults to trax,
followed by xslp then xalan (in that order). The first one found in your followed by xslp then xalan (in that order). The first one found in your
class path is the one that is used.</td>
class path is the one that is used.
<em><strong>DEPRECATED</strong> - XSL:P is deprecated and will be removed
in the next version. Use trax or xalan instead.</em>.
</td>
<td align="center" valign="top">No</td> <td align="center" valign="top">No</td>
</tr> </tr>
<tr> <tr>


+ 2
- 2
docs/manual/CoreTasks/tstamp.html View File

@@ -36,7 +36,7 @@ probably in an initialization target.
The Tstamp task supports a <code>&lt;format&gt;</code> nested element that The Tstamp task supports a <code>&lt;format&gt;</code> nested element that
allows a property to be set to the current date and time in a given format. allows a property to be set to the current date and time in a given format.
The date/time patterns are as defined in the Java The date/time patterns are as defined in the Java
<a href=http://java.sun.com/products/jdk/1.2/docs/api/java/text/SimpleDateFormat.html>SimpleDateFormat</a> class.
<a href="http://java.sun.com/products/jdk/1.2/docs/api/java/text/SimpleDateFormat.html">SimpleDateFormat</a> class.
The format element also allows offsets to be applied to the time to generate different time values. The format element also allows offsets to be applied to the time to generate different time values.
<br><br> <br><br>
<table width="60%" border="1" cellpadding="2" cellspacing="0"> <table width="60%" border="1" cellpadding="2" cellspacing="0">
@@ -82,7 +82,7 @@ The format element also allows offsets to be applied to the time to generate dif
<tr> <tr>
<td valign="top">locale</td> <td valign="top">locale</td>
<td valign="top">The locale used to create date/time string. The general <td valign="top">The locale used to create date/time string. The general
form is "language, country, variant" but either variant or variant and
form is &quot;language, country, variant&quot; but either variant or variant and
country may be omitted. For more information please refer to documentation country may be omitted. For more information please refer to documentation
for the for the
<a href="http://java.sun.com/j2se/1.3/docs/api/java/util/Locale.html">Locale</a> <a href="http://java.sun.com/j2se/1.3/docs/api/java/util/Locale.html">Locale</a>


+ 6
- 0
docs/manual/CoreTasks/war.html View File

@@ -93,6 +93,12 @@ attributes of zipfilesets in a Zip or Jar task.)</p>
<td valign="top">the manifest file to use.</td> <td valign="top">the manifest file to use.</td>
<td valign="top" align="center">No</td> <td valign="top" align="center">No</td>
</tr> </tr>
<tr>
<td valign="top">update</td>
<td valign="top">indicates whether to update or overwrite
the destination file if it already exists.</td>
<td valign="top" align="center">No</td>
</tr>
<tr> <tr>
<td valign="top">whenempty</td> <td valign="top">whenempty</td>
<td valign="top">Behavior to use if no files match.</td> <td valign="top">Behavior to use if no files match.</td>


+ 20
- 3
docs/manual/CoreTasks/zip.html View File

@@ -33,6 +33,11 @@ if <code>basedir</code> is set. You may use any mixture of the implicit file set
and optional subelements like <code>&lt;include&gt;</code>); explicit nested and optional subelements like <code>&lt;include&gt;</code>); explicit nested
<code>&lt;fileset&gt;</code> elements so long as at least one fileset total is specified. The ZIP file will <code>&lt;fileset&gt;</code> elements so long as at least one fileset total is specified. The ZIP file will
only reflect the relative paths of files <i>within</i> each fileset. The Zip task and its derivatives know a special form of a fileset named zipfileset that has additional attributes (described below). </p> only reflect the relative paths of files <i>within</i> each fileset. The Zip task and its derivatives know a special form of a fileset named zipfileset that has additional attributes (described below). </p>
<p>The <code>update</code> parameter controls what happens if the
ZIP file already exists. When set to <code>yes</code>, the ZIP file is
updated with the files specified. (New files are added; old files are
replaced with the new versions.) When set to <code>no</code> (the
default) the ZIP file is overwritten.
<p>The <code>whenempty</code> parameter controls what happens when no files match. <p>The <code>whenempty</code> parameter controls what happens when no files match.
If <code>skip</code> (the default), the ZIP is not created and a warning is issued. If <code>skip</code> (the default), the ZIP is not created and a warning is issued.
If <code>fail</code>, the ZIP is not created and the build is halted with an error. If <code>fail</code>, the ZIP is not created and the build is halted with an error.
@@ -42,7 +47,7 @@ which should be recognized as such by compliant ZIP manipulation tools.</p>
for filenames - this is consistent with the command line ZIP tools, for filenames - this is consistent with the command line ZIP tools,
but causes problems if you try to open them from within Java and your but causes problems if you try to open them from within Java and your
filenames contain non US-ASCII characters. Use the encoding attribute filenames contain non US-ASCII characters. Use the encoding attribute
and set it to UTF8 to create zip files that can savely be read by
and set it to UTF8 to create zip files that can safely be read by
Java.</p> Java.</p>
<h3>Parameters</h3> <h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0"> <table border="1" cellpadding="2" cellspacing="0">
@@ -109,6 +114,12 @@ Java.</p>
(&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td> (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted.</td>
<td valign="top" align="center">No</td> <td valign="top" align="center">No</td>
</tr> </tr>
<tr>
<td valign="top">update</td>
<td valign="top">indicates whether to update or overwrite
the destination file if it already exists.</td>
<td valign="top" align="center">No</td>
</tr>
<tr> <tr>
<td valign="top">whenempty</td> <td valign="top">whenempty</td>
<td valign="top">Behavior when no files match.</td> <td valign="top">Behavior when no files match.</td>
@@ -136,6 +147,14 @@ for inclusion in the archive.</p>
/&gt;</pre> /&gt;</pre>
<p>zips all files in the <code>htdocs/manual</code> directory into a file called <code>manual.zip</code> <p>zips all files in the <code>htdocs/manual</code> directory into a file called <code>manual.zip</code>
in the <code>${dist}</code> directory.</p> in the <code>${dist}</code> directory.</p>
<pre> &lt;zip zipfile=&quot;${dist}/manual.zip&quot;
basedir=&quot;htdocs/manual&quot;
update=&quot;true&quot;
/&gt;</pre>
<p>zips all files in the <code>htdocs/manual</code> directory into a file called <code>manual.zip</code>
in the <code>${dist}</code> directory. If <code>manual.zip</code>
doesn't exist, it is created; otherwise it is updated with the
new/changed files.</p>
<pre> &lt;zip zipfile=&quot;${dist}/manual.zip&quot; <pre> &lt;zip zipfile=&quot;${dist}/manual.zip&quot;
basedir=&quot;htdocs/manual&quot; basedir=&quot;htdocs/manual&quot;
excludes=&quot;mydocs/**, **/todo.html&quot; excludes=&quot;mydocs/**, **/todo.html&quot;
@@ -169,8 +188,6 @@ under <code>docs/examples</code>. The archive might end up containing the files
docs/ChangeLog.txt docs/ChangeLog.txt
docs/examples/index.html docs/examples/index.html
</code></pre> </code></pre>


<hr> <hr>
<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights <p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
Reserved.</p> Reserved.</p>


+ 0
- 1
docs/manual/CoreTypes/filelist.html View File

@@ -34,7 +34,6 @@ same level as <code>target</code> - i.e., as children of
<td valign="top">Comma-separated list of file names.</td> <td valign="top">Comma-separated list of file names.</td>
<td valign="top" align="center">Yes</td> <td valign="top" align="center">Yes</td>
</tr> </tr>
</tr>
</table> </table>


<h4>Examples</h4> <h4>Examples</h4>


+ 118
- 0
docs/manual/CoreTypes/filterset.html View File

@@ -0,0 +1,118 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>
<HEAD>
<TITLE>Ant User Manual</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=windows-1252">
<META http-equiv="Content-Language" content="en-us">
<META content="MSHTML 5.50.4522.1800" name=GENERATOR>
</HEAD>

<BODY>
<H2><A name="fileset">Filterset</A></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
feature or at the same level as <CODE>target</CODE> - i.e., as children of
<CODE>project</CODE>.</P>In addition, Filtersets can have begintoken and/or
endtoken attributes to define what to match. <BR>Filtersets are used for doing
replacements in tasks like copy etc.<BR>

<H2>Filterset</H2>

<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><B>Default</B></TD>
<TD vAlign=top align="center"><B>Required</B></TD>
</TR>
<TR>
<TD vAlign=top>starttoken</TD>
<TD vAlign=top>The string marking the beginning of a token. eg
<STRONG>@</STRONG>Date@</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
@Date<STRONG>@</STRONG></TD>
<TD vAlign=top>@</TD>
<TD vAlign=top align="center">No</TD>
</TR>
</TABLE>

<H2>Filter</H2>
<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>token</TD>
<TD vAlign=top>The token to replace eg @<STRONG>Date</STRONG>@</TD>
<TD vAlign=top align="center">Yes</TD>
</TR>
<TR>
<TD vAlign=top>value</TD>
<TD vAlign=top>The value to replace it with eg Thursday, April 26, 2001</TD>
<TD vAlign=top align="center">Yes</TD>
</TR>
</TABLE>

<H2>Filtersfile</H2>
<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>file</TD>
<TD vAlign=top>The file to load tokens from should be a properties file of
name value pairs.</TD>
<TD vAlign=top align="center">Yes</TD>
</TR>
</TABLE>

<H4>Examples</H4>

<p>You are copying the version.txt file to the dist directory from the build directory
but wish to replace the token @DATE@ with todays date.</p>
<BLOCKQUOTE><PRE>
&lt;copy file=&quot;${build.home}/version.txt&quot; toFile=&quot;${dist.home}/version.txt&quot;&lt;
&lt;filterset&gt;
&lt;filter token=&quot;DATE&quot; value=&quot;${DATE}&quot;/&gt;
&lt;/filterset&gt;
&lt;/copy&gt;
</PRE></BLOCKQUOTE>

<p>You are copying the version.txt file to the dist directory from the build directory
but wish to replace the token %DATE* with todays date.</p>
<BLOCKQUOTE><PRE>
&lt;copy file=&quot;${build.home}/version.txt&quot; toFile=&quot;${dist.home}/version.txt&quot;&gt;
&lt;filterset begintoken=&quot;%&quot; endtoken=&quot;*&quot;&gt;
&lt;filter token=&quot;DATE&quot; value=&quot;${DATE}&quot;/&gt;
&lt;/filterset&gt;
&lt;/copy&gt;
</PRE></BLOCKQUOTE>

<p>Copy all the docs but change all dates and appropriate notices as stored in a file.</p>
<BLOCKQUOTE><PRE>
&lt;copy toDir=&quot;${dist.home}/docs&quot; &gt;
&lt;fileset dir=&quot;${build.home}/docs&quot;&gt;
&lt;include name=&quot;**/*.html&quot;&gt;
&lt;/fileset&gt;
&lt;filterset begintoken=&quot;%&quot; endtoken=&quot;*&quot;&gt;
&lt;filter token=&quot;DATE&quot; value=&quot;${DATE}&quot;/&gt;
&lt;filtersfile file=&quot;${user.home}/dist.properties&quot;/&gt;
&lt;/filterset&gt;
&lt;/copy&gt;
</PRE></BLOCKQUOTE>

<HR>

<P align=center>Copyright &copy; 2000,2001 Apache Software Foundation. All rights
Reserved.</P></BODY></HTML>

+ 4
- 0
docs/manual/CoreTypes/mapper.html View File

@@ -63,6 +63,10 @@ with the following attributes:</p>
<td align="center" valign="top">Depends on implementation.</td> <td align="center" valign="top">Depends on implementation.</td>
</tr> </tr>
</table> </table>
<p>Note that Ant will not automatically convert / or \ characters in
the <code>to</code> and <code>from</code> attributes to the correct
directory separator of your current platform. If you need to specify
this separator, use <code>${file.separator}</code> instead.</p>
<p>The classpath can be specified via a nested <p>The classpath can be specified via a nested
<code>&lt;classpath&gt;</code>, as well - that is, <code>&lt;classpath&gt;</code>, as well - that is,
a <a href="../using.html#path">path</a>-like structure.</p> a <a href="../using.html#path">path</a>-like structure.</p>


+ 1
- 1
docs/manual/CoreTypes/patternset.html View File

@@ -59,7 +59,7 @@ exclude.</p>
</tr> </tr>
<tr> <tr>
<td valign="top">name</td> <td valign="top">name</td>
<td valign="top">the <a href=="../dirtasks.html#patterns">pattern</a>
<td valign="top">the <a href="../dirtasks.html#patterns">pattern</a>
to in/exclude.</td> to in/exclude.</td>
<td align="center" valign="top">Yes</td> <td align="center" valign="top">Yes</td>
</tr> </tr>


+ 12
- 23
docs/manual/Integration/Antidote.html View File

@@ -23,7 +23,7 @@
quick generation, modification, and use of Ant build files, quick generation, modification, and use of Ant build files,
helping the user define a build process and track down build helping the user define a build process and track down build
problems. It is not meant to be an IDE, but an enabler for the problems. It is not meant to be an IDE, but an enabler for the
powerful features available in Ant, particularlyl for novice
powerful features available in Ant, particularly for novice
users, or users who want a rapid way of controlling their build users, or users who want a rapid way of controlling their build
process.</P> process.</P>


@@ -59,36 +59,25 @@


<H2>Getting Involved</H2> <H2>Getting Involved</H2>


<P>The source code for Antidote is included with the <A
HREF="http://jakarta.apache.org/site/cvsindex.html">CVS</A>
version of <A
HREF="http://jakarta.apache.org/cvsweb/index.cgi/jakarta-ant">Ant</A>,
starting in the directory <A
HREF="http://jakarta.apache.org/cvsweb/index.cgi/jakarta-ant/src/antidote">
jakarta-ant/src/antidote</A>. All the existing documentation can
<P>The source code for Antidote is located in a separate Module
(<a href="http://cvs.apache.org/viewcvs/jakarta-ant-antidote/">jakarta-ant-antidote</a>) in CVS.
All the existing documentation can
be found there where new contributors should read: be found there where new contributors should read:
<UL> <UL>
<LI><A
HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/design-overview.html">Design
Overview</A></LI>
<LI><A HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/gui-requirements.html">Feature List</A></LI>
<LI><A
HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/gui-ideas.txt">Idea Refinement</A></LI>
<LI><A
HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/new-module-howto.html">New Module HOWTO</A></LI>
<LI><A
HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/uml/index.html">Static
Class Diagrams</A></LI>
<LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/jakarta-ant-antidote/docs/developer/design/design-overview.html">Design Overview</A></LI>
<LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/jakarta-ant-antidote/docs/developer/design/gui-requirements.html">Feature List</A></LI>
<LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/jakarta-ant-antidote/docs/developer/design/gui-ideas.txt">Idea Refinement</A></LI>
<LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/jakarta-ant-antidote/docs/developer/design/new-module-howto.html">New Module HOWTO</A></LI>
<LI><A HREF="http://cvs.apache.org/viewcvs/~checkout~/jakarta-ant-antidote/docs/developer/design/uml/index.html">Static Class Diagrams</A></LI>
</UL> </UL>



<P>Online discussions about Antidote occur on the <A <P>Online discussions about Antidote occur on the <A
HREF="http://jakarta.apache.org/site/mail.html">jakarta-ant HREF="http://jakarta.apache.org/site/mail.html">jakarta-ant
mailing list</A>. The application infrastructure is fairly mailing list</A>. The application infrastructure is fairly
complete, but there are almost unlimited oppotunities for feature
complete, but there are almost unlimited opportunities for feature
contributions. contributions.


<P>Asipring contributors new to the Jakarta Project should
<P>Aspiring contributors new to the Jakarta Project should
(carefully) read the following for details on the contribution (carefully) read the following for details on the contribution
process: process:
<UL> <UL>
@@ -104,7 +93,7 @@


<HR> <HR>
<P ALIGN="center">Copyright &copy; 2000 Apache Software Foundation. All
<P ALIGN="center">Copyright &copy; 2000,2001 Apache Software Foundation. All
rights Reserved.</P> rights Reserved.</P>


</BODY> </BODY>


+ 25
- 23
docs/manual/Integration/VAJAntTool.html View File

@@ -19,18 +19,20 @@ Version 1.1 - 2001/02/14<br>
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<ul> <ul>
<li><a href="#introduction">Introduction</a></li> <li><a href="#introduction">Introduction</a></li>
<li><a href="#tasks">The Tasks</a><a href="#introduction"></a></li>
<ul>
<li><a href="#vajload">VAJLoad</a></li>
<li><a href="#vajexport">VAJExport</a></li>
<li><a href="#vajimport">VAJImport</a></li>
</ul>
<li><a href="#tasks">The Tasks</a><a href="#introduction"></a>
<ul>
<li><a href="#vajload">VAJLoad</a></li>
<li><a href="#vajexport">VAJExport</a></li>
<li><a href="#vajimport">VAJImport</a></li>
</ul>
</li>
<li><a href="#sample_buildfile">A sample build file</a><br></li> <li><a href="#sample_buildfile">A sample build file</a><br></li>
<li><a href="#plugin">The Plugin</a></li>
<ul>
<li><a href="#installation">Installation</a></li>
<li><a href="#usage">Usage</a></li>
</ul>
<li><a href="#plugin">The Plugin</a>
<ul>
<li><a href="#installation">Installation</a></li>
<li><a href="#usage">Usage</a></li>
</ul>
</li>
<li><a href="#faq">Frequently Asked Questions</a></li> <li><a href="#faq">Frequently Asked Questions</a></li>
<li><a href="#va_versions">Visual Age Versions</a></li> <li><a href="#va_versions">Visual Age Versions</a></li>
<li><a href="#history">History</a><a href="#history"></a></li> <li><a href="#history">History</a><a href="#history"></a></li>
@@ -114,8 +116,8 @@ These tasks are described in detail below.
<h3>Example</h3> <h3>Example</h3>
<pre> <pre>
&lt;vajload&gt; &lt;vajload&gt;
&lt;vajproject name="My Testcases" version="1.7beta" /&gt;
&lt;vajproject name="JUnit" version="3.2" /&gt;
&lt;vajproject name=&quot;My Testcases&quot; version=&quot;1.7beta&quot; /&gt;
&lt;vajproject name=&quot;JUnit&quot; version=&quot;3.2&quot; /&gt;
&lt;/vajload&gt; &lt;/vajload&gt;
</pre> </pre>


@@ -125,7 +127,7 @@ These tasks are described in detail below.
<h3>Description:</h3> <h3>Description:</h3>
<p>Exports Java source files, class files and/or resources from the workspace <p>Exports Java source files, class files and/or resources from the workspace
to the file system. Exports can be specified by giving the VAJ project to the file system. Exports can be specified by giving the VAJ project
name and package name(s). This works very similar to <a href="index.html#fileset">
name and package name(s). This works very similar to <a href="../CoreTypes/fileset.html">
FileSets</a>. </p> FileSets</a>. </p>


<h3>Parameters</h3> <h3>Parameters</h3>
@@ -143,28 +145,28 @@ FileSets</a>. </p>
</tr> </tr>
<tr> <tr>
<td valign="Top">exportSources</td> <td valign="Top">exportSources</td>
<td valign="Top">export source files (default: "yes")</td>
<td valign="Top">export source files (default: &quot;yes&quot;)</td>
<td valign="Top" align="Center">no</td> <td valign="Top" align="Center">no</td>
</tr> </tr>
<tr valign="Top"> <tr valign="Top">
<td valign="Top">exportResources</td> <td valign="Top">exportResources</td>
<td valign="Top">export resource files (default: "yes")</td>
<td valign="Top">export resource files (default: &quot;yes&quot;)</td>
<td valign="Top" align="Center">no</td> <td valign="Top" align="Center">no</td>
</tr> </tr>
<tr valign="Top"> <tr valign="Top">
<td valign="Top">exportClasses</td> <td valign="Top">exportClasses</td>
<td valign="Top">export class files (default: "no")</td>
<td valign="Top">export class files (default: &quot;no&quot;)</td>
<td valign="Top" align="Center">no</td> <td valign="Top" align="Center">no</td>
</tr> </tr>
<tr valign="Top"> <tr valign="Top">
<td valign="Top">exportDebugInfo</td> <td valign="Top">exportDebugInfo</td>
<td valign="Top">include debug info in exported <td valign="Top">include debug info in exported
class files (default: "no")</td>
class files (default: &quot;no&quot;)</td>
<td valign="Top" align="Center">no</td> <td valign="Top" align="Center">no</td>
</tr> </tr>
<tr valign="Top"> <tr valign="Top">
<td valign="Top">defaultexcludes </td> <td valign="Top">defaultexcludes </td>
<td valign="Top">use default excludes when exporting (default: "yes")
<td valign="Top">use default excludes when exporting (default: &quot;yes&quot;)
<td valign="Top" align="Center">no</td> <td valign="Top" align="Center">no</td>
</tr> </tr>
</tbody> </tbody>
@@ -212,9 +214,9 @@ specifies the packages to exclude from the export<br>


<h3>Example</h3> <h3>Example</h3>
<pre> <pre>
&lt;vajexport destdir="${src.dir}" exportResources="no"&gt;
&lt;include name="MyProject/**"/&gt;
&lt;exclude name="MyProject/test/**"/&gt;
&lt;vajexport destdir=&quot;${src.dir}&quot; exportResources=&quot;no&quot;&gt;
&lt;include name=&quot;MyProject/**&quot;/&gt;
&lt;exclude name=&quot;MyProject/test/**&quot;/&gt;
&lt;/vajexport&gt; &lt;/vajexport&gt;
</pre> </pre>
This example exports all packages in the VAJ project 'MyProject', except This example exports all packages in the VAJ project 'MyProject', except
@@ -268,7 +270,7 @@ system into VAJ. These imports can be specified with a fileset. </p>
<h3>Parameters specified as nested elements</h3> <h3>Parameters specified as nested elements</h3>


<h4>fileset</h4> <h4>fileset</h4>
A <a href="index.html#fileset">FileSet</a> specifies the files to import.
A <a href="../CoreTypes/fileset.html">FileSet</a> specifies the files to import.


<h3>Example</h3> <h3>Example</h3>
<pre> <pre>


+ 5
- 5
docs/manual/OptionalTasks/BorlandEJBTasks.html View File

@@ -9,10 +9,10 @@


<h2><a name="log">BorlandDeploy</a>Tool</h2> <h2><a name="log">BorlandDeploy</a>Tool</h2>
<h3>Description</h3> <h3>Description</h3>
<p>The BorlandDeployTool is a vendor specifc nested element for the Ejbjar optionaltask.
<p>The BorlandDeployTool is a vendor specific nested element for the Ejbjar optional task.
<p>BorlandDeploymentTool is dedicated to the Borland Application Server 4.5. It <p>BorlandDeploymentTool is dedicated to the Borland Application Server 4.5. It
generates and compiles the stubs and skeletons for all ejb described into the generates and compiles the stubs and skeletons for all ejb described into the
Deployement Descriptor, builds the jar file including the support files and
Deployment Descriptor, builds the jar file including the support files and
verify whether the produced jar is valid or not. verify whether the produced jar is valid or not.
<h3>Borland element</h3> <h3>Borland element</h3>
<table border="1" cellpadding="2" cellspacing="0"> <table border="1" cellpadding="2" cellspacing="0">
@@ -55,7 +55,7 @@
<td valign="top" width="915"><b>Deprecated</b>. Defines the location of the <td valign="top" width="915"><b>Deprecated</b>. Defines the location of the
weblogic-ejb-jar DTD which covers the Borland specific deployment descriptors. weblogic-ejb-jar DTD which covers the Borland specific deployment descriptors.
This should not be necessary if you have borland in your classpath. If you This should not be necessary if you have borland in your classpath. If you
do not, you should use a nested <dtd> element, described above</td>
do not, you should use a nested &lt;dtd&gt; element, described above</td>
<td align="center" valign="middle" width="62">no</td> <td align="center" valign="middle" width="62">no</td>
</tr> </tr>
<tr> <tr>
@@ -63,7 +63,7 @@
<td valign="top" width="915"><b>Deprecated</b>. Defines the location of the <td valign="top" width="915"><b>Deprecated</b>. Defines the location of the
ejb-jar DTD in the weblogic class hierarchy. This should not be necessary ejb-jar DTD in the weblogic class hierarchy. This should not be necessary
if you have weblogic in your classpath. If you do not, you should use a if you have weblogic in your classpath. If you do not, you should use a
nested <dtd> element, described above. </td>
nested &lt;dtd&gt; element, described above. </td>
<td align="center" valign="middle" width="62">no</td> <td align="center" valign="middle" width="62">no</td>
</tr> </tr>
<tr> <tr>
@@ -75,7 +75,7 @@
</table> </table>


<h3>Examples</h3> <h3>Examples</h3>
<p>The following build.xml snippit is an example of how to use Borland element
<p>The following build.xml snippet is an example of how to use Borland element
into the ejbjar task into the ejbjar task
<pre> &lt;ejbjar srcdir=&quot;${build.classes}&quot; basejarname=&quot;vsmp&quot; descriptordir=&quot;${rsc.dir}/hrmanager&quot;&gt; <pre> &lt;ejbjar srcdir=&quot;${build.classes}&quot; basejarname=&quot;vsmp&quot; descriptordir=&quot;${rsc.dir}/hrmanager&quot;&gt;
&lt;borland destdir=&quot;lib&quot; verify=&quot;on&quot; generateclient=&quot;on&quot;&gt; &lt;borland destdir=&quot;lib&quot; verify=&quot;on&quot; generateclient=&quot;on&quot;&gt;


+ 1
- 1
docs/manual/OptionalTasks/BorlandGenerateClient.html View File

@@ -46,7 +46,7 @@
</table> </table>


<h3>Examples</h3> <h3>Examples</h3>
<p>The following build.xml snippit is an example of how to use Borland element
<p>The following build.xml snippet is an example of how to use Borland element
into the ejbjar task using the java mode. into the ejbjar task using the java mode.
<pre> <pre>
&lt;blgenclient ejbjar=&quot;lib/secutest-ejb.jar&quot; clientjar=&quot;lib/client.jar&quot; debug=&quot;true&quot; mode=&quot;java&quot;&gt; &lt;blgenclient ejbjar=&quot;lib/secutest-ejb.jar&quot; clientjar=&quot;lib/client.jar&quot; debug=&quot;true&quot; mode=&quot;java&quot;&gt;


+ 41
- 41
docs/manual/OptionalTasks/ccm.html View File

@@ -16,12 +16,12 @@
<li><a href="#ccmcreatetask">CCMCreateTask</a></li> <li><a href="#ccmcreatetask">CCMCreateTask</a></li>
</ul> </ul>


<p>These ant tasks are wrapper around Continnus Source Manager. It have been tested
under version 5.1 on Windows 2000.</p>
<p>These ant tasks are wrappers around Continuus Source Manager. They have been tested
with version 5.1 on Windows 2000, but should work on other platforms with ccm installed.</p>
<hr> <hr>
<h2><a name="cccheckin">CCMCheckin</a></h2> <h2><a name="cccheckin">CCMCheckin</a></h2>
<h3>Description</h3> <h3>Description</h3>
Task to perform a Checkin command to Continnus
Task to checkin a file
<h3>Parameters</h3> <h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0" width="598"> <table border="1" cellpadding="2" cellspacing="0" width="598">
<tr> <tr>
@@ -36,29 +36,29 @@ Task to perform a Checkin command to Continnus
</tr> </tr>
<tr> <tr>
<td>comment</td> <td>comment</td>
<td>Specify a comment.</td>
<td>Specify a comment. Default is &quot;Checkin&quot; plus the date</td>
<td>No</td> <td>No</td>
</tr> </tr>
<tr> <tr>
<td>task</td> <td>task</td>
<td>Specify the task number used to checkin the file (may use 'default')</td>
<td>Specify the task number used to check in the file (may use 'default')</td>
<td>No</td> <td>No</td>
</tr> </tr>
<tr> <tr>
<td>ccmcommand</td> <td>ccmcommand</td>
<td>path to the ccm excutable file. default serach into the PATH</td>
<td>path to the ccm executable file, required if it is not on the PATH</td>
<td>No</td> <td>No</td>
</tr> </tr>
</table>
</table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<pre>&lt;ccmcheckin file=&quot;c:/wa/com/foo/MyFile.java&quot; <pre>&lt;ccmcheckin file=&quot;c:/wa/com/foo/MyFile.java&quot;
comment=&quot;mycomment&quot; /&gt; comment=&quot;mycomment&quot; /&gt;
</pre> </pre>
</blockquote> </blockquote>
<p>Does a Continnuus <i>checkin</i> on the file <i>c:/wa/com/foo/MyFile.java</i>.
<p>Checks in the file <i>c:/wa/com/foo/MyFile.java</i>.
Comment attribute <i>mycomment</i> is added as a task comment. The task Comment attribute <i>mycomment</i> is added as a task comment. The task
used is the one set as the fault.</p>
used is the one set as the default.</p>
<hr> <hr>
<h2><a name="cccheckout">CCMCheckout</a></h2> <h2><a name="cccheckout">CCMCheckout</a></h2>
<h3>Description</h3> <h3>Description</h3>
@@ -66,45 +66,45 @@ Task to perform a Checkout command to Continuus
<h3>Parameters</h3> <h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0" width="614"> <table border="1" cellpadding="2" cellspacing="0" width="614">
<tr> <tr>
<th width="84">Attribute</th>
<th width="396">Values</th>
<th width="24">Required</th>
<th>Attribute</th>
<th>Values</th>
<th>Required</th>
</tr> </tr>
<tr> <tr>
<td width="84">file</td>
<td width="396">Path to the file that the command will operate on</td>
<td width="24">Yes</td>
<td>file</td>
<td>Path to the file that the command will operate on</td>
<td>Yes</td>
</tr> </tr>
<tr> <tr>
<td width="84">comment</td>
<td width="396">Specify a comment.</td>
<td width="24">No</td>
<td>comment</td>
<td>Specify a comment.</td>
<td>No</td>
</tr> </tr>
<tr> <tr>
<td width="84">task</td>
<td width="396">Specify the task number used to checkin the file (may use
<td>task</td>
<td>Specify the task number used to checkin the file (may use
'default')</td> 'default')</td>
<td width="24">No</td>
<td>No</td>
</tr> </tr>
<tr> <tr>
<td width="84">ccmcommand</td>
<td width="396">path to the ccm excutable file. default serach into the PATH</td>
<td width="24">No</td>
<td>ccmcommand</td>
<td>path to the ccm executable file, required if it is not on the PATH</td>
<td>No</td>
</tr> </tr>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<pre>&lt;ccmcheckin file=&quot;c:/wa/com/foo/MyFile.java&quot;
<pre>&lt;ccmcheckout file=&quot;c:/wa/com/foo/MyFile.java&quot;
comment=&quot;mycomment&quot;/&gt; comment=&quot;mycomment&quot;/&gt;
</pre> </pre>
</blockquote> </blockquote>
<p>Does a Continnuus <i>checkout</i> on the file <i>c:/wa/com/foo/MyFile.java</i>.
<p>Check out the file <i>c:/wa/com/foo/MyFile.java</i>.
Comment attribute <i>mycomment</i> is added as a task comment Comment attribute <i>mycomment</i> is added as a task comment
The used task is the one set as the fault.</p>
The used task is the one set as the default.</p>
<hr> <hr>
<h2><a name="ccmcheckintask">CCMCheckinTask</a></h2> <h2><a name="ccmcheckintask">CCMCheckinTask</a></h2>
<h3>Description</h3> <h3>Description</h3>
Task to perform a check in default task command to Continnuus
Task to perform a check in default task command to Continuus
<h3>Parameters</h3> <h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0"> <table border="1" cellpadding="2" cellspacing="0">
<tr> <tr>
@@ -119,12 +119,12 @@ Task to perform a check in default task command to Continnuus
</tr> </tr>
<tr> <tr>
<td>task</td> <td>task</td>
<td>Specify the task number used to checkin the file (may use 'default')</td>
<td>Specify the task number used to check in the file (may use 'default')</td>
<td>No</td> <td>No</td>
</tr> </tr>
<tr> <tr>
<td>ccmcommand</td> <td>ccmcommand</td>
<td>path to the ccm excutable file. default serach into the PATH</td>
<td >path to the ccm executable file, required if it is not on the PATH</td>
<td>No</td> <td>No</td>
</tr> </tr>
</table> </table>
@@ -133,7 +133,7 @@ Task to perform a check in default task command to Continnuus
<pre>&lt;ccmcheckintask comment=&quot;blahblah/&gt; <pre>&lt;ccmcheckintask comment=&quot;blahblah/&gt;
</pre> </pre>
</blockquote> </blockquote>
<p>Does a Checkin default task on all the checkou-ed filed in the current task.</p>
<p>Does a Checkin default task on all the checked out files in the current task.</p>
<hr> <hr>
<h2><a name="ccmreconfigure">CCMReconfigure</a></h2> <h2><a name="ccmreconfigure">CCMReconfigure</a></h2>
<h3>Description</h3> <h3>Description</h3>
@@ -162,22 +162,22 @@ Task to perform an reconfigure command to Continuus.
</tr> </tr>
<tr> <tr>
<td>ccmcommand</td> <td>ccmcommand</td>
<td>path to the ccm excutable file. default serach into the PATH</td>
<td >path to the ccm executable file, required if it is not on the PATH</td>
<td>No</td> <td>No</td>
</tr> </tr>
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<pre>&lt;ccmreconfigure ccmproject=&quot;ANTCCM_TEST#BMO_1&quot; verbose=&quot;true&quot; /&gt;
<pre>&lt;ccmreconfigure ccmproject=&quot;ANTCCM_TEST#BMO_1&quot;
verbose=&quot;true&quot; /&gt;
</pre> </pre>
</blockquote> </blockquote>
<p>Does a Continuus <i>reconfiguree</i> on the project <i>ANTCCM_TEST#BMO_1</i>.
<p>Does a Continuus <i>reconfigure</i> on the project <i>ANTCCM_TEST#BMO_1</i>.
</p> </p>
<hr> <hr>
<h2><a name="ccmcreatetask">CCMCreateTask</a></h2> <h2><a name="ccmcreatetask">CCMCreateTask</a></h2>
<h3>Description</h3> <h3>Description</h3>
Task to perform an create task command to Continuus.
Create a Continuus task.
<h3>Parameters</h3> <h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0"> <table border="1" cellpadding="2" cellspacing="0">
<tr> <tr>
@@ -197,7 +197,7 @@ Task to perform an create task command to Continuus.
</tr> </tr>
<tr> <tr>
<td>ccmcommand</td> <td>ccmcommand</td>
<td>path to the ccm excutable file. default serach into the PATH</td>
<td >path to the ccm executable file, required if it is not on the PATH</td>
<td>No</td> <td>No</td>
</tr> </tr>
<tr> <tr>
@@ -223,12 +223,12 @@ Task to perform an create task command to Continuus.
</table> </table>
<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<pre>&lt;ccmcreatetask resolver=&quot;{user.name}&quot; release=&quot;ANTCCM_TEST&quot; comment=&quot;blahblah&quot; /&gt;
<pre>&lt;ccmcreatetask resolver=&quot;${user.name}&quot;
release=&quot;ANTCCM_TEST&quot; comment=&quot;blahblah&quot; /&gt;
</pre> </pre>
</blockquote> </blockquote>
<p>Does a Continuus <i>create task</i> for the release <i>ANTCCM_TEST</i> to the
current logged person as the resolver for this task.</p>
<p>&nbsp;</p>
<p>Creates a task for the release <i>ANTCCM_TEST</i> with the
current user as the resolver for this task.</p>


</body> </body>




+ 39
- 33
docs/manual/OptionalTasks/depend.html View File

@@ -54,41 +54,30 @@ relationships are sufficient - it is unusual for a class to depend on another
without having a direct relationship. With closure set, you will notice that without having a direct relationship. With closure set, you will notice that
depend typically removes far more class files. </p> depend typically removes far more class files. </p>


<p>The classpath attribute for <code>&lt;depend&gt;</code> is optional. If it is present,
depend will check class dependencies against classes and jars on this classpath.
Any classes which depend on an element from this classpath and which are older
than that element will be deleted. A typical example where you would use this
facility would be where you are building a utility jar and want to make sure
classes which are out of date with respect to this jar are rebuilt. You should
<b>not</b> include jars in this classpath which you do not expect to change,
such as the JDK runtime jar or third party jars, since doing so will just slow
down the dependency check. This means that if you do use a classpath for the
depend task it may be different from the classpath necessary to actually
compile your code.</p>

<h3>Performance</h3> <h3>Performance</h3>


<p> The performance of the depend task is dependent on a <p> The performance of the depend task is dependent on a
number of factors such as class relationship complexity and how many class files number of factors such as class relationship complexity and how many class files
are out of date. The following tests have been run when build Ant itself, on the
author's machine using JDK1.3 </p>

<table border="1" cellpadding="2" cellspacing="0">
<tr>
<td>Building Ant from clean using Javac</td>
<td>11 seconds</td>
</tr>
<tr>
<td>Building Ant from clean using Jikes</td>
<td>5 seconds</td>
</tr>
<tr>
<td>Running &lt;depend&gt; when up-to-date and no cache</td>
<td>4 seconds (Depend takes 2 seconds)</td>
</tr>
<tr>
<td>Running &lt;depend&gt; when up-to-date and with a cache</td>
<td>2 seconds (Depend takes 1 seconds)</td>
</tr>
</table>

<p> This involves compiling 177 files. The above figures are indicative only.
The decision about whether it is cheaper to just recompile all classes or to
use the depend task will depend on the size of your project and how interrelated
your classes are. </p>
are out of date. The decision about whether it is cheaper to just recompile all
classes or to use the depend task will depend on the size of your project and
how interrelated your classes are. </p>




<h3>Limitations</h3> <h3>Limitations</h3>


<p> There are some dependencies which depend will not detect. </p>
<p> There are some source dependencies which depend will not detect. </p>


<ul> <ul>
<li>If the Java compiler optimizes away a class relationship, <li>If the Java compiler optimizes away a class relationship,
@@ -112,8 +101,8 @@ your classes are. </p>
<tr> <tr>
<td valign="top">srcDir</td> <td valign="top">srcDir</td>
<td valign="top">This is the directory where the source exists. depend <td valign="top">This is the directory where the source exists. depend
will examine this to determine which classes. If you use multiple
source directories you can pass this a path of source directories.</td>
will examine this to determine which classes are out of date. If you use multiple
source directories you can pass this attribute a path of source directories.</td>
<td valign="top" align="center">Yes</td> <td valign="top" align="center">Yes</td>
</tr> </tr>
<tr> <tr>
@@ -137,14 +126,31 @@ depend will traverse the class dependency graph deleting all affected
classes. Defaults to false</td> classes. Defaults to false</td>
<td valign="top" align="center">No</td> <td valign="top" align="center">No</td>
</tr> </tr>
<tr>
<td valign="top">dump</td>
<td valign="top">If true the dependency information will be written to the debug level log
</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">classpath</td>
<td valign="top">The classpath containg jars and classes for which <code>&lt;depend&gt;</code> should also
check dependencies</td>
<td valign="top" align="center">No</td>
</tr>
</table> </table>


<h3>Nested Elements</h3>
<p><code>depend</code>'s <i>classpath</i> attribute is a
<a href="../using.html#path">PATH like structure</a> and can also be set
via a nested <i>classpath</i> element.</p>

<h3>Examples</h3> <h3>Examples</h3>
<blockquote> <blockquote>
<pre> &lt;depend srcdir=&quot;${java.dir}&quot;
destdir=&quot;${build.classes}&quot;
cache=&quot;depcache&quot;
closure=&quot;yes&quot;/&gt;</pre>
<pre>&lt;depend srcdir=&quot;${java.dir}&quot;
destdir=&quot;${build.classes}&quot;
cache=&quot;depcache&quot;
closure=&quot;yes&quot;/&gt;</pre>
</blockquote> </blockquote>


<p> In this example classes in the ${build.classes} directory will be removed if <p> In this example classes in the ${build.classes} directory will be removed if


+ 2
- 2
docs/manual/OptionalTasks/ftp.html View File

@@ -9,11 +9,11 @@


<h2><a name="ftp">FTP</a></h2> <h2><a name="ftp">FTP</a></h2>
<h3>Description</h3> <h3>Description</h3>
<p><b>Note:</b> The ftp-task uses the NetComponents-Package which you will need to download from
<a href="http://www.savarese.org" target="_top">http://www.savarese.org</a> and add to your classpath.</p>
<p>The ftp task implements a basic FTP client that can send, receive, <p>The ftp task implements a basic FTP client that can send, receive,
list, delete files, and create directories. See below for descriptions and examples of how list, delete files, and create directories. See below for descriptions and examples of how
to perform each task.</p> to perform each task.</p>
<p><b>Note:</b> This task depends on external libraries not included in the Ant distribution.
See <a href="../install.html#librarydependencies">Library Dependencies</a> for more information.</p>
<p>The ftp task makes no attempt to determine what file system syntax is <p>The ftp task makes no attempt to determine what file system syntax is
required by the remote server, and defaults to Unix standards. required by the remote server, and defaults to Unix standards.
<i>remotedir</i> must be specified in the exact syntax required by the ftp <i>remotedir</i> must be specified in the exact syntax required by the ftp


+ 5
- 6
docs/manual/OptionalTasks/icontract.html View File

@@ -16,8 +16,7 @@ Instruments Java classes with <a href="http://www.reliable-systems.com/tools/">i
The task can generate a properties file for <a href="http://home.sol.no/~hellesoy/icplus.html">iControl</a>, The task can generate a properties file for <a href="http://home.sol.no/~hellesoy/icplus.html">iControl</a>,
a graphical user interface that lets you turn on/off assertions. iControl generates a control file that you can refer to a graphical user interface that lets you turn on/off assertions. iControl generates a control file that you can refer to
from this task using the controlfile attribute. from this task using the controlfile attribute.
<p/>
&nbsp;
</p>


<h3>Parameters</h3> <h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0"> <table border="1" cellpadding="2" cellspacing="0">
@@ -133,13 +132,13 @@ Instruments Java classes with <a href="http://www.reliable-systems.com/tools/">i


<p><b>Example:</b></p> <p><b>Example:</b></p>


<p/>
<p>
<b>Note:</b> iContract will use the java compiler indicated by the project's <b>Note:</b> iContract will use the java compiler indicated by the project's
<code>build.compiler</code> property. See documentation of the Javac task for <code>build.compiler</code> property. See documentation of the Javac task for
more information.
<p/>
more information.</p>
<p>
Nested includes and excludes can be done very much the same way as any subclass Nested includes and excludes can be done very much the same way as any subclass
of MatchingTask.
of MatchingTask.</p>


<p><b>Example:</b></p> <p><b>Example:</b></p>




+ 63
- 92
docs/manual/OptionalTasks/jdepend.html View File

@@ -1,30 +1,27 @@
<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> <!doctype html public "-//w3c//dtd html 4.0 transitional//en">

<html> <html>
<head> <head>
<title>JDepend Task</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Language" content="en-us"> <meta http-equiv="Content-Language" content="en-us">
<title>JDepend Task</title>
</head> </head>

<body> <body>


<h2>
<a NAME="JDepend"></a>JDepend</h2>
<h2><a NAME="JDepend"></a>JDepend</h2>

<h3>Description</h3>


<h3>
Description</h3>
<P>Invokes the <a href="http://www.clarkware.com/software/JDepend.html">JDepend</a> parser.</P>


<P>Invokes the <a href="http://www.clarkware.com/software/JDepend.html">JDepend</a> parser.
</P>
<P>This parser "traverses a set of Java source file directories and generates design quality metrics for each Java package".
It allows to "automatically measure the quality of a design in terms of its extensibility, reusability, and maintainability to
effectively manage and control package dependencies."</P>


<P>
This parser "traverses a set of Java source file directories and generates design quality metrics for each Java package".
It allows to "automatically measure the quality of a design in terms of its extensibility, reusability, and maintainability to effectively manage and control package dependencies."
</P>
<p>Source file directories are defined by nested <code>&lt;sourcespath&gt;</code>, see <a href="#nested">nested elements</a>.</p>


<p>Source file directories are defined by nested <code>&lt;sourcespath&gt;</code>, see <a href="#nested">nested
elements</a>.<BR>
Optionally, you can also set the <code>outputfile</code> name where the output is stored. By default the task writes its report to the standard output.
</P>
<p>Optionally, you can also set the <code>outputfile</code> name where the output is stored. By default the task writes its report to the standard output.</P>


<p> The task requires at least the JDepend 1.2 version. </p> <p> The task requires at least the JDepend 1.2 version. </p>


@@ -32,88 +29,59 @@ Optionally, you can also set the <code>outputfile</code> name where the output i


<p> <p>


<h3>
Parameters</h3>

<table BORDER CELLSPACING=0 CELLPADDING=2 >
<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>outputfile</td>

<td VALIGN=TOP>The output file name. If not set, the output is printed on the standard output.</td>

<td ALIGN=CENTER VALIGN=TOP>No</td>
</tr>

<tr>
<td VALIGN=TOP>fork</td>

<td VALIGN=TOP>Run the tests in a separate VM.</td>

<td ALIGN=CENTER VALIGN=TOP>No, default is "off"</td>
</tr>

<tr>
<td VALIGN=TOP>haltonerror</td>

<td VALIGN=TOP>Stop the build process if an error occurs during the jdepend analysis.</td>

<td ALIGN=CENTER VALIGN=TOP>No, default is "off"</td>
</tr>

<tr>
<td VALIGN=TOP>timeout</td>

<td VALIGN=TOP>Cancel the operation if it doesn't finish in the given time (measured in milliseconds). (Ignored if fork is disabled.)</td>

<td ALIGN=CENTER VALIGN=TOP>No</td>
</tr>

<tr>
<td VALIGN=TOP>jvm</td>

<td VALIGN=TOP>The command used to invoke the Java Virtual Machine, default is 'java'. The command is resolved by java.lang.Runtime.exec(). (Ignored if fork is disabled.)</td>

<td ALIGN=CENTER VALIGN=TOP>No, default "java"</td>
</tr>

<tr>
<td VALIGN=TOP>dir</td>

<td VALIGN=TOP>The directory to invoke the VM in. (Ignored if fork is disabled)</td>

<td ALIGN=CENTER VALIGN=TOP>No</td>
</tr>

<tr>
<td VALIGN=TOP>classpathref</td>

<td VALIGN=TOP>the classpath to use, given as reference to a PATH defined elsewhere.</td>

<td ALIGN=CENTER VALIGN=TOP>No</td>
</tr>

<h3>Parameters</h3>

<table BORDER=1 CELLSPACING=0 CELLPADDING=2 >
<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>outputfile</td>
<td VALIGN=TOP>The output file name. If not set, the output is printed on the standard output.</td>
<td ALIGN=CENTER VALIGN=TOP>No</td>
</tr>
<tr>
<td VALIGN=TOP>fork</td>
<td VALIGN=TOP>Run the tests in a separate VM.</td>
<td ALIGN=CENTER VALIGN=TOP>No, default is "off"</td>
</tr>
<tr>
<td VALIGN=TOP>haltonerror</td>
<td VALIGN=TOP>Stop the build process if an error occurs during the jdepend analysis.</td>
<td ALIGN=CENTER VALIGN=TOP>No, default is "off"</td>
</tr>
<tr>
<td VALIGN=TOP>timeout</td>
<td VALIGN=TOP>Cancel the operation if it doesn't finish in the given time (measured in milliseconds). (Ignored if fork is disabled.)</td>
<td ALIGN=CENTER VALIGN=TOP>No</td>
</tr>
<tr>
<td VALIGN=TOP>jvm</td>
<td VALIGN=TOP>The command used to invoke the Java Virtual Machine, default is 'java'. The command is resolved by java.lang.Runtime.exec(). (Ignored if fork is disabled.)</td>
<td ALIGN=CENTER VALIGN=TOP>No, default "java"</td>
</tr>
<tr>
<td VALIGN=TOP>dir</td>
<td VALIGN=TOP>The directory to invoke the VM in. (Ignored if fork is disabled)</td>
<td ALIGN=CENTER VALIGN=TOP>No</td>
</tr>
<tr>
<td VALIGN=TOP>classpathref</td>
<td VALIGN=TOP>the classpath to use, given as reference to a PATH defined elsewhere.</td>
<td ALIGN=CENTER VALIGN=TOP>No</td>
</tr>
</table> </table>



<h3><a name="nested">Nested Elements</a></h3> <h3><a name="nested">Nested Elements</a></h3>


<p><code>jdepend</code> supports two nested elements <code>&lt;classpath&gt;</code> and <code>&lt;sourcespath&gt;</code>,
that represent <a href="../using.html#path">PATH like structures</a>.</p>


<p><code>jdepend</code> supports two nested elements <code>&lt;classpath&gt;</code> and <code>&lt;sourcespath&gt;</code>, that represent <a href="../using.html#path">PATH like
structures</a>.

<BR><code>&lt;sourcespath&gt;</code> is used to define the paths of the source code to analyze.</BR>
</p>
<p><code>&lt;sourcespath&gt;</code> is used to define the paths of the source code to analyze.</p>


<h3>
Examples</h3>
<h3>Examples</h3>


<blockquote> <blockquote>
<pre> <pre>
@@ -127,6 +95,7 @@ Examples</h3>


This invokes JDepend on the <code>src</code> directory, writing the output on the standard output. This invokes JDepend on the <code>src</code> directory, writing the output on the standard output.
The classpath is defined using a classpath reference. The classpath is defined using a classpath reference.

<blockquote> <blockquote>
<pre> <pre>
&lt;jdepend outputfile="docs/jdepend.txt" fork="yes"> &lt;jdepend outputfile="docs/jdepend.txt" fork="yes">
@@ -143,8 +112,10 @@ The classpath is defined using a classpath reference.


This invokes JDepend in a separate VM on the <code>src</code> and <code>testsrc</code> directories, writing the output in the <code>&lt;docs/jdepend.txt&gt;</code> file. This invokes JDepend in a separate VM on the <code>src</code> and <code>testsrc</code> directories, writing the output in the <code>&lt;docs/jdepend.txt&gt;</code> file.
The classpath is defined using nested elements. The classpath is defined using nested elements.
<br>
<hr> <hr>
</body> </body>
</html> </html>





+ 4
- 1
docs/manual/OptionalTasks/junitreport.html View File

@@ -14,7 +14,10 @@ the testcases results.
or <a href="http://xml.apache.org/dist/xalan-j/old/xalan-j_1_2_2.zip">Xalan 1.2.2</a>. or <a href="http://xml.apache.org/dist/xalan-j/old/xalan-j_1_2_2.zip">Xalan 1.2.2</a>.
<p> <p>
Note:<i>For a framed format Xalan 1.2.2 will need Xerces(xerces.jar) as well as BSF(bsf.jar) Note:<i>For a framed format Xalan 1.2.2 will need Xerces(xerces.jar) as well as BSF(bsf.jar)
that can be found in the distribution archive.</i>
that can be found in the distribution archive. Xerces will need to be before any other
parser (such as the shipped crimson). It is *highly* recommended to use Xalan2 instead
because Xalan1 is no more supported.
</i>
<h3>Parameters</h3> <h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0"> <table border="1" cellpadding="2" cellspacing="0">
<tr> <tr>


+ 2
- 0
docs/manual/OptionalTasks/script.html View File

@@ -11,6 +11,8 @@
<h3>Description</h3> <h3>Description</h3>
<p>Execute a script in a <p>Execute a script in a
<a href="http://oss.software.ibm.com/developerworks/opensource/bsf/" target="_top">BSF</a> supported language.</p> <a href="http://oss.software.ibm.com/developerworks/opensource/bsf/" target="_top">BSF</a> supported language.</p>
<p><b>Note:</b> This task depends on external libraries not included in the Ant distribution.
See <a href="../install.html#librarydependencies">Library Dependencies</a> for more information.</p>
<p>All items (tasks, targets, etc) of the running project are <p>All items (tasks, targets, etc) of the running project are
accessible from the script, using either their <code>name</code> or accessible from the script, using either their <code>name</code> or
<code>id</code> attributes.</p> <code>id</code> attributes.</p>


+ 2
- 0
docs/manual/OptionalTasks/stylebook.html View File

@@ -12,6 +12,8 @@
<p>This executes the apache Stylebook documentation generator. <p>This executes the apache Stylebook documentation generator.
Unlike the commandline version of this tool, all three arguments Unlike the commandline version of this tool, all three arguments
are required to run stylebook.</p> are required to run stylebook.</p>
<p><b>Note:</b> This task depends on external libraries not included in the Ant distribution.
See <a href="../install.html#librarydependencies">Library Dependencies</a> for more information.</p>


<h3>Parameters</h3> <h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0"> <table border="1" cellpadding="2" cellspacing="0">


+ 1
- 0
docs/manual/coretasklist.html View File

@@ -15,6 +15,7 @@
<a href="sysclasspath.html">build.sysclasspath</a><br> <a href="sysclasspath.html">build.sysclasspath</a><br>
<a href="CoreTypes/patternset.html">Patternset</a><br> <a href="CoreTypes/patternset.html">Patternset</a><br>
<a href="CoreTypes/fileset.html">Fileset</a><br> <a href="CoreTypes/fileset.html">Fileset</a><br>
<a href="CoreTypes/filterset.html">Filterset</a><br>
<a href="CoreTypes/mapper.html">File Mappers</a><br> <a href="CoreTypes/mapper.html">File Mappers</a><br>
<a href="CoreTasks/common.html">Common Attributes</a><br> <a href="CoreTasks/common.html">Common Attributes</a><br>




+ 13
- 12
docs/manual/install.html View File

@@ -8,18 +8,18 @@
<body> <body>
<h1>Installing Ant</h1> <h1>Installing Ant</h1>
<h2><a name="getting">Getting Ant</a></h2> <h2><a name="getting">Getting Ant</a></h2>
<h3>Binary edition</h3>
<h3>Binary Edition</h3>
<p>The latest stable version of Ant can be downloaded from <a <p>The latest stable version of Ant can be downloaded from <a
href="http://jakarta.apache.org/builds/ant/release/v1.3/bin/">
http://jakarta.apache.org/builds/ant/release/v1.3/bin/</a>.
href="http://jakarta.apache.org/builds/ant/release/v1.4/bin/">
http://jakarta.apache.org/builds/ant/release/v1.4/bin/</a>.


If you like living on the edge, you can download the latest version from <a If you like living on the edge, you can download the latest version from <a
href="http://jakarta.apache.org/builds/ant/nightly/">http://jakarta.apache.org/builds/ant/nightly/</a>.</p> href="http://jakarta.apache.org/builds/ant/nightly/">http://jakarta.apache.org/builds/ant/nightly/</a>.</p>
<h3>Source Edition</h3> <h3>Source Edition</h3>


<p>If you prefer the source edition, you can download the source for the latest Ant release from <a <p>If you prefer the source edition, you can download the source for the latest Ant release from <a
href="http://jakarta.apache.org/builds/ant/release/v1.3/src/">
http://jakarta.apache.org/builds/ant/release/v1.3/src/</a>.
href="http://jakarta.apache.org/builds/ant/release/v1.4/src/">
http://jakarta.apache.org/builds/ant/release/v1.4/src/</a>.


Again, if you prefer the edge, you can access Again, if you prefer the edge, you can access
the code as it is being developed via CVS. The Jakarta website has details on the code as it is being developed via CVS. The Jakarta website has details on
@@ -38,10 +38,11 @@ Ant CVS repository</a> on-line. </p>
To build and use Ant, you must have a JAXP-compliant XML parser installed and To build and use Ant, you must have a JAXP-compliant XML parser installed and
available on your classpath.</p> available on your classpath.</p>
<p> <p>
The binary distribution of Ant includes the reference
implementation of JAXP 1.1. Please see
The binary distribution of Ant includes the latest version of the
<a href="http://xml.apache.org/crimson/index.html">Apache Crimson</a> XML parser.
Please see
<a href="http://java.sun.com/xml/" target="_top">http://java.sun.com/xml/</a> <a href="http://java.sun.com/xml/" target="_top">http://java.sun.com/xml/</a>
for more information.
for more information about JAXP.
If you wish to use a different JAXP-compliant parser, you should remove If you wish to use a different JAXP-compliant parser, you should remove
<code>jaxp.jar</code> and <code>crimson.jar</code> <code>jaxp.jar</code> and <code>crimson.jar</code>
from Ant's <code>lib</code> directory. from Ant's <code>lib</code> directory.
@@ -105,12 +106,12 @@ directory of the JDK/JRE. Ant is an application, whilst the extension
directory is intended for JDK extensions. In particular there are security directory is intended for JDK extensions. In particular there are security
restrictions on the classes which may be loaded by an extension.</p> restrictions on the classes which may be loaded by an extension.</p>


<h3>Optional Tasks</h3>
<h3><a name="optionalTasks">Optional Tasks</a></h3>
<p>Ant supports a number of optional tasks. An optional task is a task which <p>Ant supports a number of optional tasks. An optional task is a task which
typically requires an external library to function. The optional tasks are typically requires an external library to function. The optional tasks are
packaged separately from the core Ant tasks. This package is available in packaged separately from the core Ant tasks. This package is available in
the same download directory as the core ant distribution. The current the same download directory as the core ant distribution. The current
jar containing optional tasks is named <code>jakarta-ant-1.3-optional.jar</code>.
jar containing optional tasks is named <code>jakarta-ant-1.4-optional.jar</code>.
This jar should be downloaded and placed in the lib directory of your Ant This jar should be downloaded and placed in the lib directory of your Ant
installation.</p> installation.</p>


@@ -233,8 +234,8 @@ install directory's <code>lib</code> directory if you are using the
indicated feature. Note that only one of the regexp libraries is indicated feature. Note that only one of the regexp libraries is
needed for use with the mappers. You will also need to install the needed for use with the mappers. You will also need to install the
Ant optional jar containing the task definitions to make these Ant optional jar containing the task definitions to make these
tasks available. Please refer to the <a href="#installing">
Installing Ant</a> section above.</p>
tasks available. Please refer to the <a href="#optionalTasks">
Installing Ant / Optional Tasks</a> section above.</p>


<table border="1" cellpadding="2" cellspacing="0"> <table border="1" cellpadding="2" cellspacing="0">
<tr> <tr>


+ 0
- 42
docs/manual/resources.html View File

@@ -1,42 +0,0 @@
<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<title>Ant User Manual</title>
</head>

<body>
<h1>Ant Resources</h1>

<h2><a name="faq">FAQ</a></h2>
<p>There is an on-line FAQ for Ant at <a target="_top"
href="http://jakarta.apache.org/ant/faq.html">jakarta.apache.org</a>.</p>

<h2><a name="external">External Resources</a></h2>

<p>There is a powerpoint presentation by Patrick Chanezon (chanezon@netscape.com)
here:
<a href="http://people.netscape.com/chanezon/tech/ant/ant_preso.ppt">http://people.netscape.com/chanezon/tech/ant/ant_preso.ppt</a></p>

<p>Another pres by Steve Loughran (steve_l@iseran.com)
<a href="http://www.iseran.com/Steve/modern_development_processes.html">http://www.iseran.com/Steve/modern_development_processes.html</a></a>.</p>

<p>and some articles to get ideas from here:
<a href="http://www-106.ibm.com/developerworks/library/j-ant/?dwzone=java">http://www-106.ibm.com/developerworks/library/j-ant/?dwzone=java</a>
<a href="http://www.javaworld.com/javaworld/jw-10-2000/jw-1020-ant.html">http://www.javaworld.com/javaworld/jw-10-2000/jw-1020-ant.html</a>
<a href="http://jakarta.apache.org/commons/cactus/ant.html">http://jakarta.apache.org/commons/cactus/ant.html</a></p>

<p>Here's another Ant presentation, made at the St. Louis Java Users
Group meeting in March (PowerPoint):
<a href="http://www.ociweb.com/javasig/knowledgebase/March2001/index.html">http://www.ociweb.com/javasig/knowledgebase/March2001/index.html</a></p>

<p>An article about developing tasks with VAJ by Glenn McAllister can
be found at <a href="http://www7.software.ibm.com/vad.nsf/data/document2366?OpenDocument&p=1&BCT=1&Footer=1">http://www7.software.ibm.com/vad.nsf/data/document2366?OpenDocument&amp;p=1&amp;BCT=1&amp;Footer=1</a></p>

<hr>
<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
Reserved.</p>

</body>
</html>


+ 0
- 1
docs/manual/toc.html View File

@@ -18,7 +18,6 @@
<a href="ide.html" target="navFrame">Editor/IDE Integration</a><br> <a href="ide.html" target="navFrame">Editor/IDE Integration</a><br>
<a href="develop.html">Developing with Ant</a><br> <a href="develop.html">Developing with Ant</a><br>
<a href="api/index.html" target="_top">Ant API</a><br> <a href="api/index.html" target="_top">Ant API</a><br>
<a href="resources.html">Ant Resources</a><br>
<a href="LICENSE">License</a><br> <a href="LICENSE">License</a><br>
<a href="feedback.html">Feedback</a><br><br> <a href="feedback.html">Feedback</a><br><br>
<a href="credits.html">Authors</a><br> <a href="credits.html">Authors</a><br>


+ 3
- 3
docs/manual/using.html View File

@@ -200,7 +200,7 @@ if there is a &quot;builddir&quot; property with the value
<code>${builddir}/classes</code>. <code>${builddir}/classes</code>.
This is resolved as <code>build/classes</code>.</p> This is resolved as <code>build/classes</code>.</p>


<h3>Built-in Properties</h3>
<h3><a name="built-in-props">Built-in Properties</a></h3>
<p>Ant provides access to all system properties as if they had been <p>Ant provides access to all system properties as if they had been
defined using a <code>&lt;property&gt;</code> task. defined using a <code>&lt;property&gt;</code> task.
For example, <code>${os.name}</code> expands to the For example, <code>${os.name}</code> expands to the
@@ -216,7 +216,7 @@ ant.version the version of Ant
ant.project.name the name of the project that is currently executing; ant.project.name the name of the project that is currently executing;
it is set in the name attribute of &lt;project&gt;. it is set in the name attribute of &lt;project&gt;.
ant.java.version the JVM version Ant detected; currently it can hold ant.java.version the JVM version Ant detected; currently it can hold
the values &quot;1.1&quot;, &quot;1.2&quot; and &quot;1.3&quot;.
the values &quot;1.1&quot;, &quot;1.2&quot;, &quot;1.3&quot; and &quot;1.4&quot;.
</pre> </pre>


<h3>Example</h3> <h3>Example</h3>
@@ -307,7 +307,7 @@ supports <code>path</code> and
&lt;pathelement path=&quot;${classpath}&quot;/&gt; &lt;pathelement path=&quot;${classpath}&quot;/&gt;
&lt;/classpath&gt; &lt;/classpath&gt;
</pre> </pre>
<p>can be abreviated to:</p>
<p>can be abbreviated to:</p>
<pre> <pre>
&lt;classpath path=&quot;${classpath}&quot;/&gt; &lt;classpath path=&quot;${classpath}&quot;/&gt;
</pre> </pre>


Loading…
Cancel
Save