donaldp 2002/06/13 01:25:04
Modified: site/docs ant1compat.html buildfile.html building.html
classloader.html configuring.html differences.html
getinvolved.html index.html librarys.html
project-descriptor.html running.html
subprojects.html task.html todo.html vfs.html
Log:
Update website again due to fact I buggered it last time ;)
Revision Changes Path
1.8 +64 -24 jakarta-ant-myrmidon/site/docs/ant1compat.html
Index: ant1compat.html
===================================================================
RCS file: /home/cvs/jakarta-ant-myrmidon/site/docs/ant1compat.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ant1compat.html 13 Jun 2002 08:14:39 -0000 1.7
+++ ant1compat.html 13 Jun 2002 08:25:03 -0000 1.8
@@ -107,11 +107,17 @@
</p>
<p
- > $escape.getText( $child )
+ >
+ The updated version of Task implements Configurable, receiving
it's
+ complete Task Model, and actually setting/adding/creating
attributes
+ with the help of the IntrospectionHelper. This process is
designed to
+ mimic the Ant 1 configuration policy, although not
<i
> all
</i>
- $escape.getText( $child )
+ of the
+ subtle variations of configuration present in Ant 1 are handled.
+
</p>
<p
>
@@ -119,41 +125,56 @@
such as:
</p>
<ul
- > $escape.getText( $child )
+ >
+
<li
> logging (done)
</li>
- $escape.getText( $child )
+
+
<li
> properties (done)
</li>
- $escape.getText( $child )
+
+
<li
> references (not yet done)
</li>
- $escape.getText( $child )
+
+
<li
> Task defined by <taskdef> (done)
</li>
- $escape.getText( $child )
+
+
</ul>
<p
- > $escape.getText( $child )
+ >
+ So at present, properties declared in Ant 2 tasks are available
to all Ant 1 tasks,
+ and vice-versa. However, while a
<code
> <ant1.path>
</code>
- $escape.getText( $child )
+ reference works fine
+ in other
<code
> <ant1.XXX>
</code>
- $escape.getText( $child )
+
+ tasks, it's not visible to Ant 2 tasks in the same build, and
vice-versa.
+
</p>
<p
- > $escape.getText( $child )
+ >
+ The
<code
> <taskdef>
</code>
- $escape.getText( $child )
+ task works ok, registering the task with the
TypeManager using the
+ "ant1." prefix. Only a couple of DataTypes (Path and
Patternset) are working
+ as top-level types, but this should be just a matter of adding
references to
+ the Ant 1 version of TypeInstanceTask in the descriptor.
+
</p>
<p
>
@@ -169,26 +190,37 @@
<div class="h4">
<h4><a name="Using Ant 1 tasks in a Myrmidon build file">Using
Ant 1 tasks in a Myrmidon build file</a></h4>
<p
- > $escape.getText( $child )
+ >
+ If you have a Myrmidon build file (eg with
<code
> version="2.0"
</code>
- $escape.getText( $child )
+
+ on the project element, you can use Ant 1 tasks and
datatypes by using
+ the "ant1." suffix on the regular element name.
+ Virtually
<i
> all
</i>
- $escape.getText( $child )
+ tasks and datatypes from Ant 1.4.1 are available
+ in this way.
+
</p>
<p
- > $escape.getText( $child )
+ >
+ When declaring a new task using the
<code
> <ant1.taskdef>
</code>
- $escape.getText( $child )
+
+ task,
<i
> don't
</i>
- $escape.getText( $child )
+ prepend "ant1." to the taskname. This
will be
+ done automatically by the taskdef task. However, you will
need
+ to use the "ant1." prefix in all uses of that task.
+
</p>
</div>
<div class="h4">
@@ -201,28 +233,36 @@
</p>
<pre>[myrmidon-command] -f ant1-build-file.xml</pre>
<p
- > $escape.getText( $child )
+ >
+ This works as follows: When Myrmidon encounters a
".xml" build file which does not have a
+
<code
> version
</code>
- $escape.getText( $child )
+ attribute on the top-level
<code
> project
</code>
- $escape.getText( $child )
+
+ element, it assumes that it is an Ant 1 build file. So all
tasks are
+ interpreted as though they are prefixed with the
"ant." name prefix.
+
</p>
</div>
</div>
<div class="h3">
<h3><a name="Building the compatibility layer">Building the
compatibility layer</a></h3>
<p
- > $escape.getText( $child )
+ > Before building the Ant 1 Compatibility layer,
you need to build
+ Myrmidon, running the
<code
> dist-lite
</code>
- $escape.getText( $child )
+ target of the main build.
+ See
<a href="user.html#Building
Myrmidon">the build instructions</a>
- $escape.getText( $child )
+
+ for more details.
</p>
<p
> To build the compatibility layer, simply execute:
1.9 +99 -42 jakarta-ant-myrmidon/site/docs/buildfile.html
Index: buildfile.html
===================================================================
RCS file: /home/cvs/jakarta-ant-myrmidon/site/docs/buildfile.html,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- buildfile.html 13 Jun 2002 08:14:39 -0000 1.8
+++ buildfile.html 13 Jun 2002 08:25:03 -0000 1.9
@@ -89,66 +89,94 @@
<div class="h3">
<h3><a name="Overview">Overview</a></h3>
<p
- > $escape.getText( $child )
+ >
+ You define a build process using a
<a href="#project">project</a>
- $escape.getText( $child )
+ file. A
+ project file is an XML file, which describes what needs to be done to
+ perform the build. A project is usually made up of several stages,
+ or
<a href="#targets">targets</a>
- $escape.getText( $child )
+ . For example, a project might be made up
+ of a target that compiles the Java source files, another target that runs
+ unit tests, and a third target that assembles a distribution.
+
</p>
<p
- > $escape.getText( $child )
+ >
+ A target may
<b
> depend on
</b>
- $escape.getText( $child )
+ other targets. For example, a target that
+ builds a distribution, cannot do its work until the source files have
been
+ compiled. Myrmidon makes sure that targets are executed in the correct
order,
+ so that a target is executed before the targets that depend on it.
Target
+ are only executed once.
+
</p>
<p
- > $escape.getText( $child )
+ >
+ You define a target using basic units of work called
<a href="#tasks">tasks</a>
- $escape.getText( $child )
+ .
+ Tasks can range from simple operations, such as copying a file, or
setting a
+ property, up to complex operations like compiling Java source, or
running a
+ test suite.
+
</p>
<p
- > $escape.getText( $child )
+ >
+ Let's look at a simple example. The project below contains two targets,
+ called
<code
> compile
</code>
- $escape.getText( $child )
+ and
<code
> build-jar
</code>
- $escape.getText( $child )
+ . The
<code
> compile
</code>
- $escape.getText( $child )
+
+ target executes the
<code
> javac
</code>
- $escape.getText( $child )
+ task, which, as you probably
+ guessed, compiles up a bunch of Java source files.
+ The
<code
> build-jar
</code>
- $escape.getText( $child )
+ target depends on the
<code
> compile
</code>
- $escape.getText( $child )
+ target,
+ which means that it will only ever get executed
<i
> after
</i>
- $escape.getText( $child )
+ the
+
<code
> compile
</code>
- $escape.getText( $child )
+ target has been executed. The
<code
> build-jar
</code>
- $escape.getText( $child )
+
+ target executes the
<code
> jar
</code>
- $escape.getText( $child )
+ task, which assembles the compiled
+ class files into a Jar file.
+
</p>
<div id="source">
<pre><project version="2.0"
default="build-jar">
@@ -170,11 +198,15 @@
<div class="h3">
<h3><a name="project">The Project File</a></h3>
<p
- > $escape.getText( $child )
+ >
+ A project file is an XML file that defines a single project. The root
element
+ of a project file must be a
<code
> <project>
</code>
- $escape.getText( $child )
+ element.
+ It can take the following attributes:
+
</p>
<table cellpadding="3" cellspacing="2"
border="1" width="100%">
<tr class="a">
@@ -248,7 +280,7 @@
</td>
<td
>
- $escape.getText( $child )
+ None, must be
<code
> 2.0
</code>
@@ -256,26 +288,33 @@
</tr>
</table>
<p
- > $escape.getText( $child )
+ >
+ A
<code
> <project>
</code>
- $escape.getText( $child )
+ element can contain the following elements,
+ in the order given below:
+
</p>
<ul
- > $escape.getText( $child )
+ >
+
<li
> <a href="#project-refs">Project
references</a>
</li>
- $escape.getText( $child )
+
+
<li
> <a
href="#init-tasks">Initialization tasks</a>
</li>
- $escape.getText( $child )
+
+
<li
> <a href="#targets">Targets</a>
</li>
- $escape.getText( $child )
+
+
</ul>
<p
> Below is a simple example, which contains two targets:
@@ -295,11 +334,12 @@
<div class="h4">
<h4><a name="project-refs">Project References</a></h4>
<p
- > $escape.getText( $child )
+ > Project references allow the project to import,
or reference, other projects.
+A
<code
> <projectref>
</code>
- $escape.getText( $child )
+ element takes the following attributes:
</p>
<table cellpadding="3" cellspacing="2" border="1"
width="100%">
<tr class="a">
@@ -346,21 +386,24 @@
</tr>
</table>
<p
- > $escape.getText( $child )
+ >
+The targets of a referenced project can be used in the
<code
> depends
</code>
- $escape.getText( $child )
+ list
+of a target in the referencing project, using the syntax
+
<code
> <i
> project-name
</i>
- $escape.getText( $child )
+ ->
<i
> target-name
</i>
</code>
- $escape.getText( $child )
+ . Here is a simple example:
</p>
<div id="source">
<pre><project version="2.0">
@@ -377,13 +420,19 @@
<div class="h4">
<h4><a name="init-tasks">Initialization Tasks</a></h4>
<p
- > $escape.getText( $child )
+ >
+ Initialization
<a href="#tasks">tasks</a>
- $escape.getText( $child )
+ are executed before any of the
+ project's targets are executed, and are used to initialize the project.
+ Any task can be used as an initialization task, including
+
<code
> <property>
</code>
- $escape.getText( $child )
+ and data-type instances. The initialization
+ tasks are executed in the order they appear in the project file.
+
</p>
<p
> Below is an example:
@@ -408,18 +457,23 @@
<div class="h3">
<h3><a name="targets">Targets</a></h3>
<p
- > $escape.getText( $child )
+ >
+ A target is a list of tasks, contained in a
<code
> <target>
</code>
- $escape.getText( $child )
+
+ element. When the target is executed, the tasks are executed in the
order
+ they appear in the project file. A target may also have a list of
dependencies.
+ These are targets that must be executed before the target is executed.
+
</p>
<p
- > $escape.getText( $child )
+ > A
<code
> <target>
</code>
- $escape.getText( $child )
+ element takes the following attributes:
</p>
<table cellpadding="3" cellspacing="2"
border="1" width="100%">
<tr class="a">
@@ -511,9 +565,12 @@
<log>This is a log message.</log></pre>
</div>
<p
- > $escape.getText( $child )
+ >
+ Some tasks may contain other tasks. You can find out about how to write
+ your own tasks
<a href="task.html">here</a>
- $escape.getText( $child )
+ .
+
</p>
</div>
</div></div></td>
1.5 +25 -11 jakarta-ant-myrmidon/site/docs/building.html
Index: building.html
===================================================================
RCS file: /home/cvs/jakarta-ant-myrmidon/site/docs/building.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- building.html 13 Jun 2002 08:14:39 -0000 1.4
+++ building.html 13 Jun 2002 08:25:03 -0000 1.5
@@ -89,39 +89,52 @@
<div class="h3">
<h3><a name="Building Myrmidon">Building Myrmidon</a></h3>
<p
- > $escape.getText( $child )
+ >
+First, you will need to fetch the Myrmidon source from CVS. The source
+can be found in the
<code
> jakarta-ant-myrmidon
</code>
- $escape.getText( $child )
+ CVS module. Details can
+be found
<a
href="http://jakarta.apache.org/site/cvsindex.html">here</a>
- $escape.getText( $child )
+ .
+
</p>
<p
- > $escape.getText( $child )
+ >
+To build Myrmidon, use the
<code
> build.xml
</code>
- $escape.getText( $child )
+ file in the root of the source
+tree. You will need to use Ant 1.5 or later, and you will need to include
junit
+and xalan in your CLASSPATH. The default target builds a minimal Myrmidon
+distribution into the
<code
> myrmidon/dist
</code>
- $escape.getText( $child )
+ directory. The distribution
+is a ready-to-run installation of Myrmidon. Use the
<code
> dist
</code>
- $escape.getText( $child )
+ target to
+build a full Myrmidon distribution, including all documentation, into the
+
<code
> myrmidon/distributions
</code>
- $escape.getText( $child )
+ directory.
+
</p>
<p
- > $escape.getText( $child )
+ > There are a number features that are not built
unless the appropriate optional Jar
+files are found in the
<code
> lib
</code>
- $escape.getText( $child )
+ directory:
</p>
<table cellpadding="3" cellspacing="2"
border="1" width="100%">
<tr class="a">
@@ -150,7 +163,8 @@
<td
>
<a
href="http://jcifs.samba.org">jcifs.samba.org</a>
- $escape.getText( $child )
+ .
+
<p
> Note: there are problems using the 0.6.1 release. Try 0.6.0
instead.
</p>
1.8 +119 -42 jakarta-ant-myrmidon/site/docs/classloader.html
Index: classloader.html
===================================================================
RCS file: /home/cvs/jakarta-ant-myrmidon/site/docs/classloader.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- classloader.html 13 Jun 2002 08:14:39 -0000 1.7
+++ classloader.html 13 Jun 2002 08:25:03 -0000 1.8
@@ -122,107 +122,184 @@
Antlib1 Antlib2 ...</pre>
</div>
<ul
- > $escape.getText( $child )
+ >
+
<li
- > $escape.getText( $child )
+ >
+ The
+
<strong
> Bootstrap
</strong>
- $escape.getText( $child )
- </li>
- $escape.getText( $child )
- <li
- > $escape.getText( $child )
+ ClassLoader contains the classes and resources
+ provided by the Java runtime.
+
+
+ </li>
+
+
+ <li
+ >
+ The
+
<strong
> System
</strong>
- $escape.getText( $child )
+ ClassLoader contains the classes that were made
accessible
+ via the CLASSPATH environment variable. If the standard
ant script was used then this
+ should only contain the classes that are used to bootstrap
the ant runtime. ie
+
+
<code
> $ANT_HOME/bin/ant-launcher.jar
</code>
- $escape.getText( $child )
+
+
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ >
+ The
+
<strong
> Common
</strong>
- $escape.getText( $child )
+ ClassLoader contains the classes and resources
+ that are made visible to both the Container and to all the
ant type libraries. This
+ contains all the classes that the Container uses to
communicate with tasks and other
+ supporting infrastructure. In particular it contains the
following APIs;
+
+
<ul
- > $escape.getText( $child )
+ >
+
<li
- > $escape.getText( $child )
+ >
+
<em
> Task API
</em>
- $escape.getText( $child )
+ - Contains the classes that are part of the API
used
+ to define tasks.
+
+
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ >
+
<em
> Container API
</em>
- $escape.getText( $child )
+ - Contains the interfaces that are required to
communicate
+ with the objects deep within the container.
+
<strong
> NOTE
</strong>
- $escape.getText( $child )
+ : These interfaces
+ are not to be used by user tasks but are made
available so that certain tasks (such
+ as <antcall/>) can be implemented. However
they are subject to change without
+ notice between between different Ant 2 versions.
+
+
</li>
- $escape.getText( $child )
+
+
</ul>
- $escape.getText( $child )
+
+
<p
- > $escape.getText( $child )
+ >
+ These classes are loaded from all the jars present in
the
+
<code
> $ANT_HOME/lib
</code>
- $escape.getText( $child )
+
+ directory.
+
+
</p>
- $escape.getText( $child )
+
+
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ >
+ The
+
<strong
> Container
</strong>
- $escape.getText( $child )
+ ClassLoader contains all the classes and resources
+ that are part of the actual implementation of the
Container. These classes are not
+ directly accessible to any Ant library or task. Some of
the classes are indirectly
+ accessible to tasks and other elements defined in the ant
libraries as they implement
+ interfaces defined in the
+
<strong
> Common
</strong>
- $escape.getText( $child )
+ ClassLoader. The classes that are
+ stored in jars in the
+
<code
> $ANT_HOME/bin/lib/
</code>
- $escape.getText( $child )
- </li>
- $escape.getText( $child )
- <li
- > $escape.getText( $child )
+ directory.
+
+
+ </li>
+
+
+ <li
+ >
+ The
+
<strong
> Shared
</strong>
- $escape.getText( $child )
+ ClassLoader contains all the classes and resources
+ that are shared across all of the ant libraries (unless
they are als needed by the
+ container in which case they should be placed int the
+
<strong
> Container
</strong>
- $escape.getText( $child )
+
+ ClassLoader). This ClassLoader is populated by all the
jars that are contained in
+ the
+
<code
> $ANT_HOME/shared/
</code>
- $escape.getText( $child )
- </li>
- $escape.getText( $child )
- <li
- > $escape.getText( $child )
+ directory.
+
+
+ </li>
+
+
+ <li
+ >
+ The
+
<strong
> AntLib
</strong>
- $escape.getText( $child )
+ ClassLoaders each contain the classes and
resources
+ that required by that particular library. Note that in
some cases a single Ant
+ Library will manifest as a single ClassLoader containing a
single jar. However
+ in some cases it is possible for one Ant Library to have
multiple jars in its
+ ClassLoader or even have multiple ClassLoaders. See XXXX
for further details.
+
+
</li>
- $escape.getText( $child )
+
+
</ul>
</div>
</div></div></td>
1.8 +102 -41 jakarta-ant-myrmidon/site/docs/configuring.html
Index: configuring.html
===================================================================
RCS file: /home/cvs/jakarta-ant-myrmidon/site/docs/configuring.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- configuring.html 13 Jun 2002 08:14:39 -0000 1.7
+++ configuring.html 13 Jun 2002 08:25:03 -0000 1.8
@@ -104,17 +104,20 @@
a java name from the xml name is as follows.
</p>
<ol
- > $escape.getText( $child )
+ >
+
<li
> Capitalize the first character of name.
</li>
- $escape.getText( $child )
+
+
<li
> Find any '-' characters in XML name and remove character and
capitalize the following letter. (And there must be a
following
letter)
</li>
- $escape.getText( $child )
+
+
</ol>
<p
> Some example mappings;
@@ -160,26 +163,38 @@
with the "}" token.
</p>
<p
- > $escape.getText( $child )
+ > Note that the value of the property may not be
a string. If the text data
+ contains text (or other property references) to either side of
the property
+ reference then it must be
<a href="converter.html">converted</a>
- $escape.getText( $child )
+ to a
+ String.
</p>
</div>
<div class="h3">
<h3><a name="Modeller">Modeller</a></h3>
<p
- > $escape.getText( $child )
+ > Currently the representation of object are
stored in a hierarchial
+ tree of
<code
> org.apache.myrmidon.api.metadata.ModelElement
</code>
- $escape.getText( $child )
+
+ objects. Each ModelElement has a number of attributes and can
have
+ either content or sub-elements.
</p>
<p
- > $escape.getText( $child )
+ > In most cases it is the responsibility of the
runtime to map
+ the ModelElement onto an object. However in some cases it may be
useful
+ for the object to get access to it's own model and for it to
explicitly
+ manage it's own configuration. In this case the object should
implement
+ the
<code
> org.apache.myrmidon.api.metadata.Modeller
</code>
- $escape.getText( $child )
+ interface
+ which will provide the mechanism for the object to receive its
own
+ representation and configure itself.
</p>
<p
> Note that the Modeller mechanism should be avoided if possible
@@ -200,30 +215,43 @@
parameter.
</p>
<p
- > $escape.getText( $child )
+ > If multiple methods were matched during the
lookup then an
+ exception is thrown indicating ambiguity. Theres is an exception
+ to this rule that allows 2 methods to be matched if one of the
+ methods takes a
<code
> java.lang.String
</code>
- $escape.getText( $child )
+ parameter. The method
+ that has the
<code
> java.lang.String
</code>
- $escape.getText( $child )
+ parameter is ignored and
+ the other method would be chosen. This exception is allowed as
it is
+ common practice for a task to evolve from String parameters to
more
+ strongly typed parameters.
</p>
<p
- > $escape.getText( $child )
+ > The resolved text data of the attribute must be
+
<a href="converter.html">converted</a>
- $escape.getText( $child )
+ to the type of the matched
+ methods parameter. For example, if the "setWorld"
method
+ took a parameter of type
<code
> java.io.File
</code>
- $escape.getText( $child )
+ then the resolved
+ text data must be converted into a
<code
> java.io.File
</code>
- $escape.getText( $child )
+ . The
+ conversion is done by the Converter architecture that is more
fully
+ described in the
<a href="converter.html">Converter
HOWTO</a>
- $escape.getText( $child )
+ .
</p>
<p
> After the value is converted to the correct type the method
is
@@ -233,28 +261,37 @@
<div class="h3">
<h3><a name="Content">Content</a></h3>
<p
- > $escape.getText( $child )
+ > The XML representation of object can have
either have nested
+ elements or nested text (content) but not both. To add the
content
+ to an object a method named "content" with one
parameter is looked
+ up. The resolved text data for content is then
+
<a href="converter.html">converted</a>
- $escape.getText( $child )
+ to the type of the parameter
+ and passed in via the method.
</p>
</div>
<div class="h3">
<h3><a name="Element">Element</a></h3>
<p
- > $escape.getText( $child )
+ > Mapping an ModelElement onto a java object is a
series of steps.
+ If the ModelElement name ends with the string "-ref"
then
+ it is treated as a reference element - see the
<em
> Referrenced
Elements
</em>
- $escape.getText( $child )
+ section. Otherwise, the element is first
attempted to
+ be mapped as a
<em
> Named Element
</em>
- $escape.getText( $child )
+ and if no match is found via
+ that method it tries to treat the element as a
<em
> Typed Element
</em>
- $escape.getText( $child )
+ .
</p>
<div class="h4">
<h4><a name="Named Elements">Named Elements</a></h4>
@@ -277,25 +314,30 @@
satisfied, then an exception is thrown.
</p>
<ul
- > $escape.getText( $child )
+ >
+
<li
- > $escape.getText( $child )
+ > The parameters type is
<code
> org.apache.myrmidon.api.metadata.ModelElement
</code>
</li>
- $escape.getText( $child )
+
+
<li
> The parameters type is a concrete class
</li>
- $escape.getText( $child )
+
+
</ul>
<p
- > $escape.getText( $child )
+ > 1. If the parameter has a type of
<code
> org.apache.myrmidon.api.metadata.ModelElement
</code>
- $escape.getText( $child )
+
+ then the un-modified model representation of element is passed
to object by invoking
+ the adder method.
</p>
<p
> 2. If the parameters type is concrete then an instance of the
parameter is
@@ -316,11 +358,15 @@
The value of this property is retrieved from the TaskContext.
</p>
<p
- > $escape.getText( $child )
+ > Like with
<em
> Named Elements
</em>
- $escape.getText( $child )
+ the name of the element (minus
+ the "-ref" part) is mapped to a java name and prefixed
with the string
+ "add". The resulting string is then used to look up a
+ method with a single parameter. If multiple methods were matched
during the lookup then an
+ exception is thrown indicating ambiguity.
</p>
<p
> The value retrieved from the TaskContext is then converted to
the type
@@ -343,40 +389,55 @@
name of the adder to call.
</p>
<p
- > $escape.getText( $child )
+ > For example, you may wish to allow a task to
add arbitrary instances of the
+ Condition role to a task. So instead of adding methods such as
+
<code
> addAnd(AndCondition)
</code>
- $escape.getText( $child )
+ ,
<code
> addOr(OrCondition)
</code>
- $escape.getText( $child )
+ and
+
<code
> addXor(XorCondition)
</code>
- $escape.getText( $child )
+ you can instead add a single method
+
<code
> add(Condition)
</code>
- $escape.getText( $child )
+ . This vastly simplifies the amount of work
required
+ to write tasks that take conditions. More importantly it allows
end-users to
+ extend the number of elements selected by task. For instance if
the user wanted
+ a "nand" condition they could write the Nand type use
it in their build
+ file. For a discussion on roles and types see the
<a href="types.html">Types
HOWTO</a>
- $escape.getText( $child )
+ .
</p>
<p
- > $escape.getText( $child )
+ > To use a Typed adder there must be a single
method named "add" that
+ has a single parameter. The parameter
<em
> MUST
</em>
- $escape.getText( $child )
+ be an abstract interface and
+ must be registered as a role. The name of the element is then
used to lookup the
+ a type in the TypeManager with a role matching the interface
name.
</p>
<p
- > $escape.getText( $child )
+ > For example if an element named
"nand" was added to an object that had
+ an adder with the signature
<code
> void add( Condition condition )
</code>
- $escape.getText( $child )
+ then
+ the type named "nand" in the role
"Condition" would be looked up.
+ An instance of the type would then be created using the default
constructor and the
+ created object would be configured and then adder to object
using adder.
</p>
</div>
</div>
1.11 +60 -28 jakarta-ant-myrmidon/site/docs/differences.html
Index: differences.html
===================================================================
RCS file: /home/cvs/jakarta-ant-myrmidon/site/docs/differences.html,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- differences.html 13 Jun 2002 08:14:39 -0000 1.10
+++ differences.html 13 Jun 2002 08:25:03 -0000 1.11
@@ -92,7 +92,8 @@
> Some of the differences between Ant 1.x and Myrmidon:
</p>
<ul
- > $escape.getText( $child )
+ >
+
<li
>
Dependencies on targets in other build files are now
@@ -107,7 +108,8 @@
not be re-evaluated in same workspace.
</li>
- $escape.getText( $child )
+
+
<li
>
As well as the depends attribute of the Target there is
@@ -121,7 +123,8 @@
this usecase.
</li>
- $escape.getText( $child )
+
+
<li
>
if and unless attributes have been removed from targets.
@@ -131,81 +134,110 @@
before the if or unless were evaluated.
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ >
+ Groups of tasks can be assembled into self-describing
+
<i
> antlib
</i>
- $escape.getText( $child )
+ task libraries. This makes it very easy to
+ distribute and install tasks and data-types.
+
</li>
- $escape.getText( $child )
+
+
<li
> Properties and data type references now share the same
namespace.
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ >
+ Changes to task and data-type API:
+
<ul
- > $escape.getText( $child )
+ >
+
<li
> An interface based API, through which a task interacts with
the
task engine, and the services it provides.
</li>
- $escape.getText( $child )
+
+
<li
> A well-defined object lifecycle.
</li>
- $escape.getText( $child )
+
+
<li
> Polymorphic types are supported when objects are configured.
</li>
- $escape.getText( $child )
+
+
<li
> Reference handling is handled automatically when objects are
configured.
</li>
- $escape.getText( $child )
+
+
</ul>
- $escape.getText( $child )
+
+
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ > A set of well-defined services and APIs have
been introduced, to allow
+ tasks to do their work without depending on other tasks:
+
<ul
- > $escape.getText( $child )
+ >
+
<li
> Execute external commands.
</li>
- $escape.getText( $child )
+
+
<li
> Execute other tasks.
</li>
- $escape.getText( $child )
+
+
<li
> Manage ClassLoaders and Class-paths.
</li>
- $escape.getText( $child )
+
+
<li
> Virtual file system (in progress).
</li>
- $escape.getText( $child )
+
+
<li
> Execute Java applications (in progress).
</li>
- $escape.getText( $child )
+
+
<li
> ...
</li>
- $escape.getText( $child )
+
+
</ul>
- $escape.getText( $child )
+
+
</li>
- $escape.getText( $child )
+
+
</ul>
<p
- > $escape.getText( $child )
+ > There are plenty more features planned. You
can read about them
+
<a href="todo.html">here</a>
- $escape.getText( $child )
+ .
+
</p>
</div>
</div></div></td>
1.8 +20 -12 jakarta-ant-myrmidon/site/docs/getinvolved.html
Index: getinvolved.html
===================================================================
RCS file: /home/cvs/jakarta-ant-myrmidon/site/docs/getinvolved.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- getinvolved.html 13 Jun 2002 08:14:39 -0000 1.7
+++ getinvolved.html 13 Jun 2002 08:25:03 -0000 1.8
@@ -89,33 +89,41 @@
<div class="h3">
<h3><a name="Get Involved">Get Involved</a></h3>
<p
- > $escape.getText( $child )
+ > There are plenty of things you can do to help
out with Myrmidon. The
+
<a href="todo.html">Todo list </a>
- $escape.getText( $child )
+ describes items which still need to
+ be done. Of course, since this is an open-source project,
there's
+ plenty of scope for experimentation, and you can pretty much
make up
+ your own items to work on.
</p>
<p
> Some things that are worth reading if you do want to get
involved:
</p>
<ul
- > $escape.getText( $child )
+ >
+
<li
- > $escape.getText( $child )
+ > The
<a
href="http://jakarta.apache.org/ant/ant2/">Ant 2</a>
- $escape.getText( $child )
+ goals and requirements.
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ > The
<a
href="http://jakarta.apache.org/ant/ant2/actionlist.html">Ant 1.9 Action
List</a>
- $escape.getText( $child )
+ .
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ > The Jakarta Project's
<a
href="http://jakarta.apache.org/site/getinvolved.html">Get Involved</a>
- $escape.getText( $child )
+ page.
</li>
- $escape.getText( $child )
+
+
</ul>
<p
> There is no Ant 2 or Myrmidon mailing list yet, so direct any
questions
1.8 +28 -12 jakarta-ant-myrmidon/site/docs/index.html
Index: index.html
===================================================================
RCS file: /home/cvs/jakarta-ant-myrmidon/site/docs/index.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- index.html 13 Jun 2002 08:14:39 -0000 1.7
+++ index.html 13 Jun 2002 08:25:04 -0000 1.8
@@ -116,37 +116,45 @@
product. In particular it aims to;
</p>
<ul
- > $escape.getText( $child )
+ >
+
<li
> Remove ambiguities and points of confusion for build file
writers.
</li>
- $escape.getText( $child )
+
+
<li
> Ease deployment and management of 3rd party tasks and
dependencies.
</li>
- $escape.getText( $child )
+
+
<li
> Simplify development of tasks by task-writers.
</li>
- $escape.getText( $child )
+
+
<li
> Enable ad-hoc "tasks" to be written inside build file,
probably using well known scripting languages such as python
and
javascript. (Possible in Ant 1.x but prohibitively
difficult).
</li>
- $escape.getText( $child )
+
+
<li
> Integrate templating technologies such as XSLT, velocity etc
to enable development of reusable build file elements.
</li>
- $escape.getText( $child )
+
+
</ul>
<p
- > $escape.getText( $child )
+ > You can read more about the goals of Ant 2
+
<a
href="http://jakarta.apache.org/ant/ant2/">here</a>
- $escape.getText( $child )
+ .
+
</p>
<p
> Myrmidon was specifically designed as both a tool and as
@@ -161,13 +169,20 @@
<div class="h3">
<h3><a name="A Rose by any other name ...">A Rose by any other
name ...</a></h3>
<p
- > $escape.getText( $child )
+ >
+ The name Myrmidon is a derivation of a mythological name for
some ants that were turned
+ into soldiers by the god Zeus. It came to mean "a
subordinate who executes orders
+ unquestioningly" which seemed suitable for a task
execution/build tool. A more complete
+ description stolen from
+
<a
href="http://bondi-blue.parlez.com/previous_words/myrmidon.txt">
http://bondi-blue.parlez.com/previous_words/myrmidon.txt</a>
- $escape.getText( $child )
+ .
+
</p>
<quote
- > $escape.getText( $child )
+ >
+
<i
> The appellation Myrmidon was derived from the Greek word
"myrmex",
meaning ant. According to Greek mythology, the Myrmidons
were
@@ -179,7 +194,8 @@
Myrmidons. See "The Iliad" for Homers' account of the
Myrmidons
during the Trojan War.
</i>
- $escape.getText( $child )
+
+
</quote>
</div>
</div></div></td>
1.8 +67 -19 jakarta-ant-myrmidon/site/docs/librarys.html
Index: librarys.html
===================================================================
RCS file: /home/cvs/jakarta-ant-myrmidon/site/docs/librarys.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- librarys.html 13 Jun 2002 08:14:39 -0000 1.7
+++ librarys.html 13 Jun 2002 08:25:04 -0000 1.8
@@ -96,28 +96,49 @@
deployments) will be termed antlibs.
</p>
<p
- > $escape.getText( $child )
+ > Ant libraries can be packaged and signed into a
ANt Type Library
+ format (.atl) using the standard Java Archive tools. (For
details on
+ the .jar file format see the
+
+
<a
href="http://java.sun.com/j2se/1.3/docs/guide/jar/index.html">
Jar Specification</a>
- $escape.getText( $child )
+ .
+
</p>
<p
- > $escape.getText( $child )
+ > When packaged into such a form the META-INF/
directory contains
+ ant specific descriptors in addition to the standard Jar manifest
+ and other descriptor files. The archive will also contain the
+
+
<code
> .class
</code>
- $escape.getText( $child )
+ files for all the tasks and other types the
+ library defines. It may also contain additional resources that
can
+ be referenced in the build file (an example being DTDs).
+
</p>
<p
- > $escape.getText( $child )
+ > The library may also need access to other
libraries or resources
+ to perform its job. For instance, if the task loaded an XML
document
+ and then processed said document using the
+
<em
> Trax API
</em>
- $escape.getText( $child )
+ then
+ the Ant library needs to have access to the
+
<em
> Trax API
</em>
- $escape.getText( $child )
+ and an
+ implementation of the API. The Antlib mechanism thus uses the
standard
+ "Optional Package" Specification to declare
dependencies on other
+ libraries.
+
</p>
<p
> The libraries will usually be installed in standard locations
that
@@ -139,19 +160,26 @@
<div class="h4">
<h4><a name="Class and Resource Files">Class and Resource
Files</a></h4>
<p
- > $escape.getText( $child )
+ > The class and resources files should be stored
as in standard jars. The
+ root directory being the base via which code and resources
are loaded. So
+ the
+
<code
> .class
</code>
- $escape.getText( $child )
+ file for the Java class
+
<code
> com.biz.tasks.Mytask
</code>
- $escape.getText( $child )
+
+ would be stored in
+
<code
> /com/biz/tasks/Mytask.class
</code>
- $escape.getText( $child )
+
+
</p>
</div>
<div class="h4">
@@ -163,26 +191,39 @@
external libraries.
</p>
<p
- > $escape.getText( $child )
+ > Ant 2 uses the "Optional Package"
mechanism. Prior to JDK1.3, an "Optional
+ Package" was known as an
+
<em
> Extension
</em>
- $escape.getText( $child )
+ . The specification for this
+ mechanism is available in the JDK1.3 documentation in the
directory
+
+
<code
> $JDK_HOME/docs/guide/extensions/versioning.html
</code>
- $escape.getText( $child )
+ . Alternatively
+ it is available online at
+
+
<a
href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>
- $escape.getText( $child )
+ .
+
</p>
<p
- > $escape.getText( $child )
+ > This mechanism was adopted as it is an
established standard. The standard
+ is also begining to be adopted by other specifications such
as the
+
<em
> Servlet
2.3 API
</em>
- $escape.getText( $child )
+ . Thus we are likely to see an increase of jars
using this mechanism
+ to specify dependencies.
+
</p>
<p
> The "Optional Package" mechanism allows jars to specify
dependencies on other
@@ -251,11 +292,18 @@
to implementing specification will be different.
</p>
<p
- > $escape.getText( $child )
+ > In the current architecture all of the
"Optional Packages" are assumed to
+ be stored in the
+
<code
> $ANT_HOME/ext
</code>
- $escape.getText( $child )
+ directory. The runtime will scan
+ this directory for jars and add all the "optional
Packages" found into a
+ registry. This registry will be used by the library loading
mechanism to locate
+ all the "Optional Packages". The user is able to
specify an alternative directory
+ or add a new directory to search on the commandline.
+
</p>
<p
> When the container attempts to load an ant library it will
also try to load
1.7 +79 -42 jakarta-ant-myrmidon/site/docs/project-descriptor.html
Index: project-descriptor.html
===================================================================
RCS file: /home/cvs/jakarta-ant-myrmidon/site/docs/project-descriptor.html,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- project-descriptor.html 13 Jun 2002 08:14:39 -0000 1.6
+++ project-descriptor.html 13 Jun 2002 08:25:04 -0000 1.7
@@ -97,15 +97,18 @@
</p>
<p
- > $escape.getText( $child )
+ > The root element of the project descriptor must
be a
+
<code
> <project>
</code>
- $escape.getText( $child )
+ element. The
<code
> <project>
</code>
- $escape.getText( $child )
+
+ element may contain the following elements:
+
</p>
<table cellpadding="3" cellspacing="2"
border="1" width="100%">
<tr class="a">
@@ -161,11 +164,13 @@
</td>
<td
>
- $escape.getText( $child )
+ The project classpath, used for compiling the
project
+ Jars, unit tests, and additional Jars. This is an Ant
+
<code
> <path>
</code>
- $escape.getText( $child )
+ data-type.
</td>
<td
>
@@ -179,11 +184,13 @@
</td>
<td
>
- $escape.getText( $child )
+ The include and exclude patterns to use when
compiling the
+ project Jars, unit tests, and additional Jars. This is an
+ Ant
<code
> <patternset>
</code>
- $escape.getText( $child )
+ data-type.
</td>
<td
>
@@ -272,11 +279,12 @@
</td>
<td
>
- $escape.getText( $child )
+ A global build property. This is an Ant
+
<code
> <property>
</code>
- $escape.getText( $child )
+ task.
</td>
<td
>
@@ -317,23 +325,29 @@
<div class="h4">
<h4><a name="build">Build Definition</a></h4>
<p
- > $escape.getText( $child )
+ > The
<code
> <build>
</code>
- $escape.getText( $child )
+ and
<code
> <additional-build>
</code>
- $escape.getText( $child )
+
+ elements describes how to compile and assemble a set of Jar
files.
+ The
<code
> <build>
</code>
- $escape.getText( $child )
+ element describes the Jar files
+ included as part of the project's output. The
+
<code
> <additional-build>
</code>
- $escape.getText( $child )
+ describes Jar files that are
+ not included in the project's output, such as test files.
+ These elements may contain the following nested elements:
</p>
<table cellpadding="3" cellspacing="2" border="1"
width="100%">
<tr class="a">
@@ -357,19 +371,25 @@
</td>
<td
>
- $escape.getText( $child )
+ The classpath to use for compiling the Jars.
This is
+ an Ant
<code
> <path>
</code>
- $escape.getText( $child )
+ data-type. This classpath
+ is appended to the project classpath. Note that the Ant
+ runtime is not included in the compile classpath. To
+ include the Ant runtime, add an empty
+
<code
> <ant-runtime>
</code>
- $escape.getText( $child )
+ element to this
+
<code
> <classpath>
</code>
- $escape.getText( $child )
+ element.
</td>
<td
>
@@ -383,11 +403,13 @@
</td>
<td
>
- $escape.getText( $child )
+ The patternset to use when compiling the
project source.
+ This is an Ant
<code
> <patternset>
</code>
- $escape.getText( $child )
+ data-type.
+ This patternset is added to the project compile
patternset.
</td>
<td
>
@@ -415,11 +437,12 @@
</td>
<td
>
- $escape.getText( $child )
+ Defines the directory to place the assembled
Jar files
+ (
<code
> <additional-build>
</code>
- $escape.getText( $child )
+ only).
</td>
<td
>
@@ -433,11 +456,14 @@
</td>
<td
>
- $escape.getText( $child )
+ Additional Ant tasks to perform before
compiling
+ the source. This can be used, for example, to check for
+ the availability of various libraries (
<code
> <build>
</code>
- $escape.getText( $child )
+
+ only).
</td>
<td
>
@@ -463,15 +489,17 @@
<div class="h4">
<h4><a name="unittest">Unit Test Definition</a></h4>
<p
- > $escape.getText( $child )
+ > The
<code
> <unitTest>
</code>
- $escape.getText( $child )
+ element defines how to compile
+ and execute the project's unit tests. The
<code
> <unitTest>
</code>
- $escape.getText( $child )
+
+ element may contain the following nested elements:
</p>
<table cellpadding="3" cellspacing="2" border="1"
width="100%">
<tr class="a">
@@ -495,11 +523,13 @@
</td>
<td
>
- $escape.getText( $child )
+ The classpath to use for compiling and
executing the
+ project unit tests. This is appended to the project
+ classpath. This is an Ant
<code
> <path>
</code>
- $escape.getText( $child )
+ data-type.
</td>
<td
>
@@ -513,11 +543,13 @@
</td>
<td
>
- $escape.getText( $child )
+ The patternset to use when compiling the unit
tests.
+ This is an Ant
<code
> <patternset>
</code>
- $escape.getText( $child )
+ . This
+ is combined with the compile patternset.
</td>
<td
>
@@ -575,11 +607,12 @@
</td>
<td
>
- $escape.getText( $child )
+ The patternset to use to select the unit tests
to execute.
+ This is an Ant
<code
> <patternset>
</code>
- $escape.getText( $child )
+ datatype.
</td>
<td
>
@@ -608,15 +641,17 @@
<div class="h4">
<h4><a name="jar">Jar Definition</a></h4>
<p
- > $escape.getText( $child )
+ > A
<code
> <jar>
</code>
- $escape.getText( $child )
+ element defines a jar file produced by
+ the build. A manifest and antlib descriptors are generated for
the Jar.
+ A
<code
> <jar>
</code>
- $escape.getText( $child )
+ element may take the following nested elements:
</p>
<table cellpadding="3" cellspacing="2" border="1"
width="100%">
<tr class="a">
@@ -684,11 +719,12 @@
</td>
<td
>
- $escape.getText( $child )
+ Additional files to include in the Jar. This
+ is an Ant
<code
> <fileset>
</code>
- $escape.getText( $child )
+ datatype.
</td>
<td
>
@@ -732,11 +768,11 @@
</td>
<td
>
- $escape.getText( $child )
+ See the Ant
<code
> <jar>
</code>
- $escape.getText( $child )
+ task.
</td>
<td
>
@@ -765,11 +801,12 @@
</td>
<td
>
- $escape.getText( $child )
+ Specifies which classes to include in the Jar.
+ This is an Ant
<code
> <patternset>
</code>
- $escape.getText( $child )
+ .
</td>
<td
>
1.6 +31 -16 jakarta-ant-myrmidon/site/docs/running.html
Index: running.html
===================================================================
RCS file: /home/cvs/jakarta-ant-myrmidon/site/docs/running.html,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- running.html 13 Jun 2002 08:14:39 -0000 1.5
+++ running.html 13 Jun 2002 08:25:04 -0000 1.6
@@ -89,15 +89,18 @@
<div class="h3">
<h3><a name="Installing Myrmidon">Installing Myrmidon</a></h3>
<p
- > $escape.getText( $child )
+ > Installing Myrmidon is easy. Simply extract
the contents of the
+ distribution zip or tar file, to whichever install directory you like.
You
+ should also add the distribution's
<code
> bin
</code>
- $escape.getText( $child )
+ directory to the
+
<code
> PATH
</code>
- $escape.getText( $child )
+ environment variable.
</p>
</div>
<div class="h3">
@@ -110,15 +113,19 @@
<div class="h4">
<h4><a name="Launcher Script">Launcher Script</a></h4>
<p
- > $escape.getText( $child )
+ >
+ On Windows and Unix platforms, you can use the
<code
> ant
</code>
- $escape.getText( $child )
+ script
+ in the distribution's
<code
> bin
</code>
- $escape.getText( $child )
+ directory. The following environment
+ variables can be used, but are not required (except on Windows 9x - see
below).
+
</p>
<p
>
@@ -153,11 +160,11 @@
</td>
<td
>
- $escape.getText( $child )
+ The command to use to start the JVM. Defaults
to
<code
> java
</code>
- $escape.getText( $child )
+ .
</td>
</tr>
<tr class="b">
@@ -188,37 +195,45 @@
</pre>
</div>
<p
- > $escape.getText( $child )
+ > When started, Myrmidon looks for a project file
called
<code
> build.ant
</code>
- $escape.getText( $child )
+
+ in the current directory. A different project file can be specified
using the
+
<code
> -f
</code>
- $escape.getText( $child )
+ command-line option. Myrmidon executes the
targets that are
+ listed on the command-line, or the default target if none is given. For
+ example, the following command executes targets
<code
> clean
</code>
- $escape.getText( $child )
+ and
+
<code
> build
</code>
- $escape.getText( $child )
+ from project file
<code
> my-project.xml
</code>
- $escape.getText( $child )
+ :
</p>
<pre>
prompt> ant -f my-project.xml clean build
</pre>
<p
- > $escape.getText( $child )
+ >
+ Run Myrmidon with the
<code
> -h
</code>
- $escape.getText( $child )
+ command-line option for a list of
+ the command-line options that are available.
+
</p>
</div>
</div></div></td>
1.7 +3 -2 jakarta-ant-myrmidon/site/docs/subprojects.html
Index: subprojects.html
===================================================================
RCS file: /home/cvs/jakarta-ant-myrmidon/site/docs/subprojects.html,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- subprojects.html 13 Jun 2002 08:14:39 -0000 1.6
+++ subprojects.html 13 Jun 2002 08:25:04 -0000 1.7
@@ -178,11 +178,12 @@
</td>
<td
>
- $escape.getText( $child )
+ The tasks libraries, or
<i
> antlibs
</i>
- $escape.getText( $child )
+ , which contain the
+ standard tasks and data-types for the Myrmidon distribution.
</td>
</tr>
<tr class="b">
1.8 +35 -15 jakarta-ant-myrmidon/site/docs/task.html
Index: task.html
===================================================================
RCS file: /home/cvs/jakarta-ant-myrmidon/site/docs/task.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- task.html 13 Jun 2002 08:14:39 -0000 1.7
+++ task.html 13 Jun 2002 08:25:04 -0000 1.8
@@ -94,41 +94,58 @@
formula.
</p>
<ol
- > $escape.getText( $child )
+ >
+
<li
- > $escape.getText( $child )
+ >
+ Create a Java class that extends
+
<code
> org.apache.myrmidon.api.AbstractTask
</code>
- $escape.getText( $child )
+
+
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ >
+ For each attribute, write a setter method. The setter method
+ must be a public void method that takes a single argument. The name
+ of the method must begin with "set", followed by the attribute
name, with
+ the first character of the name in uppercase, and the rest in lowercase.
+ The type of the attribute can be:
+
<ul
- > $escape.getText( $child )
+ >
+
<li
> String
</li>
- $escape.getText( $child )
+
+
<li
>
Any primitive type - they are converted for you from their
String-representation in the buildfile
</li>
- $escape.getText( $child )
+
+
<li
>
File - the string representation will be interpreted relative to
the project's basedir.
</li>
- $escape.getText( $child )
+
+
</ul>
- $escape.getText( $child )
+
+
</li>
- $escape.getText( $child )
+
+
<li
>
For each nested element create a public void method that takes a single
@@ -139,7 +156,8 @@
task is configured (via setters and adders) and then added to the task.
</li>
- $escape.getText( $child )
+
+
<li
>
Write a public void method named "execute" with no arguments that
@@ -147,7 +165,8 @@
actual work of the task.
</li>
- $escape.getText( $child )
+
+
</ol>
<div class="h4">
<h4><a name="A Basic Example">A Basic Example</a></h4>
@@ -181,11 +200,12 @@
}</pre>
</div>
<p
- > $escape.getText( $child )
+ > To use this task you
<em
> could
</em>
- $escape.getText( $child )
+ create a library but instead we will
+just use <taskdef> to define the task. An example usage would be;
</p>
<div id="source">
<pre><?xml version="1.0"?>
1.9 +409 -183 jakarta-ant-myrmidon/site/docs/todo.html
Index: todo.html
===================================================================
RCS file: /home/cvs/jakarta-ant-myrmidon/site/docs/todo.html,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- todo.html 13 Jun 2002 08:14:39 -0000 1.8
+++ todo.html 13 Jun 2002 08:25:04 -0000 1.9
@@ -144,23 +144,32 @@
</p>
<p
- > $escape.getText( $child )
+ >
+ Some tasks do no dependency checking and will
recompile/transform/etc everytime.
+ Others may perform a simple dependency checking (ie if
source file is newer than
+ destination file then recompile). Ideally a dependency
system would actually
+ calculate the dependencies correctly. So we need to have
some mechanism to determine
+ that
<code
> foo.c
</code>
- $escape.getText( $child )
+ actually depends upon
<code
> foo.h
</code>
- $escape.getText( $child )
+ ,
<code
> bar.h
</code>
- $escape.getText( $child )
+
+ and
<code
> baz.h
</code>
- $escape.getText( $child )
+ . As this information is particular to each
different task
+ we need to allow tasks to implement this behaviour.
Possibly by supplying an interface
+ of the form;
+
</p>
<div id="source">
<pre>public interface DependencyGenerator
@@ -169,23 +178,32 @@
}</pre>
</div>
<p
- > $escape.getText( $child )
+ >
+ Generating the dependency information is a costly
operation and thus we do not want to
+ be doing it everytime you run ant. We want to generate it
on the initial build and then
+ persist somewhere. Everytime a file is out of date, it's
dependency information would
+ be regenerated and stored in the dependency cache. Ideally
this cache would also store the
+ above mentioned coloring information. So the entry for
<code
> foo.c
</code>
- $escape.getText( $child )
+ may declare that
+ it is dependent upon
<code
> foo.h
</code>
- $escape.getText( $child )
+ ,
<code
> bar.h
</code>
- $escape.getText( $child )
+ and
<code
> baz.h
</code>
- $escape.getText( $child )
+ , aswell
+ as being compiled with -O2 flag. If any of the
dependencies have changed or are out of date
+ then foo.c would need to be recompiled.
+
</p>
<p
>
@@ -221,27 +239,37 @@
<div class="h4">
<h4><a name="Coloring API">Coloring API</a></h4>
<p
- > $escape.getText( $child )
+ >
+ When you execute a task such as "javac" there is
two types of dependency information
+ that is important to analyze before we determine if we
need to recompile a file. Say
+ we are compiling
<code
> Foo.java
</code>
- $escape.getText( $child )
+ , it may depend on the
<code
> Bar.java
</code>
- $escape.getText( $child )
+
+ file. We call this "structural" dependency
information - the structure of the source file
+ determines what other files it depend upon. However there
is also "environmental"
+ dependency information. For instance if the
<code
> Foo.java
</code>
- $escape.getText( $child )
+ file was compiled with
+
<code
> debug="true"
</code>
- $escape.getText( $child )
+ last run and this time needs to be compiled with
+
<code
> debug="false"
</code>
- $escape.getText( $child )
+ then it is out of date and needs to be
recompiled. We call this
+ "environmental" dependency information
"coloring".
+
</p>
<p
>
@@ -284,26 +312,34 @@
<div class="h4">
<h4><a name="Rethink Notification/Event scheme">Rethink
Notification/Event scheme</a></h4>
<p
- > $escape.getText( $child )
+ > We need to rethink the whole notificaiton
scheme. Should tasks be able to
+ raise events? Probably as long as we have
<em
> ContainerTasks
</em>
- $escape.getText( $child )
+ . Should tasks
+ be able to query state of run? ie Can a task request
"are we paused?" or "are we
+ stopped?" ? Probably as that way long running tasks are
given the opportunity
+ to be gracefully halted by the end users (primarily aimed at
IDE vendors here).
</p>
<ul
- > $escape.getText( $child )
+ >
+
<li
> Add verbosity level to TaskEvent.
</li>
- $escape.getText( $child )
+
+
<li
> Fire taskFinished() events on task failure.
</li>
- $escape.getText( $child )
+
+
<li
> Get target finished and project finished events working.
</li>
- $escape.getText( $child )
+
+
</ul>
</div>
<div class="h4">
@@ -409,16 +445,19 @@
following path types.
</p>
<ul
- > $escape.getText( $child )
+ >
+
<li
> ant.type.path: path that is used to search for the type
libraries
</li>
- $escape.getText( $child )
+
+
<li
> ant.ext.path: path that is used to search for "Optional
Packages"
or extensions.
</li>
- $escape.getText( $child )
+
+
</ul>
<p
>
@@ -428,37 +467,45 @@
</p>
<ul
- > $escape.getText( $child )
+ >
+
<li
> Unix Per-user: ${user.home}/.ant/lib, ${user.home}/.ant/ext
</li>
- $escape.getText( $child )
+
+
<li
> Windows Per-user: ${user.home}/ant/lib, ${user.home}/ant/ext
</li>
- $escape.getText( $child )
+
+
<li
> MacOSX Per-user: ${user.home}/Library/Ant/lib,
${user.home}/Library/Ant/ext
</li>
- $escape.getText( $child )
+
+
<li
> Unix System-wide: /opt/ant/lib, /opt/ant/ext
</li>
- $escape.getText( $child )
+
+
<li
> Unix System-wide: /usr/local/ant/lib, /usr/local/ant/ext
</li>
- $escape.getText( $child )
+
+
<li
> Windows System-wide: %SYS_DRIVE%/Program Files/ant/lib,
%SYS_DRIVE%/Program Files/ant/ext
</li>
- $escape.getText( $child )
+
+
<li
> MacOSX System-wide: /Library/Ant/lib, /Library/Ant/ant/ext
</li>
- $escape.getText( $child )
+
+
</ul>
</div>
<div class="h4">
@@ -468,58 +515,76 @@
</p>
<ul
- > $escape.getText( $child )
+ >
+
<li
> Update ant.jar and optional.jar to ant1.5 beta.
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ > Get a version of
<code
> <antcall>
</code>
- $escape.getText( $child )
+ working.
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ >
+ Provide hooks between Ant 1 references and Myrmidon
properties.
+ May use converters for adapting Ant 2 objects (like Ant 2
+
<code
> <path>
</code>
- $escape.getText( $child )
+ or
<code
> <fileset>
</code>
- $escape.getText( $child )
+ )
+ as Ant 1 types.
+
</li>
- $escape.getText( $child )
+
+
<li
> Add an adaptor to convert an Ant 1 BuildListener to a
TaskListener.
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ >
+ Missing tests:
+
<ul
- > $escape.getText( $child )
+ >
+
<li
> Make sure properties are shared between Ant 1 and Myrmidon
tasks.
</li>
- $escape.getText( $child )
+
+
</ul>
- $escape.getText( $child )
+
+
</li>
- $escape.getText( $child )
+
+
<li
> Get GUMP runs going using Myrmidon.
</li>
- $escape.getText( $child )
+
+
<li
> Add protected accessors for get/set/list properties in
Ant 1 Project, to minimise the amount of code
duplication in
Ant1CompatProject.
</li>
- $escape.getText( $child )
+
+
</ul>
</div>
<div class="h4">
@@ -528,53 +593,64 @@
> The VFS needs plenty of work:
</p>
<ul
- > $escape.getText( $child )
+ >
+
<li
> Move files/folders.
</li>
- $escape.getText( $child )
+
+
<li
> Recursive folders copy.
</li>
- $escape.getText( $child )
+
+
<li
> Search through a file hierarchy, using Ant-style wildcards.
</li>
- $escape.getText( $child )
+
+
<li
> Search through a file hierarchy, using a Selector interface.
</li>
- $escape.getText( $child )
+
+
<li
> The in-memory caching mechanism is pretty rudimentary at this
stage.
It needs work to make it size capped. In addition, some
mechanism needs
to be provided to release and refresh cached info.
</li>
- $escape.getText( $child )
+
+
<li
> Convert files/folders into local files, for handing off
to external commands, or legacy tasks.
</li>
- $escape.getText( $child )
+
+
<li
> Refactor the replication mechanism out of
ZipFileSystemProvder,
and make more general pluggable.
</li>
- $escape.getText( $child )
+
+
<li
> Capabilities discovery.
</li>
- $escape.getText( $child )
+
+
<li
> Attributes and attribute schema.
</li>
- $escape.getText( $child )
+
+
<li
> Handle file canonicalisation better (for cases like
case-insensitive
file systems, symbolic links, name encoding, etc).
</li>
- $escape.getText( $child )
+
+
<li
> File system layering. That is, the ability for a file system
to
sit on top of another file system, or a file from
another file system
@@ -582,186 +658,270 @@
systems).
</li>
- $escape.getText( $child )
+
+
</ul>
</div>
<div class="h4">
<h4><a name="File Data-Types and Tasks">File Data-Types and
Tasks</a></h4>
<p
- > $escape.getText( $child )
+ > The file data-types, such as
+
<code
> <fileset>
</code>
- $escape.getText( $child )
+ and
+
+
<code
> <path>
</code>
- $escape.getText( $child )
+ , are some of the most widely used parts of Ant
1.x.
+ Unfortunately, they aren't particularly extensible.
+
</p>
<ul
- > $escape.getText( $child )
+ >
+
<li
- > $escape.getText( $child )
+ > Redesign the file data-types, replacing them
with an interface-based
+ API, plus a set of implementations. The API should use
the VFS file
+
+
<code
> FileObject
</code>
- $escape.getText( $child )
+ , rather than
+
<code
> java.io.File
</code>
- $escape.getText( $child )
+ .
+ This process has started, in the
+
<code
> antlib.vfile
</code>
- $escape.getText( $child )
+ package.
+
+
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ > File Selectors:
+
+
<ul
- > $escape.getText( $child )
+ >
+
<li
- > $escape.getText( $child )
+ > Change
+
<code
> AbstractNameFileSelector
</code>
- $escape.getText( $child )
+ to use Ant 1 style patterns
+ matches, rather than Globs patterns.
+
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ > Add 'defaultexcludes' to
+
<code
> DefaultFileSet
</code>
- $escape.getText( $child )
+ . Also add a
+ file selector implementation that matches
everything except the default
+ excludes.
+
</li>
- $escape.getText( $child )
+
+
<li
> Add a name selector that loads patterns from a file.
</li>
- $escape.getText( $child )
+
+
<li
> Add more selector implementations: size and last-modified
comparisons,
checksum comparison, byte-wise content
comparison.
</li>
- $escape.getText( $child )
+
+
</ul>
- $escape.getText( $child )
+
+
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ > File conditions:
+
+
<ul
- > $escape.getText( $child )
+ >
+
<li
> Add more condition implementations that perform checks on
files.
One that searches a path for a file would be
useful.
</li>
- $escape.getText( $child )
+
+
</ul>
- $escape.getText( $child )
+
+
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ > File Name Mappers:
+
+
<ul
- > $escape.getText( $child )
+ >
+
<li
> Change FileNameMapper.mapFileName() to take vfs.FileName
objects.
</li>
- $escape.getText( $child )
+
+
<li
> Move the current mapper implementations across to antlib.
</li>
- $escape.getText( $child )
+
+
</ul>
- $escape.getText( $child )
+
+
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ > File Sets:
+
+
<ul
- > $escape.getText( $child )
+ >
+
<li
> Add a file set implementation that provides the union of
several
nested file sets (that is, a file set that
merges several file sets
together).
</li>
- $escape.getText( $child )
+
+
<li
> Add a file set implementation that filters files that are
up-to-date
WRT some other file. Alternatively, this might
be better done as a
file selector.
</li>
- $escape.getText( $child )
+
+
</ul>
- $escape.getText( $child )
+
+
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ > Paths:
+
+
<ul
- > $escape.getText( $child )
+ >
+
<li
- > $escape.getText( $child )
+ > Add path implementations that evaluate to the
system classpath,
+ and the ant runtime classpath. Or, more
generally, combine this with
+
+
<code
> ClassLoaderManager
</code>
- $escape.getText( $child )
+ to evaluate to the classpath of any
+ 'library' (e.g. system classpath, ant runtime,
tools.jar,
+ an antlib, an installed extension, or the system
classes of another JVM
+ for cross-compiling).
+
</li>
- $escape.getText( $child )
+
+
</ul>
- $escape.getText( $child )
+
+
</li>
- $escape.getText( $child )
+
+
<li
> Port across the Ant 1 file filter proposal, once it is
complete.
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ > Copy task:
+
+
<ul
- > $escape.getText( $child )
+ >
+
<li
> Implement 'preservelastmodified', 'overwrite', and
'includeemptydirs'.
</li>
- $escape.getText( $child )
+
+
<li
> Support a file name mapper.
</li>
- $escape.getText( $child )
+
+
<li
> Support file filters.
</li>
- $escape.getText( $child )
+
+
<li
> Detect and handle destination file name collisions.
</li>
- $escape.getText( $child )
+
+
</ul>
- $escape.getText( $child )
+
+
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ > Implement the
+
<code
> <move>
</code>
- $escape.getText( $child )
+ ,
+
<code
> <delete>
</code>
- $escape.getText( $child )
+ ,
+
+
<code
> <touch>
</code>
- $escape.getText( $child )
+ and
+
<code
> <mkdir>
</code>
- $escape.getText( $child )
+ tasks on top
+ of the VFS and the new file data-types. Might be some
scope for generalising
+ 'touch' and 'mkdir' into a single task.
+
</li>
- $escape.getText( $child )
+
+
</ul>
</div>
<div class="h4">
@@ -773,49 +933,67 @@
command-line, but does not support configuration files.
</p>
<ul
- > $escape.getText( $child )
+ >
+
+
<li
> Load configuration from system (from $ANT_HOME) and user
(from $HOME)
configuration files.
</li>
- $escape.getText( $child )
+
+
+
<li
- > $escape.getText( $child )
+ > Allow the following via config files:
+
+
<ul
- > $escape.getText( $child )
+ >
+
<li
- > $escape.getText( $child )
+ > Add (or override) the
+
<code
> lib
</code>
- $escape.getText( $child )
+ and
+
<code
> ext
</code>
- $escape.getText( $child )
+ directories.
+
</li>
- $escape.getText( $child )
+
+
<li
> Enable more than one listener, and configure the listeners
from
the conents of the config file.
</li>
- $escape.getText( $child )
+
+
<li
> Import libraries, and set properties.
</li>
- $escape.getText( $child )
+
+
<li
> Execute tasks.
</li>
- $escape.getText( $child )
+
+
<li
> Install and configure runtime services.
</li>
- $escape.getText( $child )
+
+
</ul>
- $escape.getText( $child )
+
+
</li>
- $escape.getText( $child )
+
+
+
</ul>
</div>
<div class="h4">
@@ -825,25 +1003,30 @@
Java:
</p>
<ul
- > $escape.getText( $child )
+ >
+
<li
> Define a task using a scripting language such as Javascript.
</li>
- $escape.getText( $child )
+
+
<li
> Use Rhino's ability to implement Java interfaces, to
implement and define types, such as FileSelector, or
Condition.
</li>
- $escape.getText( $child )
+
+
<li
> Define a task using template.
</li>
- $escape.getText( $child )
+
+
<li
> Add some lightweight scripting tasks.
</li>
- $escape.getText( $child )
+
+
</ul>
</div>
<div class="h4">
@@ -855,25 +1038,32 @@
to write. In particular we need these:
</p>
<ul
- > $escape.getText( $child )
+ >
+
<li
> User documentation - describing things like the build file
format,
how properties work, how to use references, how
sub-builds work, how to customise
Myrmidon, and so on.
</li>
- $escape.getText( $child )
+
+
+
<li
> Task writer documentation - describing things like an
overview the task API,
how configuration works, task lifecycle, how to assemble
an antlib, a catalog
of the runtime services, and so on.
</li>
- $escape.getText( $child )
+
+
+
<li
> Myrmidon developer documentation - a broad outline of the
architecture,
how to build, how to test, and so on. Also, this todo
list needs plenty
of filling out.
</li>
- $escape.getText( $child )
+
+
+
</ul>
</div>
<div class="h4">
@@ -882,134 +1072,170 @@
> A completely unordered list of items, big and small:
</p>
<ul
- > $escape.getText( $child )
+ >
+
<li
> Search through the code for 'TODO' items and fix them.
</li>
- $escape.getText( $child )
+
+
<li
> Detect duplicate type names.
</li>
- $escape.getText( $child )
+
+
<li
> Validate type and role names.
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ > Move the
+
<code
> <http>
</code>
- $escape.getText( $child )
+ and
+
<code
> <socket>
</code>
- $escape.getText( $child )
+
+ conditions to an antlib.
+
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ > Add an else block to the
+
<code
> <if>
</code>
- $escape.getText( $child )
+ task.
+
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ > Move the XML parser to
<code
> bin/lib
</code>
- $escape.getText( $child )
+ in the distribution,
+ and make available to other jars via the extension
mechanism.
+
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ > Change
<code
> DefaultPropertyResolver
</code>
- $escape.getText( $child )
+ to ignore '$${'.
</li>
- $escape.getText( $child )
+
+
<li
> Add a property resolver which uses xpath to resolve values.
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ > Change
<code
> ProjectBuilder
</code>
- $escape.getText( $child )
+
+ and
<code
> Embeddor
</code>
- $escape.getText( $child )
+ to throw something more
+ specialised than Exception.
+
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ > Change
<code
> DefaultLibraryManager
</code>
- $escape.getText( $child )
+ to handle
+ directories as part of a library classpath.
+
</li>
- $escape.getText( $child )
+
+
<li
> <code
> <condition>
</code>
- $escape.getText( $child )
+ should set the property
+ value to
<code
> false
</code>
- $escape.getText( $child )
+ when the condition is false.
</li>
- $escape.getText( $child )
+
+
<li
- > $escape.getText( $child )
+ > Split the
<code
> <uptodate>
</code>
- $escape.getText( $child )
+ condition into
+ a condition that checks against a single target file,
+ and one which checks using a destdir/mapper.
</li>
- $escape.getText( $child )
+
+
<li
> Add condition implementations to: check JVM version,
check Ant version, check whether a particular antlib
or extension is
available, match a string against a regular
expression.
</li>
- $escape.getText( $child )
+
+
<li
> Add a task to unset a property.
</li>
- $escape.getText( $child )
+
+
<li
> Change the typelib, import and -def tasks to allow more than
one
type to be specified.
</li>
- $escape.getText( $child )
+
+
<li
> Use AUT jprocess in the ExecuteJava class, running the
app in another thread. This will allow setting system
properties
to be re-enabled.
</li>
- $escape.getText( $child )
+
+
<li
> Change DefaultEmbeddor to implement ExecutionContainer,
to allow it to be supplied with initial properties,
services,
logger, etc.
</li>
- $escape.getText( $child )
+
+
<li
> Add a ScopedService interface, to replace
TypeManager.createChildTypeManager(),
Deployer.createChildDeployer, etc.
</li>
- $escape.getText( $child )
+
+
<li
> Configurer needs to be scoped. RoleManager probably does too.
</li>
- $escape.getText( $child )
+
+
</ul>
</div>
</div>
1.8 +94 -57 jakarta-ant-myrmidon/site/docs/vfs.html
Index: vfs.html
===================================================================
RCS file: /home/cvs/jakarta-ant-myrmidon/site/docs/vfs.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- vfs.html 13 Jun 2002 08:14:39 -0000 1.7
+++ vfs.html 13 Jun 2002 08:25:04 -0000 1.8
@@ -119,31 +119,37 @@
</td>
<td
>
- $escape.getText( $child )
+ Three different formats are currently
supported for local file names:
+
<ul
- > $escape.getText( $child )
+ >
+
<li
> <code
> file://
</code>
- $escape.getText( $child )
+
<i
> absolute-file-name
</i>
</li>
- $escape.getText( $child )
+
+
<li
> Absolute file names
</li>
- $escape.getText( $child )
+
+
<li
> Relative file names. These are resolved relative to the
project's base directory.
</li>
- $escape.getText( $child )
+
+
</ul>
- $escape.getText( $child )
+
+
</td>
</tr>
<tr class="a">
@@ -161,18 +167,18 @@
<code
> zip:
</code>
- $escape.getText( $child )
+
<i
> zip-file-uri
</i>
- $escape.getText( $child )
+ [
<code
> !
</code>
<i
> absolute-path
</i>
- $escape.getText( $child )
+ ]
</td>
</tr>
<tr class="b">
@@ -189,36 +195,36 @@
<code
> ftp://
</code>
- $escape.getText( $child )
+ [[
<i
> password
</i>
<code
> :
</code>
- $escape.getText( $child )
+ ]
<i
> username
</i>
<code
> @
</code>
- $escape.getText( $child )
+ ]
<i
> hostname
</i>
- $escape.getText( $child )
+ [
<code
> :
</code>
<i
> port
</i>
- $escape.getText( $child )
+ ] [
<i
> absolute-path
</i>
- $escape.getText( $child )
+ ]
</td>
</tr>
<tr class="a">
@@ -235,36 +241,36 @@
<code
> smb://
</code>
- $escape.getText( $child )
+ [[
<i
> password
</i>
<code
> :
</code>
- $escape.getText( $child )
+ ]
<i
> username
</i>
<code
> @
</code>
- $escape.getText( $child )
+ ]
<i
> hostname
</i>
- $escape.getText( $child )
+ [
<code
> :
</code>
<i
> port
</i>
- $escape.getText( $child )
+ ] [
<i
> absolute-path
</i>
- $escape.getText( $child )
+ ]
</td>
</tr>
</table>
@@ -276,43 +282,50 @@
> Here are some example URLs:
</p>
<ul
- > $escape.getText( $child )
+ >
+
<li
> <code
> build/classes
</code>
</li>
- $escape.getText( $child )
+
+
<li
> <code
> c:\program files\ant\bin
</code>
</li>
- $escape.getText( $child )
+
+
<li
> <code
> file://C:/program files/ant
</code>
</li>
- $escape.getText( $child )
+
+
<li
> <code
> zip:build/lib/ant.jar!/org/apache/tools
</code>
</li>
- $escape.getText( $child )
+
+
<li
> <code
> ftp://[EMAIL PROTECTED]/pub/downloads
</code>
</li>
- $escape.getText( $child )
+
+
<li
> <code
> smb://password:[EMAIL PROTECTED]/home/adam
</code>
</li>
- $escape.getText( $child )
+
+
</ul>
<p
> Currently, there are only a handful of VFS aware tasks. This
will grow
@@ -321,9 +334,12 @@
<div class="h4">
<h4><a name="File Sets">File Sets</a></h4>
<p
- > $escape.getText( $child )
+ > A file set in Myrmidon is more general than Ant
1's concept of a file set.
+ Firstly, there is more than one type of file set. Secondly,
they are VFS enabled.
+ File sets are automatically converted to a
<a href="#Paths">path</a>
- $escape.getText( $child )
+ , and so
+ can be used anywhere that a path can.
</p>
<h3
> <code
@@ -331,35 +347,42 @@
</code>
</h3>
<p
- > $escape.getText( $child )
+ > This is the equivalent of Ant 1's
<code
> <fileset>
</code>
- $escape.getText( $child )
+ (The name
+ is temporary, it will be changed to
<code
> <fileset>
</code>
- $escape.getText( $child )
+ once more
+ porting work as been completed).
</p>
<p
- > $escape.getText( $child )
+ > Rather than use a set of include and exclude
patterns to choose the files
+ that make up the file set,
<code
> <v-fileset>
</code>
- $escape.getText( $child )
+ takes zero or more
+
<a href="#File Selectors">file
selectors</a>
- $escape.getText( $child )
+ . File selectors can be used to
+ select files based on any attribute of the file, rather than
just the name.
+ You can use
<code
> <name>
</code>
- $escape.getText( $child )
+ selectors to achieve the same result
+ as using includes or excludes.
</p>
<p
- > $escape.getText( $child )
+ > A
<code
> <v-fileset>
</code>
- $escape.getText( $child )
+ element takes the following attributes:
</p>
<table cellpadding="3" cellspacing="2" border="1"
width="100%">
<tr class="a">
@@ -393,13 +416,17 @@
</tr>
</table>
<p
- > $escape.getText( $child )
+ > A
<code
> <v-fileset>
</code>
- $escape.getText( $child )
+ element takes any number of nested
+
<a href="#File Selectors">file
selector</a>
- $escape.getText( $child )
+ elements. To be included in the
+ file set, a file must be selected by all the file selectors.
That is, the
+ file selectors are implicitly AND-ed together. If no file
selector is provided,
+ all the files and directories are included in the set.
</p>
<p
> An example:
@@ -416,18 +443,22 @@
</code>
</h3>
<p
- > $escape.getText( $child )
+ > This file set takes a set of nested file sets
and paths, and flattens them
+ into a single directory. It can be used as a way of
converting a path into a
+ file set. It can also be used as a replacement for the
<code
> flatten
</code>
- $escape.getText( $child )
+
+ attribute for the copy and move tasks.
</p>
<p
- > $escape.getText( $child )
+ > A
<code
> <flat-fileset>
</code>
- $escape.getText( $child )
+ element takes no attributes, and a set
+ of nested paths or file sets.
</p>
<p
> An example:
@@ -448,9 +479,11 @@
</code>
</h3>
<p
- > $escape.getText( $child )
+ > A fileset that applies a
<a href="buildfile.html#File Name
Mappers">file name mapper</a>
- $escape.getText( $child )
+
+ to a nested fileset.
+
</p>
</div>
<div class="h4">
@@ -464,11 +497,11 @@
</code>
</h3>
<p
- > $escape.getText( $child )
+ > This is the equivalent of Ant 1's
<code
> <path>
</code>
- $escape.getText( $child )
+ .
</p>
<h3
> <code
@@ -490,11 +523,12 @@
</code>
</h3>
<p
- > $escape.getText( $child )
+ > Combines zero or more file selectors, using
AND. An empty
<code
> <and>
</code>
- $escape.getText( $child )
+
+ selector accepts all files.
</p>
<h3
> <code
@@ -511,9 +545,11 @@
</code>
</h3>
<p
- > $escape.getText( $child )
+ > Takes a set of
<a
href="buildfile.html#Conditions">conditions</a>
- $escape.getText( $child )
+ . If
+ the conditions evaluate to true, then select every file.
Otherwise,
+ select no files.
</p>
<h3
> <code
@@ -570,11 +606,12 @@
</code>
</h3>
<p
- > $escape.getText( $child )
+ > Combines zero or more file selectors, using OR.
An empty
<code
> <or>
</code>
- $escape.getText( $child )
+
+ selector accepts all files.
</p>
<h3
> <code
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
