donaldp 2002/06/13 01:14:40
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
site/docs/css tigris.css
Log:
Update the site docs with larger type
Revision Changes Path
1.7 +130 -68 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.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ant1compat.html 6 Jun 2002 12:54:28 -0000 1.6
+++ ant1compat.html 13 Jun 2002 08:14:39 -0000 1.7
@@ -1,9 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
-<!-- Content Stylesheet for Site -->
-
-
-<!-- start the processing -->
+<!-- This is a generated file. Do not edit. -->
<html>
<head>
<style type="text/css">
@@ -91,98 +88,150 @@
<td><div id="bodycol"><div class="app">
<div class="h3">
<h3><a name="Overview">Overview</a></h3>
- <p>
+ <p
+ >
The Myrmidon-Ant1 Compatibility layer works by reusing most of
the Ant 1 code,
with tasks and datatypes
being prefixed with "ant1." in build files. Almost all of the
main Ant 1 tree
is included in the compatibility layer antlib. To insulate from
changes in
the Ant 1 tree, Ant 1 class files are extracted from a jar,
rather than
being compiled from scratch.
- </p>
- <p>
+
+ </p>
+ <p
+ >
Here's how it works: The first time an Ant 1 task is
encountered, an Ant 1
project is created, and stored in the TaskContext under the name
"ant1.project".
The Ant 1 versions of Task and Project have been extended,
overriding core behaviour,
with Myrmidon-specific behaviour.
+
+ </p>
+ <p
+ > $escape.getText( $child )
+ <i
+ > all
+ </i>
+ $escape.getText( $child )
</p>
- <p>
- 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> of
the
- subtle variations of configuration present in Ant 1 are handled.
- </p>
- <p>
+ <p
+ >
The updated version of Project will provide hooks into the
Myrmidon TaskContext,
- such as:</p>
- <ul>
- <li>logging (done)</li>
- <li>properties (done)</li>
- <li>references (not yet done)</li>
- <li>Task defined by <taskdef> (done)</li>
+ 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>
- 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>
reference works fine
- in other <code><ant1.XXX></code>
- tasks, it's not visible to Ant 2 tasks in the same build, and
vice-versa.
- </p>
- <p>
- The <code><taskdef></code> 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
+ > $escape.getText( $child )
+ <code
+ > <ant1.path>
+ </code>
+ $escape.getText( $child )
+ <code
+ > <ant1.XXX>
+ </code>
+ $escape.getText( $child )
+ </p>
+ <p
+ > $escape.getText( $child )
+ <code
+ > <taskdef>
+ </code>
+ $escape.getText( $child )
</p>
- <p>
+ <p
+ >
The TransformingProjectBuilder (which is now the default builder
for files
of type ".xml", applies a transformation stylesheet to the file,
prefixing select
tasks (all at present) with "ant.". If a version attribute is
encountered, the
file is not transformed
- </p>
- </div>
+
+ </p>
+ </div>
<div class="h3">
<h3><a name="Using the compatibility layer">Using the
compatibility layer</a></h3>
<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>
- If you have a Myrmidon build file (eg with
<code>version="2.0"</code>
- 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> tasks and datatypes from Ant 1.4.1 are
available
- in this way.
- </p>
- <p>
- When declaring a new task using the
<code><ant1.taskdef></code>
- task, <i>don't</i> 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>
+ <p
+ > $escape.getText( $child )
+ <code
+ > version="2.0"
+ </code>
+ $escape.getText( $child )
+ <i
+ > all
+ </i>
+ $escape.getText( $child )
+ </p>
+ <p
+ > $escape.getText( $child )
+ <code
+ > <ant1.taskdef>
+ </code>
+ $escape.getText( $child )
+ <i
+ > don't
+ </i>
+ $escape.getText( $child )
+ </p>
+ </div>
<div class="h4">
<h4><a name="Using an existing Ant 1 build file">Using an
existing Ant 1 build file</a></h4>
- <p>
+ <p
+ >
Myrmidon will automatically handle Ant 1 build files using
the
Ant 1 Compatibility layer. So, using an Ant 1 build
- file with Myrmidon should be as simple as:</p>
- <pre>[myrmidon-command] -f ant1-build-file.xml</pre>
- <p>
- This works as follows: When Myrmidon encounters a ".xml"
build file which does not have a
- <code>version</code> attribute on the top-level
<code>project</code>
- 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>
+ file with Myrmidon should be as simple as:
+ </p>
+ <pre>[myrmidon-command] -f ant1-build-file.xml</pre>
+ <p
+ > $escape.getText( $child )
+ <code
+ > version
+ </code>
+ $escape.getText( $child )
+ <code
+ > project
+ </code>
+ $escape.getText( $child )
+ </p>
+ </div>
</div>
<div class="h3">
<h3><a name="Building the compatibility layer">Building the
compatibility layer</a></h3>
- <p>Before building the Ant 1 Compatibility layer, you need
to build
- Myrmidon, running the <code>dist-lite</code> target of the main
build.
- See <a href="user.html#Building Myrmidon">the build
instructions</a>
- for more details.</p>
- <p>To build the compatibility layer, simply
execute:</p>
- <pre>ant -f ant1compat.xml</pre>
- <p>from within the root directory of the Myrmidon
source tree.</p>
- </div>
+ <p
+ > $escape.getText( $child )
+ <code
+ > dist-lite
+ </code>
+ $escape.getText( $child )
+ <a href="user.html#Building
Myrmidon">the build instructions</a>
+ $escape.getText( $child )
+ </p>
+ <p
+ > To build the compatibility layer, simply execute:
+ </p>
+ <pre>ant -f ant1compat.xml</pre>
+ <p
+ > from within the root directory of the Myrmidon source tree.
+ </p>
+ </div>
</div></div></td>
</tr>
</table>
@@ -198,7 +247,20 @@
</body>
</html>
-<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1.8 +275 -191 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.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- buildfile.html 6 Jun 2002 12:54:28 -0000 1.7
+++ buildfile.html 13 Jun 2002 08:14:39 -0000 1.8
@@ -1,9 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
-<!-- Content Stylesheet for Site -->
-
-
-<!-- start the processing -->
+<!-- This is a generated file. Do not edit. -->
<html>
<head>
<style type="text/css">
@@ -91,41 +88,70 @@
<td><div id="bodycol"><div class="app">
<div class="h3">
<h3><a name="Overview">Overview</a></h3>
- <p>
- You define a build process using a <a href="#project">project</a> 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>. 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>
- A target may <b>depend on</b> 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>
- You define a target using basic units of work called <a
href="#tasks">tasks</a>.
- 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>
- Let's look at a simple example. The project below contains two targets,
- called <code>compile</code> and <code>build-jar</code>. The
<code>compile</code>
- target executes the <code>javac</code> task, which, as you probably
- guessed, compiles up a bunch of Java source files.
- The <code>build-jar</code> target depends on the <code>compile</code>
target,
- which means that it will only ever get executed <i>after</i> the
- <code>compile</code> target has been executed. The
<code>build-jar</code>
- target executes the <code>jar</code> task, which assembles the compiled
- class files into a Jar file.
- </p>
- <div id="source">
- <pre>
-<project version="2.0" default="build-jar">
+ <p
+ > $escape.getText( $child )
+ <a href="#project">project</a>
+ $escape.getText( $child )
+ <a href="#targets">targets</a>
+ $escape.getText( $child )
+ </p>
+ <p
+ > $escape.getText( $child )
+ <b
+ > depend on
+ </b>
+ $escape.getText( $child )
+ </p>
+ <p
+ > $escape.getText( $child )
+ <a href="#tasks">tasks</a>
+ $escape.getText( $child )
+ </p>
+ <p
+ > $escape.getText( $child )
+ <code
+ > compile
+ </code>
+ $escape.getText( $child )
+ <code
+ > build-jar
+ </code>
+ $escape.getText( $child )
+ <code
+ > compile
+ </code>
+ $escape.getText( $child )
+ <code
+ > javac
+ </code>
+ $escape.getText( $child )
+ <code
+ > build-jar
+ </code>
+ $escape.getText( $child )
+ <code
+ > compile
+ </code>
+ $escape.getText( $child )
+ <i
+ > after
+ </i>
+ $escape.getText( $child )
+ <code
+ > compile
+ </code>
+ $escape.getText( $child )
+ <code
+ > build-jar
+ </code>
+ $escape.getText( $child )
+ <code
+ > jar
+ </code>
+ $escape.getText( $child )
+ </p>
+ <div id="source">
+ <pre><project version="2.0"
default="build-jar">
<!-- Compile the Java source -->
<target name="compile">
@@ -138,104 +164,124 @@
<fileset dir="build/classes"/>
</jar>
</target>
-</project>
-</pre>
+</project></pre>
</div>
- </div>
+ </div>
<div class="h3">
<h3><a name="project">The Project File</a></h3>
- <p>
- 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> element.
- It can take the following attributes:
- </p>
- <table cellpadding="3" cellspacing="2" border="1"
width="100%">
+ <p
+ > $escape.getText( $child )
+ <code
+ > <project>
+ </code>
+ $escape.getText( $child )
+ </p>
+ <table cellpadding="3" cellspacing="2"
border="1" width="100%">
<tr class="a">
<th
>
- Attribute
- </th>
+ Attribute
+ </th>
<th
>
- Description
- </th>
+ Description
+ </th>
<th
>
- Default Value
- </th>
+ Default Value
+ </th>
</tr>
<tr class="b">
<td
>
- name
- </td>
+ name
+ </td>
<td
>
- The project name.
- </td>
+ The project name.
+ </td>
<td
>
- The name of the project file, with the extension removed.
- </td>
+ The name of the project file, with the extension removed.
+ </td>
</tr>
<tr class="a">
<td
>
- basedir
- </td>
+ basedir
+ </td>
<td
>
- The base directory for the project. The base directory is used
+ The base directory for the project. The base directory is
used
to resolve all relative file names used in the project file.
- </td>
+ </td>
<td
>
- The directory containing the project file.
- </td>
+ The directory containing the project file.
+ </td>
</tr>
<tr class="b">
<td
>
- default
- </td>
+ default
+ </td>
<td
>
- The name of the default target.
- </td>
+ The name of the default target.
+ </td>
<td
>
- <code>main</code>
- </td>
+ <code
+ > main
+ </code>
+ </td>
</tr>
<tr class="a">
<td
>
- version
- </td>
+ version
+ </td>
<td
>
- The project file format version that the project is written for.
- </td>
+ The project file format version that the project is written
for.
+ </td>
<td
>
- None, must be <code>2.0</code>
- </td>
+ $escape.getText( $child )
+ <code
+ > 2.0
+ </code>
+ </td>
</tr>
</table>
- <p>
- A <code><project></code> element can contain the following
elements,
- in the order given below:
- </p>
- <ul>
- <li><a href="#project-refs">Project references</a></li>
- <li><a href="#init-tasks">Initialization tasks</a></li>
- <li><a href="#targets">Targets</a></li>
- </ul>
- <p>Below is a simple example, which contains two
targets:</p>
- <div id="source">
- <pre>
-<project version="2.0" name="some-project"
basedir="..">
+ <p
+ > $escape.getText( $child )
+ <code
+ > <project>
+ </code>
+ $escape.getText( $child )
+ </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:
+ </p>
+ <div id="source">
+ <pre><project version="2.0" name="some-project"
basedir="..">
<target name="compile">
...
@@ -244,64 +290,80 @@
<target name="tests">
...
</target>
-</project>
-</pre>
+</project></pre>
</div>
- <div class="h4">
+ <div class="h4">
<h4><a name="project-refs">Project References</a></h4>
- <p>Project references allow the project to import, or
reference, other projects.
-A <code><projectref></code> element takes the following attributes:</p>
- <table cellpadding="3" cellspacing="2" border="1"
width="100%">
+ <p
+ > $escape.getText( $child )
+ <code
+ > <projectref>
+ </code>
+ $escape.getText( $child )
+ </p>
+ <table cellpadding="3" cellspacing="2" border="1"
width="100%">
<tr class="a">
<th
>
- Attribute
- </th>
+ Attribute
+ </th>
<th
>
- Description
- </th>
+ Description
+ </th>
<th
>
- Default Value
- </th>
+ Default Value
+ </th>
</tr>
<tr class="b">
<td
>
- name
- </td>
+ name
+ </td>
<td
>
- The name to use to identify the referenced project.
- </td>
+ The name to use to identify the referenced project.
+ </td>
<td
>
- Required
- </td>
+ Required
+ </td>
</tr>
<tr class="a">
<td
>
- location
- </td>
+ location
+ </td>
<td
>
- The path to the project file to reference.
- </td>
+ The path to the project file to reference.
+ </td>
<td
>
- Required
- </td>
+ Required
+ </td>
</tr>
</table>
- <p>
-The targets of a referenced project can be used in the <code>depends</code>
list
-of a target in the referencing project, using the syntax
-<code><i>project-name</i>-><i>target-name</i></code>. Here is a simple
example:</p>
- <div id="source">
- <pre>
-<project version="2.0">
+ <p
+ > $escape.getText( $child )
+ <code
+ > depends
+ </code>
+ $escape.getText( $child )
+ <code
+ > <i
+ > project-name
+ </i>
+ $escape.getText( $child )
+ <i
+ > target-name
+ </i>
+ </code>
+ $escape.getText( $child )
+ </p>
+ <div id="source">
+ <pre><project version="2.0">
<!-- Reference another project -->
<projectref name="subproject"
location="subproject/build.xml"/>
@@ -309,23 +371,25 @@
<target name="main"
depends="subproject->compile">
.. do some stuff ..
</target>
-</project>
-</pre>
+</project></pre>
</div>
- </div>
+ </div>
<div class="h4">
<h4><a name="init-tasks">Initialization Tasks</a></h4>
- <p>
- Initialization <a href="#tasks">tasks</a> 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> and data-type instances. The
initialization
- tasks are executed in the order they appear in the project file.
- </p>
- <p>Below is an example:</p>
- <div id="source">
- <pre>
-<project version="2.0">
+ <p
+ > $escape.getText( $child )
+ <a href="#tasks">tasks</a>
+ $escape.getText( $child )
+ <code
+ > <property>
+ </code>
+ $escape.getText( $child )
+ </p>
+ <p
+ > Below is an example:
+ </p>
+ <div id="source">
+ <pre><project version="2.0">
<!-- Initialization tasks -->
<property name="some-property" value="some
value"/>
@@ -337,83 +401,90 @@
...
</target>
-</project>
-</pre>
+</project></pre>
</div>
- </div>
+ </div>
</div>
<div class="h3">
<h3><a name="targets">Targets</a></h3>
- <p>
- A target is a list of tasks, contained in a <code><target></code>
- 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>A <code><target></code> element takes the
following attributes:</p>
- <table cellpadding="3" cellspacing="2" border="1"
width="100%">
+ <p
+ > $escape.getText( $child )
+ <code
+ > <target>
+ </code>
+ $escape.getText( $child )
+ </p>
+ <p
+ > $escape.getText( $child )
+ <code
+ > <target>
+ </code>
+ $escape.getText( $child )
+ </p>
+ <table cellpadding="3" cellspacing="2"
border="1" width="100%">
<tr class="a">
<th
>
- Attribute
- </th>
+ Attribute
+ </th>
<th
>
- Description
- </th>
+ Description
+ </th>
<th
>
- Default Value
- </th>
+ Default Value
+ </th>
</tr>
<tr class="b">
<td
>
- description
- </td>
+ description
+ </td>
<td
>
- A description of the target.
- </td>
+ A description of the target.
+ </td>
<td
>
- None
- </td>
+ None
+ </td>
</tr>
<tr class="a">
<td
>
- depends
- </td>
+ depends
+ </td>
<td
>
- A comma-separated list of targets that this target depends on.
+ A comma-separated list of targets that this target depends
on.
This list can contain targets from referenced projects.
- </td>
+ </td>
<td
>
- None
- </td>
+ None
+ </td>
</tr>
<tr class="b">
<td
>
- name
- </td>
+ name
+ </td>
<td
>
- The name of the target.
- </td>
+ The name of the target.
+ </td>
<td
>
- Required
- </td>
+ Required
+ </td>
</tr>
</table>
- <p>An example project, with two targets:</p>
- <div id="source">
- <pre>
-<project version="2.0" default="jars">
+ <p
+ > An example project, with two targets:
+ </p>
+ <div id="source">
+ <pre><project version="2.0" default="jars">
<target name="compile" description="Compiles the Java
source">
<javac ... />
@@ -423,28 +494,28 @@
<jar ... />
</target>
-</project>
-</pre>
+</project></pre>
</div>
- </div>
+ </div>
<div class="h3">
<h3><a name="tasks">Tasks</a></h3>
- <p>
+ <p
+ >
A task is represented as an XML element, where the name of the task is
used
as the element name. The attributes and nested elements that a task
allows
depend on the task. Below are two example tasks:
- </p>
- <div id="source">
- <pre>
-<property name="a-prop" value="some value"/>
-<log>This is a log message.</log>
-</pre>
+
+ </p>
+ <div id="source">
+ <pre><property name="a-prop" value="some
value"/>
+<log>This is a log message.</log></pre>
</div>
- <p>
- Some tasks may contain other tasks. You can find out about how to write
- your own tasks <a href="task.html">here</a>.
- </p>
- </div>
+ <p
+ > $escape.getText( $child )
+ <a href="task.html">here</a>
+ $escape.getText( $child )
+ </p>
+ </div>
</div></div></td>
</tr>
</table>
@@ -460,7 +531,20 @@
</body>
</html>
-<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1.4 +74 -42 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.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- building.html 6 Jun 2002 12:54:28 -0000 1.3
+++ building.html 13 Jun 2002 08:14:39 -0000 1.4
@@ -1,9 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
-<!-- Content Stylesheet for Site -->
-
-
-<!-- start the processing -->
+<!-- This is a generated file. Do not edit. -->
<html>
<head>
<style type="text/css">
@@ -91,68 +88,90 @@
<td><div id="bodycol"><div class="app">
<div class="h3">
<h3><a name="Building Myrmidon">Building Myrmidon</a></h3>
- <p>
-First, you will need to fetch the Myrmidon source from CVS. The source
-can be found in the <code>jakarta-ant-myrmidon</code> CVS module. Details
can
-be found <a href="http://jakarta.apache.org/site/cvsindex.html">here</a>.
-</p>
- <p>
-To build Myrmidon, use the <code>build.xml</code> 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> directory. The distribution
-is a ready-to-run installation of Myrmidon. Use the <code>dist</code>
target to
-build a full Myrmidon distribution, including all documentation, into the
-<code>myrmidon/distributions</code> directory.
-</p>
- <p>There are a number features that are not built
unless the appropriate optional Jar
-files are found in the <code>lib</code> directory:</p>
- <table cellpadding="3" cellspacing="2" border="1"
width="100%">
+ <p
+ > $escape.getText( $child )
+ <code
+ > jakarta-ant-myrmidon
+ </code>
+ $escape.getText( $child )
+ <a
href="http://jakarta.apache.org/site/cvsindex.html">here</a>
+ $escape.getText( $child )
+ </p>
+ <p
+ > $escape.getText( $child )
+ <code
+ > build.xml
+ </code>
+ $escape.getText( $child )
+ <code
+ > myrmidon/dist
+ </code>
+ $escape.getText( $child )
+ <code
+ > dist
+ </code>
+ $escape.getText( $child )
+ <code
+ > myrmidon/distributions
+ </code>
+ $escape.getText( $child )
+ </p>
+ <p
+ > $escape.getText( $child )
+ <code
+ > lib
+ </code>
+ $escape.getText( $child )
+ </p>
+ <table cellpadding="3" cellspacing="2"
border="1" width="100%">
<tr class="a">
<th
>
- Feature
- </th>
+ Feature
+ </th>
<th
>
- Jar File
- </th>
+ Jar File
+ </th>
<th
>
- Download From
- </th>
+ Download From
+ </th>
</tr>
<tr class="b">
<td
>
- SMB VFS support (Samba, Windows shares)
- </td>
+ SMB VFS support (Samba, Windows shares)
+ </td>
<td
>
- jcifs.jar
- </td>
+ jcifs.jar
+ </td>
<td
>
- <a href="http://jcifs.samba.org">jcifs.samba.org</a>.
- <p>Note: there are problems using the 0.6.1 release. Try 0.6.0
instead.</p>
- </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>
+ </td>
</tr>
<tr class="a">
<td
>
- FTP VFS support
- </td>
+ FTP VFS support
+ </td>
<td
>
- netcomponents.jar
- </td>
+ netcomponents.jar
+ </td>
<td
>
- <a
href="http://www.savarese.org/oro/software/NetComponents.html">www.savarese.org</a>
- </td>
+ <a
href="http://www.savarese.org/oro/software/NetComponents.html">www.savarese.org</a>
+ </td>
</tr>
</table>
- </div>
+ </div>
</div></div></td>
</tr>
</table>
@@ -168,7 +187,20 @@
</body>
</html>
-<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1.7 +133 -104 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.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- classloader.html 6 Jun 2002 12:54:28 -0000 1.6
+++ classloader.html 13 Jun 2002 08:14:39 -0000 1.7
@@ -1,9 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
-<!-- Content Stylesheet for Site -->
-
-
-<!-- start the processing -->
+<!-- This is a generated file. Do not edit. -->
<html>
<head>
<style type="text/css">
@@ -91,25 +88,30 @@
<td><div id="bodycol"><div class="app">
<div class="h3">
<h3><a name="ClassLoader Management">ClassLoader
Management</a></h3>
- <p>In many ways Ant 2 needs to follow rules similar to a
number of
+ <p
+ > In many ways Ant 2 needs to follow rules similar to a number
of
different application servers with respect to ClassLoader
management.
Ant 2 will create a number of different ClassLoaders that have
access
to different sets of resources (and thus Classes). The main
reason
for this arrangment is to partition different sections of the
application such as the Container, the Task API, task/type
libraries
- and support libraries.</p>
- <p>The recomended structure for ClassLoader
relationships is a hierarchy.
+ and support libraries.
+ </p>
+ <p
+ > The recomended structure for ClassLoader relationships is a
hierarchy.
When a ClassLoader is asked for a resource (or a class) it first
delegates
to it's parent to ask for the resource. If the resource is not
present in
its parent ClassLoader then the ClassLoader attempts to locate
the resource
in it's own store. In practice this means that all the classes
(and static
variables defined by said classes) in a parent ClassLoader are
shared with
- the child ClassLoaders.</p>
- <p>Using kooky ascii art, the specific ClassLoader
structure for Ant 2 is as
- follows:</p>
- <div id="source">
- <pre>
- Bootstrap
+ the child ClassLoaders.
+ </p>
+ <p
+ > Using kooky ascii art, the specific ClassLoader structure for
Ant 2 is as
+ follows:
+ </p>
+ <div id="source">
+ <pre>Bootstrap
|
System
|
@@ -117,98 +119,112 @@
/ \
Container Shared
/ \
- Antlib1 Antlib2 ...
- </pre>
+ Antlib1 Antlib2 ...</pre>
</div>
- <ul>
- <li>
- The
- <strong>Bootstrap</strong> ClassLoader contains the
classes and resources
- provided by the Java runtime.
-
- </li>
- <li>
- The
- <strong>System</strong> 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>
- </li>
- <li>
- The
- <strong>Common</strong> 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>
- <li>
- <em>Task API</em> - Contains the classes that
are part of the API used
- to define tasks.
-
- </li>
- <li>
- <em>ProjectListener API</em> - Contains the
classes necessary to define new
- ProjectListeners.
-
- </li>
- <li>
- <em>Aspect API</em> - Contains the classes that
are used to define Aspects
- of the container.
-
- </li>
- <li>
- <em>Container API</em> - Contains the interfaces
that are required to communicate
- with the objects deep within the container.
- <strong>NOTE</strong>: 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>
- </ul>
- <p>
- These classes are loaded from all the jars present in
the
- <code>$ANT_HOME/lib</code>
- directory.
-
- </p>
- </li>
- <li>
- The
- <strong>Container</strong> 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> ClassLoader. The classes that are
- stored in jars in the
- <code>$ANT_HOME/bin/lib/</code> directory.
-
- </li>
- <li>
- The
- <strong>Shared</strong> 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>
- ClassLoader). This ClassLoader is populated by all the
jars that are contained in
- the
- <code>$ANT_HOME/shared/</code> directory.
-
- </li>
- <li>
- The
- <strong>AntLib</strong> 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>
+ <ul
+ > $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <strong
+ > Bootstrap
+ </strong>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <strong
+ > System
+ </strong>
+ $escape.getText( $child )
+ <code
+ > $ANT_HOME/bin/ant-launcher.jar
+ </code>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <strong
+ > Common
+ </strong>
+ $escape.getText( $child )
+ <ul
+ > $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <em
+ > Task API
+ </em>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <em
+ > Container API
+ </em>
+ $escape.getText( $child )
+ <strong
+ > NOTE
+ </strong>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ </ul>
+ $escape.getText( $child )
+ <p
+ > $escape.getText( $child )
+ <code
+ > $ANT_HOME/lib
+ </code>
+ $escape.getText( $child )
+ </p>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <strong
+ > Container
+ </strong>
+ $escape.getText( $child )
+ <strong
+ > Common
+ </strong>
+ $escape.getText( $child )
+ <code
+ > $ANT_HOME/bin/lib/
+ </code>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <strong
+ > Shared
+ </strong>
+ $escape.getText( $child )
+ <strong
+ > Container
+ </strong>
+ $escape.getText( $child )
+ <code
+ > $ANT_HOME/shared/
+ </code>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <strong
+ > AntLib
+ </strong>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
</ul>
- </div>
+ </div>
</div></div></td>
</tr>
</table>
@@ -224,7 +240,20 @@
</body>
</html>
-<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1.7 +253 -143 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.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- configuring.html 6 Jun 2002 12:54:28 -0000 1.6
+++ configuring.html 13 Jun 2002 08:14:39 -0000 1.7
@@ -1,9 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
-<!-- Content Stylesheet for Site -->
-
-
-<!-- start the processing -->
+<!-- This is a generated file. Do not edit. -->
<html>
<head>
<style type="text/css">
@@ -91,197 +88,297 @@
<td><div id="bodycol"><div class="app">
<div class="h3">
<h3><a name="Introduction">Introduction</a></h3>
- <p>This section will describe in detail the mechanism via
which tasks are
+ <p
+ > This section will describe in detail the mechanism via which
tasks are
configured. Configuration is the name given to the stage in tasks
lifecycle via which the XML representation is mapped onto the
task
- object.</p>
- </div>
+ object.
+ </p>
+ </div>
<div class="h3">
<h3><a name="Names">Names</a></h3>
- <p>When mapping the XML representation on to the task
object you
+ <p
+ > When mapping the XML representation on to the task object you
need to be able map the names as they appear in the XML to the
- names as they appear in the Java code. The process is for
generating
- a java name from the xml name is as follows.</p>
- <ol>
- <li>Capitalize the first character of name.</li>
- <li>Find any '-' characters in XML name and remove character
and
+ names as they appear in the Java code. The process for generating
+ 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>
+ letter)
+ </li>
+ $escape.getText( $child )
</ol>
- <p>Some example mappings;</p>
- <div id="source">
- <pre>
-my-name ===> MyName
+ <p
+ > Some example mappings;
+ </p>
+ <div id="source">
+ <pre>my-name ===> MyName
aString ===> AString
Basedir ===> Basedir
baseDir ===> BaseDir
url ===> Url</pre>
</div>
- <p>Note that the above transformation is lossy and
as such the
+ <p
+ > Note that the above transformation is lossy and as such the
following XML names all map to the same Java name. The ant1.x
mapping
- is similarly lossy and in practice this has not been an
issue.</p>
- <div id="source">
- <pre>
-base-dir ===> BaseDir
+ is similarly lossy and in practice this has not been an issue.
+ </p>
+ <div id="source">
+ <pre>base-dir ===> BaseDir
Base-dir ===> BaseDir
baseDir ===> BaseDir
BaseDir ===> BaseDir</pre>
</div>
- <p><i>NOTE: We should really resolve this and either
disallow '-' characters
- or disallow uppercase or something. (PD)</i></p>
- </div>
+ <p
+ > <i
+ > NOTE: We should really resolve this and either disallow '-'
characters
+ or disallow uppercase or something. (PD)
+ </i>
+ </p>
+ </div>
<div class="h3">
<h3><a name="Resolving Values">Resolving Values</a></h3>
- <p>The first stage of mapping the XML representation to
the task
+ <p
+ > The first stage of mapping the XML representation to the task
is resolving all text data. The text data that needs to be
resolved
- include the values of attributes and the content.</p>
- <p>Resolution consists of expanding any property
references in the text
+ include the values of attributes and the content.
+ </p>
+ <p
+ > Resolution consists of expanding any property references in
the text
data. Property references are identified as starting with the
token
"${" and finishing with another "}" token. The text
in between is the name of a property. The value of the property
replaces
the sequence of text starting with the "${" token and finishing
- with the "}" token.</p>
- <p>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>
to a
- String.</p>
- </div>
+ with the "}" token.
+ </p>
+ <p
+ > $escape.getText( $child )
+ <a href="converter.html">converted</a>
+ $escape.getText( $child )
+ </p>
+ </div>
<div class="h3">
<h3><a name="Modeller">Modeller</a></h3>
- <p>Currently the representation of object are stored in a
hierarchial
- tree of
<code>org.apache.myrmidon.api.metadata.ModelElement</code>
- objects. Each ModelElement has a number of attributes and can
have
- either content or sub-elements.</p>
- <p>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>
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
- as it adds considerable complexity to the implementing
object.</p>
- </div>
+ <p
+ > $escape.getText( $child )
+ <code
+ > org.apache.myrmidon.api.metadata.ModelElement
+ </code>
+ $escape.getText( $child )
+ </p>
+ <p
+ > $escape.getText( $child )
+ <code
+ > org.apache.myrmidon.api.metadata.Modeller
+ </code>
+ $escape.getText( $child )
+ </p>
+ <p
+ > Note that the Modeller mechanism should be avoided if possible
+ as it adds considerable complexity to the implementing object.
+ </p>
+ </div>
<div class="h3">
<h3><a name="Attributes">Attributes</a></h3>
- <p>To map an XML attribute on to a Java object, the name
of the
+ <p
+ > To map an XML attribute on to a Java object, the name of the
attribute is mapped to a java name and prefixed with the string
"set". The resulting string is then used to look up a
- method with a single parameter.</p>
- <p>For example, for the attribute "world" would
result
+ method with a single parameter.
+ </p>
+ <p
+ > For example, for the attribute "world" would result
in a lookup of a method named "setWorld" with a single
- parameter.</p>
- <p>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> parameter. The
method
- that has the <code>java.lang.String</code> 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>The resolved text data of the attribute must be
- <a href="converter.html">converted</a> to the type of the
matched
- methods parameter. For example, if the "setWorld" method
- took a parameter of type <code>java.io.File</code> then the
resolved
- text data must be converted into a <code>java.io.File</code>. The
- conversion is done by the Converter architecture that is more
fully
- described in the <a href="converter.html">Converter
HOWTO</a>.</p>
- <p>After the value is converted to the correct type
the method is
- invoked with the converted value.</p>
- </div>
+ parameter.
+ </p>
+ <p
+ > $escape.getText( $child )
+ <code
+ > java.lang.String
+ </code>
+ $escape.getText( $child )
+ <code
+ > java.lang.String
+ </code>
+ $escape.getText( $child )
+ </p>
+ <p
+ > $escape.getText( $child )
+ <a href="converter.html">converted</a>
+ $escape.getText( $child )
+ <code
+ > java.io.File
+ </code>
+ $escape.getText( $child )
+ <code
+ > java.io.File
+ </code>
+ $escape.getText( $child )
+ <a href="converter.html">Converter
HOWTO</a>
+ $escape.getText( $child )
+ </p>
+ <p
+ > After the value is converted to the correct type the method
is
+ invoked with the converted value.
+ </p>
+ </div>
<div class="h3">
<h3><a name="Content">Content</a></h3>
- <p>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> to the type of the
parameter
- and passed in via the method.</p>
- </div>
+ <p
+ > $escape.getText( $child )
+ <a href="converter.html">converted</a>
+ $escape.getText( $child )
+ </p>
+ </div>
<div class="h3">
<h3><a name="Element">Element</a></h3>
- <p>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> section. Otherwise, the element is first attempted
to
- be mapped as a <em>Named Element</em> and if no match is found
via
- that method it tries to treat the element as a <em>Typed
Element</em>.</p>
- <div class="h4">
+ <p
+ > $escape.getText( $child )
+ <em
+ > Referrenced
+ Elements
+ </em>
+ $escape.getText( $child )
+ <em
+ > Named Element
+ </em>
+ $escape.getText( $child )
+ <em
+ > Typed Element
+ </em>
+ $escape.getText( $child )
+ </p>
+ <div class="h4">
<h4><a name="Named Elements">Named Elements</a></h4>
- <p>To map a named ModelElement on to a Java object, the
name of
+ <p
+ > To map a named ModelElement on to a Java object, the name of
the element 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.</p>
- <p>For example, for the attribute "geometry" would
result
+ method with a single parameter.
+ </p>
+ <p
+ > For example, for the attribute "geometry" would result
in a lookup of a method named "addGeometry" with a single
parameter. If multiple methods were matched during the lookup
then an
exception is thrown indicating ambiguity. If no methods were
found that
- match name then skip down to configuring "typed" elements.</p>
- <p>The type of the methods single parameter is then
examined to determine
+ match name then skip down to configuring "typed" elements.
+ </p>
+ <p
+ > The type of the methods single parameter is then examined to
determine
what happens next. There are two valid situations, if neither of
these are
- satisfied, then an exception is thrown.</p>
- <ul>
- <li>The parameters type is
<code>org.apache.myrmidon.api.metadata.ModelElement</code></li>
- <li>The parameters type is a concrete class</li>
+ satisfied, then an exception is thrown.
+ </p>
+ <ul
+ > $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <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>1. If the parameter has a type of
<code>org.apache.myrmidon.api.metadata.ModelElement</code>
- 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
+ <p
+ > $escape.getText( $child )
+ <code
+ > org.apache.myrmidon.api.metadata.ModelElement
+ </code>
+ $escape.getText( $child )
+ </p>
+ <p
+ > 2. If the parameters type is concrete then an instance of the
parameter is
instantiated using the default constructor. This created object
is then configured
in the same manner as task using the elements representation as
the model. After
- the object is configured it is passed into object by invoking
the adder method.</p>
- </div>
+ the object is configured it is passed into object by invoking
the adder method.
+ </p>
+ </div>
<div class="h4">
<h4><a name="Referrenced Elements">Referrenced Elements</a></h4>
- <p>A referenced element is one that has a name ending in
+ <p
+ > A referenced element is one that has a name ending in
"-ref" and has a single attribute "name"
- and no content or child elements.</p>
- <p>The value of the "name" attribute is the name of
a property.
- The value of this property is retrieved from the TaskContext.</p>
- <p>Like with <em>Named Elements</em> 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
- of the methods parameter and the add method is invoked with the
converted value.</p>
- <p>An example usage is the following;</p>
- <div id="source">
- <pre>
-
- <my-task ...>
+ and no content or child elements.
+ </p>
+ <p
+ > The value of the "name" attribute is the name of a property.
+ The value of this property is retrieved from the TaskContext.
+ </p>
+ <p
+ > $escape.getText( $child )
+ <em
+ > Named Elements
+ </em>
+ $escape.getText( $child )
+ </p>
+ <p
+ > The value retrieved from the TaskContext is then converted to
the type
+ of the methods parameter and the add method is invoked with the
converted value.
+ </p>
+ <p
+ > An example usage is the following;
+ </p>
+ <div id="source">
+ <pre><my-task ...>
<classpath-ref name="project.class.path"/>
- </my-task>
-
-</pre>
+ </my-task></pre>
</div>
- </div>
+ </div>
<div class="h4">
<h4><a name="Typed Elements">Typed Elements</a></h4>
- <p>"Typed" elements can also be added to an object. A
typed element
+ <p
+ > "Typed" elements can also be added to an object. A typed
element
is one in which the name of the element actually refers to a
type rather than the
- name of the adder to call.</p>
- <p>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>,
<code>addOr(OrCondition)</code> and
- <code>addXor(XorCondition)</code> you can instead add a single
method
- <code>add(Condition)</code>. 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>.</p>
- <p>To use a Typed adder there must be a single
method named "add" that
- has a single parameter. The parameter <em>MUST</em> 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>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> 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>
+ name of the adder to call.
+ </p>
+ <p
+ > $escape.getText( $child )
+ <code
+ > addAnd(AndCondition)
+ </code>
+ $escape.getText( $child )
+ <code
+ > addOr(OrCondition)
+ </code>
+ $escape.getText( $child )
+ <code
+ > addXor(XorCondition)
+ </code>
+ $escape.getText( $child )
+ <code
+ > add(Condition)
+ </code>
+ $escape.getText( $child )
+ <a href="types.html">Types
+ HOWTO</a>
+ $escape.getText( $child )
+ </p>
+ <p
+ > $escape.getText( $child )
+ <em
+ > MUST
+ </em>
+ $escape.getText( $child )
+ </p>
+ <p
+ > $escape.getText( $child )
+ <code
+ > void add( Condition condition )
+ </code>
+ $escape.getText( $child )
+ </p>
+ </div>
</div>
</div></div></td>
</tr>
@@ -298,7 +395,20 @@
</body>
</html>
-<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1.10 +109 -44 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.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- differences.html 6 Jun 2002 12:54:28 -0000 1.9
+++ differences.html 13 Jun 2002 08:14:39 -0000 1.10
@@ -1,9 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
-<!-- Content Stylesheet for Site -->
-
-
-<!-- start the processing -->
+<!-- This is a generated file. Do not edit. -->
<html>
<head>
<style type="text/css">
@@ -91,9 +88,13 @@
<td><div id="bodycol"><div class="app">
<div class="h3">
<h3><a name="Differences to Ant 1.x">Differences to Ant
1.x</a></h3>
- <p>Some of the differences between Ant 1.x and
Myrmidon:</p>
- <ul>
- <li>
+ <p
+ > 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
possible. The user first places a
<projectref name="other" location="other/build.xml"/>
@@ -104,8 +105,11 @@
"other/build.xml" as a dependency. Note that this differs
from
antcall/ant as they are treated like a dependency and thus
can
not be re-evaluated in same workspace.
- </li>
- <li>
+
+ </li>
+ $escape.getText( $child )
+ <li
+ >
As well as the depends attribute of the Target there is
a new <depends> task that allows you to evaluate
dependencies inside a target just like executing a normal
@@ -115,47 +119,95 @@
they were not evaluated multiple times. This was difficult
and
error prone. Building it into the tool helps directly
supports
this usecase.
- </li>
- <li>
+
+ </li>
+ $escape.getText( $child )
+ <li
+ >
if and unless attributes have been removed from targets.
These attributes have been replaced with an <if>
task. This change was made as previously users had been
confused by the fact that dependencies are always executed
before the if or unless were evaluated.
- </li>
- <li>
- Groups of tasks can be assembled into self-describing
- <i>antlib</i> task libraries. This makes it very easy to
- distribute and install tasks and data-types.
- </li>
- <li> A project can import other projects, and reference
their targets. </li>
- <li>Properties and data type references now share the same
namespace.</li>
- <li>
- Changes to task and data-type API:
- <ul>
- <li>An interface based API, through which a task
interacts with the
- task engine, and the services it provides.</li>
- <li>A well-defined object lifecycle.</li>
- <li>Polymorphic types are supported when objects are
configured.</li>
- <li>Reference handling is handled automatically when
objects are configured.</li>
- </ul>
- </li>
- <li>A set of well-defined services and APIs have been
introduced, to allow
- tasks to do their work without depending on other tasks:
- <ul>
- <li>Execute external commands.</li>
- <li>Execute other tasks.</li>
- <li>Manage ClassLoaders and Class-paths.</li>
- <li>Virtual file system (in progress).</li>
- <li>Execute Java applications (in progress).</li>
- <li>...</li>
- </ul>
- </li>
+
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <i
+ > antlib
+ </i>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > Properties and data type references now share the same
namespace.
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <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 )
+ <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>There are plenty more features planned. You can
read about them
- <a href="todo.html">here</a>.
+ <p
+ > $escape.getText( $child )
+ <a href="todo.html">here</a>
+ $escape.getText( $child )
</p>
- </div>
+ </div>
</div></div></td>
</tr>
</table>
@@ -171,7 +223,20 @@
</body>
</html>
-<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1.7 +48 -18 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.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- getinvolved.html 6 Jun 2002 12:54:28 -0000 1.6
+++ getinvolved.html 13 Jun 2002 08:14:39 -0000 1.7
@@ -1,9 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
-<!-- Content Stylesheet for Site -->
-
-
-<!-- start the processing -->
+<!-- This is a generated file. Do not edit. -->
<html>
<head>
<style type="text/css">
@@ -91,20 +88,40 @@
<td><div id="bodycol"><div class="app">
<div class="h3">
<h3><a name="Get Involved">Get Involved</a></h3>
- <p>There are plenty of things you can do to help out with
Myrmidon. The
- <a href="todo.html">Todo list </a> 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>
- <li>The <a href="http://jakarta.apache.org/ant/ant2/">Ant
2</a> goals and requirements.</li>
- <li>The <a
href="http://jakarta.apache.org/ant/ant2/actionlist.html">Ant 1.9 Action
List</a>.</li>
- <li>The Jakarta Project's <a
href="http://jakarta.apache.org/site/getinvolved.html">Get Involved</a>
page.</li>
+ <p
+ > $escape.getText( $child )
+ <a href="todo.html">Todo list </a>
+ $escape.getText( $child )
+ </p>
+ <p
+ > Some things that are worth reading if you do want to get
involved:
+ </p>
+ <ul
+ > $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <a
href="http://jakarta.apache.org/ant/ant2/">Ant 2</a>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <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 )
+ <a
href="http://jakarta.apache.org/site/getinvolved.html">Get Involved</a>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
</ul>
- <p>There is no Ant 2 or Myrmidon mailing list yet,
so direct any questions
- or comments you have to the ant-dev mailing list.</p>
- </div>
+ <p
+ > There is no Ant 2 or Myrmidon mailing list yet, so direct any
questions
+ or comments you have to the ant-dev mailing list.
+ </p>
+ </div>
</div></div></td>
</tr>
</table>
@@ -120,7 +137,20 @@
</body>
</html>
-<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1.7 +80 -40 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.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- index.html 6 Jun 2002 12:54:28 -0000 1.6
+++ index.html 13 Jun 2002 08:14:39 -0000 1.7
@@ -1,9 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
-<!-- Content Stylesheet for Site -->
-
-
-<!-- start the processing -->
+<!-- This is a generated file. Do not edit. -->
<html>
<head>
<style type="text/css">
@@ -91,60 +88,88 @@
<td><div id="bodycol"><div class="app">
<div class="h3">
<h3><a name="What is Ant?">What is Ant?</a></h3>
- <p>Ant is a cross-platform build tool that features ease of
- use and extensibility as it's primary goal.</p>
- <p>Why another build tool when there is already
make, gnumake,
+ <p
+ > Ant is a cross-platform build tool that features ease of
+ use and extensibility as it's primary goal.
+ </p>
+ <p
+ > Why another build tool when there is already make, gnumake,
nmake, jam, and others? Make-like tools are inherently
shell-based;
they execute native commands and shell scripts to perform the
work
associated with the build process. So to extend the the tool by
writing a program or script executable by the OS you are on. This
- makes it difficult to achieve portability between platforms.</p>
- <p>Ant is a different beast. Instead of using
OS-specific commands
+ makes it difficult to achieve portability between platforms.
+ </p>
+ <p
+ > Ant is a different beast. Instead of using OS-specific
commands
to extend the build process, you leverage the cross-platform
features
of Java to write "tasks". This makes it much easier to achieve
a portal build process between platforms. Ant also differs in
that it uses
- XML to describe the build process.</p>
- </div>
+ XML to describe the build process.
+ </p>
+ </div>
<div class="h3">
<h3><a name="What is Myrmidon?">What is Myrmidon?</a></h3>
- <p>Myrmidon is a proposal for Ant 2. Ant 2 is the next
evolution of the
+ <p
+ > Myrmidon is a proposal for Ant 2. Ant 2 is the next evolution
of the
Ant build tool aimed at removing many of the limitations of the
Ant 1.x
- product. In particular it aims to;</p>
- <ul>
- <li>Remove ambiguities and points of confusion for build file
- writers.</li>
- <li>Ease deployment and management of 3rd party tasks and
- dependencies.</li>
- <li>Simplify development of tasks by task-writers.</li>
- <li>Enable ad-hoc "tasks" to be written inside build file,
+ 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>
- <li>Integrate templating technologies such as XSLT, velocity
etc
- to enable development of reusable build file elements.</li>
+ 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> You can read more about the goals of Ant 2
- <a href="http://jakarta.apache.org/ant/ant2/">here</a>.
+ <p
+ > $escape.getText( $child )
+ <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
+ <p
+ > Myrmidon was specifically designed as both a tool and as
an API library that can be reused in other products. It contains
the
basic building blocks for assembling any sort of task-based
tool. Ant 2
is an example of such a tool, which could be assembled using the
Myrmidon
task container, and a library of build related tasks. In the
future expect
to see Testing frameworks, Job Schedulers (ie Cron managers),
shells
- and install tools based on the Myrmidon base.</p>
- </div>
+ and install tools based on the Myrmidon base.
+ </p>
+ </div>
<div class="h3">
<h3><a name="A Rose by any other name ...">A Rose by any other
name ...</a></h3>
- <p>
- 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>.
+ <p
+ > $escape.getText( $child )
+ <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>
- <i>The appellation Myrmidon was derived from the Greek word
"myrmex",
+ <quote
+ > $escape.getText( $child )
+ <i
+ > The appellation Myrmidon was derived from the Greek word
"myrmex",
meaning ant. According to Greek mythology, the Myrmidons
were
transformed into humans by the god Zeus as an act of
kindness to his
son Aeacus. King Aeacus, captivated by a colony of ants,
prayed
@@ -152,9 +177,11 @@
number of ants before him. When he awoke the next day, the
ants
were his human subjects. Thereafter, they were known as the
Myrmidons. See "The Iliad" for Homers' account of the
Myrmidons
- during the Trojan War.</i>
+ during the Trojan War.
+ </i>
+ $escape.getText( $child )
</quote>
- </div>
+ </div>
</div></div></td>
</tr>
</table>
@@ -170,7 +197,20 @@
</body>
</html>
-<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1.7 +144 -108 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.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- librarys.html 6 Jun 2002 12:54:28 -0000 1.6
+++ librarys.html 13 Jun 2002 08:14:39 -0000 1.7
@@ -1,9 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
-<!-- Content Stylesheet for Site -->
-
-
-<!-- start the processing -->
+<!-- This is a generated file. Do not edit. -->
<html>
<head>
<style type="text/css">
@@ -91,158 +88,184 @@
<td><div id="bodycol"><div class="app">
<div class="h3">
<h3><a name="Library Management">Library Management</a></h3>
- <p>Long ago there was identified the need for libraries
that contain
+ <p
+ > Long ago there was identified the need for libraries that
contain
tasks and other elements present in the build file. This document
attempts to describe the mechanism via which these libraries
will be
defined and used in Ant 2. The libraries (also referred to as
- deployments) will be termed antlibs.</p>
- <p>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>.
+ deployments) will be termed antlibs.
+ </p>
+ <p
+ > $escape.getText( $child )
+ <a
href="http://java.sun.com/j2se/1.3/docs/guide/jar/index.html">
+ Jar Specification</a>
+ $escape.getText( $child )
</p>
- <p>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> 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
+ > $escape.getText( $child )
+ <code
+ > .class
+ </code>
+ $escape.getText( $child )
</p>
- <p>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> then
- the Ant library needs to have access to the
- <em>Trax API</em> and an
- implementation of the API. The Antlib mechanism thus uses the
standard
- "Optional Package" Specification to declare dependencies on other
- libraries.
+ <p
+ > $escape.getText( $child )
+ <em
+ > Trax API
+ </em>
+ $escape.getText( $child )
+ <em
+ > Trax API
+ </em>
+ $escape.getText( $child )
</p>
- <p>The libraries will usually be installed in
standard locations that
+ <p
+ > The libraries will usually be installed in standard locations
that
make it possible for the Ant container to automatically locate
and scan
the libraries. It will also be possible for the users to specify
additional search locations or even the specific location of ant
- libraries.</p>
- <p>The following sections will describe each of
these different facets
- in greater detail.</p>
- <div class="h4">
+ libraries.
+ </p>
+ <p
+ > The following sections will describe each of these different
facets
+ in greater detail.
+ </p>
+ <div class="h4">
<h4><a name="Descriptors">Descriptors</a></h4>
- <p>FIXME: Import this part from other doco</p>
- </div>
+ <p
+ > FIXME: Import this part from other doco
+ </p>
+ </div>
<div class="h4">
<h4><a name="Class and Resource Files">Class and Resource
Files</a></h4>
- <p>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> file for the Java class
- <code>com.biz.tasks.Mytask</code>
- would be stored in
- <code>/com/biz/tasks/Mytask.class</code>
- </p>
- </div>
+ <p
+ > $escape.getText( $child )
+ <code
+ > .class
+ </code>
+ $escape.getText( $child )
+ <code
+ > com.biz.tasks.Mytask
+ </code>
+ $escape.getText( $child )
+ <code
+ > /com/biz/tasks/Mytask.class
+ </code>
+ $escape.getText( $child )
+ </p>
+ </div>
<div class="h4">
<h4><a name="Dependencies">Dependencies</a></h4>
- <p>It is often the case that a library will need external
resources. The
+ <p
+ > It is often the case that a library will need external
resources. The
example given above described dependence on an external XML
library. The
ant library thus needs a mechanism via which to declare
dependencies on
- external libraries.</p>
- <p>Ant 2 uses the "Optional Package" mechanism.
Prior to JDK1.3, an "Optional
- Package" was known as an
- <em>Extension</em>. The specification for this
- mechanism is available in the JDK1.3 documentation in the
directory
-
-
<code>$JDK_HOME/docs/guide/extensions/versioning.html</code>. 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>.
- </p>
- <p>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>. 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
+ external libraries.
+ </p>
+ <p
+ > $escape.getText( $child )
+ <em
+ > Extension
+ </em>
+ $escape.getText( $child )
+ <code
+ > $JDK_HOME/docs/guide/extensions/versioning.html
+ </code>
+ $escape.getText( $child )
+ <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 )
+ <em
+ > Servlet
+ 2.3 API
+ </em>
+ $escape.getText( $child )
+ </p>
+ <p
+ > The "Optional Package" mechanism allows jars to specify
dependencies on other
jars that implement a particular specification at particular
version levels. For
example you could specify a dependency on the Trax 1.1 API
by adding the following
- to the manifest of your jar.</p>
- <div id="source">
- <pre>
-Extension-List: trax
+ to the manifest of your jar.
+ </p>
+ <div id="source">
+ <pre>Extension-List: trax
trax-Extension-Name: Java API for XML Parsing
-trax-Specification-Version: 1.1
- </pre>
+trax-Specification-Version: 1.1</pre>
</div>
- <p>In some cases you may also wish to specify a
dependency on a specific vendors
+ <p
+ > In some cases you may also wish to specify a dependency on a
specific vendors
implementation. For instance you may need to use xalan due
to it implementing a
- particular extension you need. In that case you manifest may
contain;</p>
- <div id="source">
- <pre>
-Extension-List: trax
+ particular extension you need. In that case you manifest may
contain;
+ </p>
+ <div id="source">
+ <pre>Extension-List: trax
trax-Extension-Name: Java API for XML Parsing
trax-Specification-Version: 1.1
trax-Implementation-Title: org.apache.xalan.xslt
trax-Implementation-Version: 2.1.0
-trax-Implementation-Vendor: Apache Software Foundation
- </pre>
+trax-Implementation-Vendor: Apache Software Foundation</pre>
</div>
- <p>In many cases there will be no distinction
between the specification and
+ <p
+ > In many cases there will be no distinction between the
specification and
the implementation of a library. For instance the Velocity
project only has
one implementation and one specification. In which case it
is sufficient to
just declare a dependency on the Velocity "Specification". A
library that uses
- both the Trax API and the Velocity project may look like;</p>
- <div id="source">
- <pre>
-Extension-List: trax velocity
+ both the Trax API and the Velocity project may look like;
+ </p>
+ <div id="source">
+ <pre>Extension-List: trax velocity
velocity-Extension-Name: org.apache.velocity
velocity-Specification-Version: 1.0
trax-Extension-Name: Java API for XML Parsing
trax-Specification-Version: 1.1
trax-Implementation-Title: org.apache.xalan.xslt
trax-Implementation-Version: 2.1.0
-trax-Implementation-Vendor: Apache Software Foundation
- </pre>
+trax-Implementation-Vendor: Apache Software Foundation</pre>
</div>
- <p>To make other jars available to Ant libraries as
"Optional Packages"
+ <p
+ > To make other jars available to Ant libraries as "Optional
Packages"
or Extensions then you need to add a few lines to the
manifest of the
- other jar. The minimal manifest is the following;</p>
- <div id="source">
- <pre>
-Extension-Name: org.realityforge.dve
+ other jar. The minimal manifest is the following;
+ </p>
+ <div id="source">
+ <pre>Extension-Name: org.realityforge.dve
Specification-Vendor: Peter Donald
-Specification-Version: 1.0
- </pre>
+Specification-Version: 1.0</pre>
</div>
- <p>It is important to note that looking for
dependencies is recursive. For example,
+ <p
+ > It is important to note that looking for dependencies is
recursive. For example,
if the ant library depends upon jar A and and A depends on B
then both A and B will
- need to be loaded by the container.</p>
- </div>
+ need to be loaded by the container.
+ </p>
+ </div>
<div class="h4">
<h4><a name="Implementation Notes">Implementation Notes</a></h4>
- <p>So far there has been no mention of implementation
strategies for
+ <p
+ > So far there has been no mention of implementation strategies
for
managing ClassLoaders and other details about where the
"Optional Packages"
are stored. This section will outline such details but they
could change
in the future. The above specification will still be
accurate but the approach
- to implementing specification will be different.</p>
- <p>In the current architecture all of the "Optional
Packages" are assumed to
- be stored in the
- <code>$ANT_HOME/ext</code> 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
+ to implementing specification will be different.
+ </p>
+ <p
+ > $escape.getText( $child )
+ <code
+ > $ANT_HOME/ext
+ </code>
+ $escape.getText( $child )
+ </p>
+ <p
+ > When the container attempts to load an ant library it will
also try to load
any needed dependencies. First it will check the parent
ClassLoaders to see if any
of them contain the required dependencies. If not then it
will search the
"Optional Packages" registry. If the dependency is not found
then a error will be
signaled. If the dependency is found in the "Optional
Packages" registry then it is
- loaded by the same ClassLoader that is used to load the Ant
library.</p>
- </div>
+ loaded by the same ClassLoader that is used to load the Ant
library.
+ </p>
+ </div>
</div>
</div></div></td>
</tr>
@@ -259,7 +282,20 @@
</body>
</html>
-<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1.6 +378 -278 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.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- project-descriptor.html 6 Jun 2002 12:54:28 -0000 1.5
+++ project-descriptor.html 13 Jun 2002 08:14:39 -0000 1.6
@@ -1,9 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
-<!-- Content Stylesheet for Site -->
-
-
-<!-- start the processing -->
+<!-- This is a generated file. Do not edit. -->
<html>
<head>
<style type="text/css">
@@ -91,606 +88,696 @@
<td><div id="bodycol"><div class="app">
<div class="h3">
<h3><a name="Project Descriptor">Project Descriptor</a></h3>
- <p>Each Myrmidon sub-project has a project descriptor
associated with it.
+ <p
+ > Each Myrmidon sub-project has a project descriptor associated
with it.
This is an xml file that provides meta-information about the
project,
such as the name of the project, its current version, where the
source can be found, and so on. The descriptor is used to
generate
the project's build file.
- </p>
- <p>The root element of the project descriptor must
be a
- <code><project></code> element. The
<code><project></code>
- element may contain the following elements:
- </p>
- <table cellpadding="3" cellspacing="2" border="1"
width="100%">
+
+ </p>
+ <p
+ > $escape.getText( $child )
+ <code
+ > <project>
+ </code>
+ $escape.getText( $child )
+ <code
+ > <project>
+ </code>
+ $escape.getText( $child )
+ </p>
+ <table cellpadding="3" cellspacing="2"
border="1" width="100%">
<tr class="a">
<th
>
- Element
- </th>
+ Element
+ </th>
<th
>
- Description
- </th>
+ Description
+ </th>
<th
>
- Multivalued
- </th>
+ Multivalued
+ </th>
</tr>
<tr class="b">
<td
>
- <a href="#build">additional-build</a>
- </td>
+ <a
href="#build">additional-build</a>
+ </td>
<td
>
- The details of how to compile and assemble the project's
+ The details of how to compile and assemble the project's
additional Jars. These are Jar files that are assembled as
part of the build, but not included as part of the project
output. For example, test Jar files.
- </td>
+ </td>
<td
>
- yes
- </td>
+ yes
+ </td>
</tr>
<tr class="a">
<td
>
- <a href="#build">build</a>
- </td>
+ <a href="#build">build</a>
+ </td>
<td
>
- The details of how to compile the project and assemble it
+ The details of how to compile the project and assemble it
into jar files.
- </td>
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="b">
<td
>
- classpath
- </td>
+ classpath
+ </td>
<td
>
- The project classpath, used for compiling the project
- Jars, unit tests, and additional Jars. This is an Ant
- <code><path></code> data-type.
- </td>
+ $escape.getText( $child )
+ <code
+ > <path>
+ </code>
+ $escape.getText( $child )
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="a">
<td
>
- compilePatterns
- </td>
+ compilePatterns
+ </td>
<td
>
- The include and exclude patterns to use when compiling the
- project Jars, unit tests, and additional Jars. This is an
- Ant <code><patternset></code> data-type.
- </td>
+ $escape.getText( $child )
+ <code
+ > <patternset>
+ </code>
+ $escape.getText( $child )
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="b">
<td
>
- copyrightYear
- </td>
+ copyrightYear
+ </td>
<td
>
- The year(s) that the project was copyrighted in.
- </td>
+ The year(s) that the project was copyrighted in.
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="a">
<td
>
- currentVersion
- </td>
+ currentVersion
+ </td>
<td
>
- The version number for the project.
- </td>
+ The version number for the project.
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="b">
<td
>
- dist
- </td>
+ dist
+ </td>
<td
>
- The additional Ant tasks for preparing the distribution.
+ The additional Ant tasks for preparing the distribution.
By default, the project's jar files and Javadocs are copied
into the distribution directory. Use this element to perform
extra tasks to assemble the distribution.
- </td>
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="a">
<td
>
- id
- </td>
+ id
+ </td>
<td
>
- The identifier for the project. Used in generated file
+ The identifier for the project. Used in generated file
and directory names.
- </td>
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="b">
<td
>
- name
- </td>
+ name
+ </td>
<td
>
- The descriptive name of the project. Used as the title
+ The descriptive name of the project. Used as the title
for the project's Javadocs.
- </td>
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="a">
<td
>
- property
- </td>
+ property
+ </td>
<td
>
- A global build property. This is an Ant
- <code><property></code> task.
- </td>
+ $escape.getText( $child )
+ <code
+ > <property>
+ </code>
+ $escape.getText( $child )
+ </td>
<td
>
- yes
- </td>
+ yes
+ </td>
</tr>
<tr class="b">
<td
>
- target
- </td>
+ target
+ </td>
<td
>
- An additional target to add to the build file. This is
+ An additional target to add to the build file. This is
an Ant target, and is copied directly into the generated
build
file.
- </td>
+ </td>
<td
>
- yes
- </td>
+ yes
+ </td>
</tr>
<tr class="a">
<td
>
- <a href="#unittest">unitTest</a>
- </td>
+ <a href="#unittest">unitTest</a>
+ </td>
<td
>
- The details of how to compile and execute the unit tests.
- </td>
+ The details of how to compile and execute the unit tests.
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
</table>
- <div class="h4">
+ <div class="h4">
<h4><a name="build">Build Definition</a></h4>
- <p>The <code><build></code> and
<code><additional-build></code>
- elements describes how to compile and assemble a set of Jar
files.
- The <code><build></code> element describes the Jar files
- included as part of the project's output. The
- <code><additional-build></code> 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%">
+ <p
+ > $escape.getText( $child )
+ <code
+ > <build>
+ </code>
+ $escape.getText( $child )
+ <code
+ > <additional-build>
+ </code>
+ $escape.getText( $child )
+ <code
+ > <build>
+ </code>
+ $escape.getText( $child )
+ <code
+ > <additional-build>
+ </code>
+ $escape.getText( $child )
+ </p>
+ <table cellpadding="3" cellspacing="2" border="1"
width="100%">
<tr class="a">
<th
>
- Element
- </th>
+ Element
+ </th>
<th
>
- Description
- </th>
+ Description
+ </th>
<th
>
- Multivalued
- </th>
+ Multivalued
+ </th>
</tr>
<tr class="b">
<td
>
- classpath
- </td>
+ classpath
+ </td>
<td
>
- The classpath to use for compiling the Jars. This is
- an Ant <code><path></code> 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> element to this
- <code><classpath></code> element.
- </td>
+ $escape.getText( $child )
+ <code
+ > <path>
+ </code>
+ $escape.getText( $child )
+ <code
+ > <ant-runtime>
+ </code>
+ $escape.getText( $child )
+ <code
+ > <classpath>
+ </code>
+ $escape.getText( $child )
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="a">
<td
>
- compilePatterns
- </td>
+ compilePatterns
+ </td>
<td
>
- The patternset to use when compiling the project source.
- This is an Ant <code><patternset></code> data-type.
- This patternset is added to the project compile
patternset.
- </td>
+ $escape.getText( $child )
+ <code
+ > <patternset>
+ </code>
+ $escape.getText( $child )
+ </td>
<td
>
- yes
- </td>
+ yes
+ </td>
</tr>
<tr class="b">
<td
>
- <a href="#jar">jar</a>
- </td>
+ <a href="#jar">jar</a>
+ </td>
<td
>
- Defines a Jar output file.
- </td>
+ Defines a Jar output file.
+ </td>
<td
>
- yes
- </td>
+ yes
+ </td>
</tr>
<tr class="a">
<td
>
- lib-path
- </td>
+ lib-path
+ </td>
<td
>
- Defines the directory to place the assembled Jar files
- (<code><additional-build></code> only).
- </td>
+ $escape.getText( $child )
+ <code
+ > <additional-build>
+ </code>
+ $escape.getText( $child )
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="b">
<td
>
- prepare
- </td>
+ prepare
+ </td>
<td
>
- 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>
- only).
- </td>
+ $escape.getText( $child )
+ <code
+ > <build>
+ </code>
+ $escape.getText( $child )
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="a">
<td
>
- sourceDirectory
- </td>
+ sourceDirectory
+ </td>
<td
>
- The directory containing the project's Java source files.
- </td>
+ The directory containing the project's Java source files.
+ </td>
<td
>
- yes
- </td>
+ yes
+ </td>
</tr>
</table>
- </div>
+ </div>
<div class="h4">
<h4><a name="unittest">Unit Test Definition</a></h4>
- <p>The <code><unitTest></code> element defines how
to compile
- and execute the project's unit tests. The
<code><unitTest></code>
- element may contain the following nested elements:</p>
- <table cellpadding="3" cellspacing="2" border="1"
width="100%">
+ <p
+ > $escape.getText( $child )
+ <code
+ > <unitTest>
+ </code>
+ $escape.getText( $child )
+ <code
+ > <unitTest>
+ </code>
+ $escape.getText( $child )
+ </p>
+ <table cellpadding="3" cellspacing="2" border="1"
width="100%">
<tr class="a">
<th
>
- Element
- </th>
+ Element
+ </th>
<th
>
- Description
- </th>
+ Description
+ </th>
<th
>
- Multivalued
- </th>
+ Multivalued
+ </th>
</tr>
<tr class="b">
<td
>
- classpath
- </td>
+ classpath
+ </td>
<td
>
- 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>
data-type.
- </td>
+ $escape.getText( $child )
+ <code
+ > <path>
+ </code>
+ $escape.getText( $child )
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="a">
<td
>
- compilePatterns
- </td>
+ compilePatterns
+ </td>
<td
>
- The patternset to use when compiling the unit tests.
- This is an Ant <code><patternset></code>. This
- is combined with the compile patternset.
- </td>
+ $escape.getText( $child )
+ <code
+ > <patternset>
+ </code>
+ $escape.getText( $child )
+ </td>
<td
>
- yes
- </td>
+ yes
+ </td>
</tr>
<tr class="b">
<td
>
- includeDescriptors
- </td>
+ includeDescriptors
+ </td>
<td
>
- Controls whether antlib descriptors are generated for
+ Controls whether antlib descriptors are generated for
the unit tests. Descriptors are generated by default.
- </td>
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="a">
<td
>
- prepare
- </td>
+ prepare
+ </td>
<td
>
- Additional Ant tasks to perform before executing the
+ Additional Ant tasks to perform before executing the
unit tests.
- </td>
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="b">
<td
>
- sourceDirectory
- </td>
+ sourceDirectory
+ </td>
<td
>
- The directory containing the project's unit test source files.
- </td>
+ The directory containing the project's unit test source
files.
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="a">
<td
>
- unitTestPatterns
- </td>
+ unitTestPatterns
+ </td>
+ <td
+ >
+ $escape.getText( $child )
+ <code
+ > <patternset>
+ </code>
+ $escape.getText( $child )
+ </td>
+ <td
+ >
+ no
+ </td>
+ </tr>
+ <tr class="b">
+ <td
+ >
+ failing
+ </td>
<td
>
- The patternset to use to select the unit tests to execute.
- This is an Ant <code><patternset></code> datatype.
- </td>
+ Each failing element contains a pattern that matches a unit
test(s)
+ which is known to fail. These tests are run, but do not
abort the
+ build when they fail. This allows tests to be added
prior to implementing
+ the test solutions.
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
</table>
- </div>
+ </div>
<div class="h4">
<h4><a name="jar">Jar Definition</a></h4>
- <p>A <code><jar></code> element defines a jar file
produced by
- the build. A manifest and antlib descriptors are generated for
the Jar.
- A <code><jar></code> element may take the following nested
elements:</p>
- <table cellpadding="3" cellspacing="2" border="1"
width="100%">
+ <p
+ > $escape.getText( $child )
+ <code
+ > <jar>
+ </code>
+ $escape.getText( $child )
+ <code
+ > <jar>
+ </code>
+ $escape.getText( $child )
+ </p>
+ <table cellpadding="3" cellspacing="2" border="1"
width="100%">
<tr class="a">
<th
>
- Element
- </th>
+ Element
+ </th>
<th
>
- Description
- </th>
+ Description
+ </th>
<th
>
- Multivalued
- </th>
+ Multivalued
+ </th>
</tr>
<tr class="b">
<td
>
- attribute
- </td>
+ attribute
+ </td>
<td
>
- Defines an attribute to add to the main section of
+ Defines an attribute to add to the main section of
the manifest.
- </td>
+ </td>
<td
>
- yes
- </td>
+ yes
+ </td>
</tr>
<tr class="a">
<td
>
- depends
- </td>
+ depends
+ </td>
<td
>
- Defines the extensions which the output file depends on.
+ Defines the extensions which the output file depends on.
Used to generate the manifest.
- </td>
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="b">
<td
>
- extension
- </td>
+ extension
+ </td>
<td
>
- Defines an extension. Used to generate the manifest.
- </td>
+ Defines an extension. Used to generate the manifest.
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="a">
<td
>
- fileset
- </td>
+ fileset
+ </td>
<td
>
- Additional files to include in the Jar. This
- is an Ant <code><fileset></code> datatype.
- </td>
+ $escape.getText( $child )
+ <code
+ > <fileset>
+ </code>
+ $escape.getText( $child )
+ </td>
<td
>
- yes
- </td>
+ yes
+ </td>
</tr>
<tr class="b">
<td
>
- id
- </td>
+ id
+ </td>
<td
>
- A unique short name for the Jar. This is used
+ A unique short name for the Jar. This is used
in the file name, and the names of generated files.
- </td>
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="a">
<td
>
- includeDescriptors
- </td>
+ includeDescriptors
+ </td>
<td
>
- Controls whether antlib descriptors are generated for
+ Controls whether antlib descriptors are generated for
the Jar. Descriptors are generated by default.
- </td>
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="b">
<td
>
- metainf
- </td>
+ metainf
+ </td>
<td
>
- See the Ant <code><jar></code> task.
- </td>
+ $escape.getText( $child )
+ <code
+ > <jar>
+ </code>
+ $escape.getText( $child )
+ </td>
<td
>
- yes
- </td>
+ yes
+ </td>
</tr>
<tr class="a">
<td
>
- name
- </td>
+ name
+ </td>
<td
>
- Specifies the name of the Jar. By default, the
+ Specifies the name of the Jar. By default, the
name is generated from the Jar Id and current project
version.
- </td>
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
<tr class="b">
<td
>
- patternset
- </td>
+ patternset
+ </td>
<td
>
- Specifies which classes to include in the Jar.
- This is an Ant <code><patternset></code>.
- </td>
+ $escape.getText( $child )
+ <code
+ > <patternset>
+ </code>
+ $escape.getText( $child )
+ </td>
<td
>
- no
- </td>
+ no
+ </td>
</tr>
</table>
- </div>
+ </div>
</div>
</div></div></td>
</tr>
@@ -707,7 +794,20 @@
</body>
</html>
-<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1.5 +107 -54 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.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- running.html 6 Jun 2002 12:54:28 -0000 1.4
+++ running.html 13 Jun 2002 08:14:39 -0000 1.5
@@ -1,9 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
-<!-- Content Stylesheet for Site -->
-
-
-<!-- start the processing -->
+<!-- This is a generated file. Do not edit. -->
<html>
<head>
<style type="text/css">
@@ -91,96 +88,139 @@
<td><div id="bodycol"><div class="app">
<div class="h3">
<h3><a name="Installing Myrmidon">Installing Myrmidon</a></h3>
- <p>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> directory to the
- <code>PATH</code> environment variable.</p>
- </div>
+ <p
+ > $escape.getText( $child )
+ <code
+ > bin
+ </code>
+ $escape.getText( $child )
+ <code
+ > PATH
+ </code>
+ $escape.getText( $child )
+ </p>
+ </div>
<div class="h3">
<h3><a name="Running Myrmidon">Running Myrmidon</a></h3>
- <p>
+ <p
+ >
To run Myrmidon, use one of the following methods:
- </p>
- <div class="h4">
+
+ </p>
+ <div class="h4">
<h4><a name="Launcher Script">Launcher Script</a></h4>
- <p>
- On Windows and Unix platforms, you can use the <code>ant</code> script
- in the distribution's <code>bin</code> directory. The following
environment
- variables can be used, but are not required (except on Windows 9x - see
below).
- </p>
- <p>
+ <p
+ > $escape.getText( $child )
+ <code
+ > ant
+ </code>
+ $escape.getText( $child )
+ <code
+ > bin
+ </code>
+ $escape.getText( $child )
+ </p>
+ <p
+ >
- </p>
- <table cellpadding="3" cellspacing="2" border="1"
width="100%">
+
+ </p>
+ <table cellpadding="3" cellspacing="2" border="1"
width="100%">
<tr class="a">
<th
>
- Variable
- </th>
+ Variable
+ </th>
<th
>
- Description
- </th>
+ Description
+ </th>
</tr>
<tr class="b">
<td
>
- JAVA_HOME
- </td>
+ JAVA_HOME
+ </td>
<td
>
- The directory that the JDK is installed in.
- </td>
+ The directory that the JDK is installed in.
+ </td>
</tr>
<tr class="a">
<td
>
- JAVACMD
- </td>
+ JAVACMD
+ </td>
<td
>
- The command to use to start the JVM. Defaults to
<code>java</code>.
- </td>
+ $escape.getText( $child )
+ <code
+ > java
+ </code>
+ $escape.getText( $child )
+ </td>
</tr>
<tr class="b">
<td
>
- ANT_HOME
- </td>
+ ANT_HOME
+ </td>
<td
>
-
+
The directory containing the Myrmidon distribution. This
must be
set when running on Windows 95, 98 or Me.
- </td>
+ </td>
</tr>
</table>
- </div>
+ </div>
<div class="h4">
<h4><a name="Executable Jar File">Executable Jar File</a></h4>
- <p>
+ <p
+ >
The Myrmidon distribution includes an executable Jar file, which can be
used
to run Myrmidon. Use the following command:
- </p>
- <pre>
+
+ </p>
+ <pre>
prompt> <i>java</i> -jar <i>ant-home</i>/bin/myrmidon-launcher.jar
<i>options</i>
</pre>
- </div>
- <p>When started, Myrmidon looks for a project file
called <code>build.ant</code>
- in the current directory. A different project file can be specified
using the
- <code>-f</code> 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> and
- <code>build</code> from project file <code>my-project.xml</code>:</p>
- <pre>
+ </div>
+ <p
+ > $escape.getText( $child )
+ <code
+ > build.ant
+ </code>
+ $escape.getText( $child )
+ <code
+ > -f
+ </code>
+ $escape.getText( $child )
+ <code
+ > clean
+ </code>
+ $escape.getText( $child )
+ <code
+ > build
+ </code>
+ $escape.getText( $child )
+ <code
+ > my-project.xml
+ </code>
+ $escape.getText( $child )
+ </p>
+ <pre>
prompt> ant -f my-project.xml clean build
</pre>
- <p>
- Run Myrmidon with the <code>-h</code> command-line option for a list of
- the command-line options that are available.
- </p>
- </div>
+ <p
+ > $escape.getText( $child )
+ <code
+ > -h
+ </code>
+ $escape.getText( $child )
+ </p>
+ </div>
</div></div></td>
</tr>
</table>
@@ -196,7 +236,20 @@
</body>
</html>
-<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1.6 +68 -51 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.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- subprojects.html 6 Jun 2002 12:54:28 -0000 1.5
+++ subprojects.html 13 Jun 2002 08:14:39 -0000 1.6
@@ -1,9 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
-<!-- Content Stylesheet for Site -->
-
-
-<!-- start the processing -->
+<!-- This is a generated file. Do not edit. -->
<html>
<head>
<style type="text/css">
@@ -91,134 +88,141 @@
<td><div id="bodycol"><div class="app">
<div class="h3">
<h3><a name="Myrmidon Subprojects">Myrmidon Subprojects</a></h3>
- <p>Myrmidon is made up of several sub-projects. The
projects are described below,
+ <p
+ > Myrmidon is made up of several sub-projects. The projects
are described below,
in rough order of dependency. Most of these projects are intended to be
reusable outside Myrmidon. Each project is contained in its own
subdirectory of the source tree. The directory layout for each project
- is the same.</p>
- <p>The projects are:</p>
- <table cellpadding="3" cellspacing="2" border="1"
width="100%">
+ is the same.
+ </p>
+ <p
+ > The projects are:
+ </p>
+ <table cellpadding="3" cellspacing="2"
border="1" width="100%">
<tr class="a">
<th
>
- Project
- </th>
+ Project
+ </th>
<th
>
- Description
- </th>
+ Description
+ </th>
</tr>
<tr class="b">
<td
>
- buildtools
- </td>
+ buildtools
+ </td>
<td
>
- Utilities used to build Myrmidon.
- </td>
+ Utilities used to build Myrmidon.
+ </td>
</tr>
<tr class="a">
<td
>
- aut
- </td>
+ aut
+ </td>
<td
>
- A library of reusable system level components. These components
+ A library of reusable system level components. These
components
provide low-level services, such as managing the execution of
native commands, or providing a Virtual File System.
- </td>
+ </td>
</tr>
<tr class="b">
<td
>
- api
- </td>
+ api
+ </td>
<td
>
- This project defines the task API. This is the API which the
+ This project defines the task API. This is the API which the
tasks use to communicate with the task container that they are
executing in.
- </td>
+ </td>
</tr>
<tr class="a">
<td
>
- container
- </td>
+ container
+ </td>
<td
>
- The implementation of the task container. This project can be
+ The implementation of the task container. This project can
be
split into two broad parts: The container API, which defines the
set of services that are assembled together to form the
container,
and the standard implementations of those services. This project
also contains front-ends for embedding Myrmidon, or running it
from the command-line.
- </td>
+ </td>
</tr>
<tr class="b">
<td
>
- framework
- </td>
+ framework
+ </td>
<td
>
- A collection of general purpose classes which can be used as the
+ A collection of general purpose classes which can be used as
the
starting point for writing tasks. This includes general purpose
data types, utility classes, and a handful of abstract task
implementations.
- </td>
+ </td>
</tr>
<tr class="a">
<td
>
- antlib
- </td>
+ antlib
+ </td>
<td
>
- The tasks libraries, or <i>antlibs</i>, which contain the
- standard tasks and data-types for the Myrmidon distribution.
- </td>
+ $escape.getText( $child )
+ <i
+ > antlibs
+ </i>
+ $escape.getText( $child )
+ </td>
</tr>
<tr class="b">
<td
>
- ant1compat
- </td>
+ ant1compat
+ </td>
<td
>
- The Ant 1 compatibility library. This is an antlib which provides
+ The Ant 1 compatibility library. This is an antlib which
provides
an adaptor between the Ant 1 classes, and the Myrmidon task and
container APIs. It allows tasks compiled for Ant 1 to execute in
Myrmidon without modification. The ant1compat antlib also
includes
all of the Ant 1 tasks, which makes them available for use in
Myrmidon projects.
- </td>
+ </td>
</tr>
<tr class="a">
<td
>
- myrmidon
- </td>
+ myrmidon
+ </td>
<td
>
- This project assembles the output from the other projects into
+ This project assembles the output from the other projects
into
the final Myrmidon distribution.
- </td>
+ </td>
</tr>
<tr class="b">
<td
>
- site
- </td>
+ site
+ </td>
<td
>
- The documentation and web site for Myrmidon.
- </td>
+ The documentation and web site for Myrmidon.
+ </td>
</tr>
</table>
- </div>
+ </div>
</div></div></td>
</tr>
</table>
@@ -234,7 +238,20 @@
</body>
</html>
-<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1.7 +77 -47 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.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- task.html 6 Jun 2002 12:54:29 -0000 1.6
+++ task.html 13 Jun 2002 08:14:39 -0000 1.7
@@ -1,9 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
-<!-- Content Stylesheet for Site -->
-
-
-<!-- start the processing -->
+<!-- This is a generated file. Do not edit. -->
<html>
<head>
<style type="text/css">
@@ -91,53 +88,75 @@
<td><div id="bodycol"><div class="app">
<div class="h3">
<h3><a name="My First Task">My First Task</a></h3>
- <p>In Ant 1 it was very easy to write your own task. In
Ant 2 we plan
+ <p
+ > In Ant 1 it was very easy to write your own task. In Ant 2 we
plan
to make it even easier. To write a basic task simply follow the following
-formula.</p>
- <ol>
- <li>
- Create a Java class that extends
- <code>org.apache.myrmidon.api.AbstractTask</code>
+formula.
+ </p>
+ <ol
+ > $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <code
+ > org.apache.myrmidon.api.AbstractTask
+ </code>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <ul
+ > $escape.getText( $child )
+ <li
+ > String
</li>
- <li>
- 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>
- <li>String</li>
- <li>
+ $escape.getText( $child )
+ <li
+ >
Any primitive type - they are converted for you from their
String-representation in the buildfile
- </li>
- <li>
+
+ </li>
+ $escape.getText( $child )
+ <li
+ >
File - the string representation will be interpreted relative to
the project's basedir.
- </li>
- </ul>
+
</li>
- <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
argument. The name of the method must begin with "add", followed by the
attribute name, with the first character of the name in uppercase, and
the rest in lowercase. The type of the parameter is an object with a
no-arguement constructor. It is configured in exactly the same was a
task is configured (via setters and adders) and then added to the task.
+
</li>
- <li>
+ $escape.getText( $child )
+ <li
+ >
Write a public void method named "execute" with no arguments that
throws a TaskException. This is the method called to do the
actual work of the task.
+
</li>
-</ol>
- <div class="h4">
+ $escape.getText( $child )
+ </ol>
+ <div class="h4">
<h4><a name="A Basic Example">A Basic Example</a></h4>
- <p>So a basic task that has one attribute named "message"
and just prints
-out this message is as simple as;</p>
- <div id="source">
- <pre>
-package org.realityforge.tasks;
+ <p
+ > So a basic task that has one attribute named "message" and
just prints
+out this message is as simple as;
+ </p>
+ <div id="source">
+ <pre>package org.realityforge.tasks;
import org.apache.myrmidon.api.AbstractTask;
import org.apache.myrmidon.api.TaskException;
@@ -159,16 +178,17 @@
{
System.out.println( m_message );
}
-}
-</pre>
+}</pre>
</div>
- <p>To use this task you <em>could</em> 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"?>
+ <p
+ > $escape.getText( $child )
+ <em
+ > could
+ </em>
+ $escape.getText( $child )
+ </p>
+ <div id="source">
+ <pre><?xml version="1.0"?>
<project version="2.0">
@@ -179,12 +199,9 @@
<printer message="Hello World!"/>
</target>
-</project>
-
-
-</pre>
+</project></pre>
</div>
- </div>
+ </div>
</div>
</div></div></td>
</tr>
@@ -201,7 +218,20 @@
</body>
</html>
-<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1.8 +794 -377 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.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- todo.html 6 Jun 2002 12:54:29 -0000 1.7
+++ todo.html 13 Jun 2002 08:14:39 -0000 1.8
@@ -1,9 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
-<!-- Content Stylesheet for Site -->
-
-
-<!-- start the processing -->
+<!-- This is a generated file. Do not edit. -->
<html>
<head>
<style type="text/css">
@@ -93,208 +90,287 @@
<td><div id="bodycol"><div class="app">
<div class="h3">
<h3><a name="Todo List">Todo List</a></h3>
- <p>The broad goal is to grow Myrmidon from a prototype
task engine into a fully
+ <p
+ > The broad goal is to grow Myrmidon from a prototype task
engine into a fully
fledged build system, that can serve as the basis for Ant 2.
The following
sections describe some of the many things which still need to be
done to
- achieve that goal. This list is currently under
construction.</p>
- <div class="h4">
+ achieve that goal. This list is currently under construction.
+ </p>
+ <div class="h4">
<h4><a name="Integrate XDocs proposal">Integrate XDocs
proposal</a></h4>
- <p>Integrate with the XDocs proposal that generates XML
documentation for
+ <p
+ > Integrate with the XDocs proposal that generates XML
documentation for
tasks. Rework that proposal so that it knows about the
Myrmidon specific
patterns and features. Also rework it so that it can support
reading
- documentation and examples from side-by-side the task.</p>
- </div>
+ documentation and examples from side-by-side the task.
+ </p>
+ </div>
<div class="h4">
<h4><a name="TaskInfo">TaskInfo</a></h4>
- <p>Consider allowing task writers to write their own
TaskInfo objects
+ <p
+ > Consider allowing task writers to write their own TaskInfo
objects
(or at least have them generated from XDoclet directives).
This would
- encompass both documentation and perhaps introspection of
the types.</p>
- </div>
+ encompass both documentation and perhaps introspection of
the types.
+ </p>
+ </div>
<div class="h4">
<h4><a name="XML Catalog to load XML Fragments">XML Catalog to
load XML Fragments</a></h4>
- <p>
+ <p
+ >
When including fragments of XML we are currently forced to
use relative paths.
However this is sometimes undesirable when a single
fragment needs to be used
across several projects in several different locations.
Instead we could use
a Catalog to name the fragment and then each developer
would only need to install
the fragment once and it would be accessible from all the
projects.
- </p>
- </div>
+
+ </p>
+ </div>
<div class="h4">
<h4><a name="Refactor Java Infrastructure into a
Service">Refactor Java Infrastructure into a Service</a></h4>
- <p>Much like Exec should be decoupled from Ant runtime, so
should classes
- to implement java task for the same benefits.</p>
- </div>
+ <p
+ > Much like Exec should be decoupled from Ant runtime, so
should classes
+ to implement java task for the same benefits.
+ </p>
+ </div>
<div class="h4">
<h4><a name="Structural Dependency Utils">Structural Dependency
Utils</a></h4>
- <p>
+ <p
+ >
In the present ant, it is required that each task manage
dependency separately.
This makes it a lot of work to implement even simple
dependency checking. To this
day many of the core tasks do not implement it correctly.
I am specifically
talking about "structural" dependency information. The
main reason is that it is
painful to implement.
- </p>
- <p>
- 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> actually depends upon
<code>foo.h</code>, <code>bar.h</code>
- and <code>baz.h</code>. 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
+
+ </p>
+ <p
+ > $escape.getText( $child )
+ <code
+ > foo.c
+ </code>
+ $escape.getText( $child )
+ <code
+ > foo.h
+ </code>
+ $escape.getText( $child )
+ <code
+ > bar.h
+ </code>
+ $escape.getText( $child )
+ <code
+ > baz.h
+ </code>
+ $escape.getText( $child )
+ </p>
+ <div id="source">
+ <pre>public interface DependencyGenerator
{
File[] generateDependencies( File file );
-}
-</pre>
+}</pre>
</div>
- <p>
- 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> may declare that
- it is dependent upon <code>foo.h</code>,
<code>bar.h</code> and <code>baz.h</code>, 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>
+ <p
+ > $escape.getText( $child )
+ <code
+ > foo.c
+ </code>
+ $escape.getText( $child )
+ <code
+ > foo.h
+ </code>
+ $escape.getText( $child )
+ <code
+ > bar.h
+ </code>
+ $escape.getText( $child )
+ <code
+ > baz.h
+ </code>
+ $escape.getText( $child )
+ </p>
+ <p
+ >
A possible API would be
- </p>
- <div id="source">
- <pre>
-DependencyManager dm = ...;
+
+ </p>
+ <div id="source">
+ <pre>DependencyManager dm = ...;
dm.setFileSet( myFileSet );
dm.setDependencyCache( myDependencyCacheFile );
-File[] files = cm.getOutOfDate();
-</pre>
+File[] files = cm.getOutOfDate();</pre>
</div>
- </div>
+ </div>
<div class="h4">
<h4><a name="Antlibs storing templates">Antlibs storing
templates</a></h4>
- <p>After a templating system is formalized it would useful
to define
+ <p
+ > After a templating system is formalized it would useful to
define
a mechanism via which you can store templates in an antlib.
These
templates could then be loaded and used by build files
through a
"standard" mechanism. This may need to be merged with the
XML catalog
- system.</p>
- </div>
+ system.
+ </p>
+ </div>
<div class="h4">
<h4><a name="Antlibs Storing General Resources">Antlibs Storing
General Resources</a></h4>
- <p>Add a system via which ant libs can store general
resources for
+ <p
+ > Add a system via which ant libs can store general resources
for
consumption by build users. This could be used to store the
XML fragments
for the XML catalog, the template fragments for templates,
images for
- documentation system and so forth.</p>
- </div>
+ documentation system and so forth.
+ </p>
+ </div>
<div class="h4">
<h4><a name="Coloring API">Coloring API</a></h4>
- <p>
- 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>, it may depend on
the <code>Bar.java</code>
- 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> file was compiled with
- <code>debug="true"</code> last run and this time needs to
be compiled with
- <code>debug="false"</code> then it is out of date and
needs to be recompiled. We call this
- "environmental" dependency information "coloring".
- </p>
- <p>
+ <p
+ > $escape.getText( $child )
+ <code
+ > Foo.java
+ </code>
+ $escape.getText( $child )
+ <code
+ > Bar.java
+ </code>
+ $escape.getText( $child )
+ <code
+ > Foo.java
+ </code>
+ $escape.getText( $child )
+ <code
+ > debug="true"
+ </code>
+ $escape.getText( $child )
+ <code
+ > debug="false"
+ </code>
+ $escape.getText( $child )
+ </p>
+ <p
+ >
So we need to create an infrastructure that allows tasks
to manage "coloring". So a task
should be able to add coloring information for each
resource processed. When the task
comes to process the resource again it will detect if the
coloring has changed and if it
has will force a recompile.
- </p>
- <p>
+
+ </p>
+ <p
+ >
An API for such a bean has yet to be established but an
example API would be.
- </p>
- <div id="source">
- <pre>
-ColoringManager cm = ...;
+
+ </p>
+ <div id="source">
+ <pre>ColoringManager cm = ...;
cm.addColor( "debug", "true" );
cm.addColor( "optimize", "false" );
cm.setFileSet( myFileSet );
-File[] files = cm.getOutOfDate();
-</pre>
+File[] files = cm.getOutOfDate();</pre>
</div>
- </div>
+ </div>
<div class="h4">
<h4><a name="Create Task/Element/Attribute Naming
guidelines">Create Task/Element/Attribute Naming guidelines</a></h4>
- <p> Currently Ant has a mixture of tasks from various
stages it's evolution, with different
+ <p
+ > Currently Ant has a mixture of tasks from various stages
it's evolution, with different
authors and each utilizing different naming patterns. Some
tasks use names such as
"src" and "dest" while others use "file" and "tofile". It
would be preferrable if
consistent naming patterns were used. It is recomended that
we come up with a "best
- practices" document to document our recomended naming
patterns.</p>
- <p>Before we can come up with such a document we
need to identify common patterns through
+ practices" document to document our recomended naming
patterns.
+ </p>
+ <p
+ > Before we can come up with such a document we need to
identify common patterns through
out the tasks. Several tasks have the notion of transforming
input from a "source"
to a "destination". So we should have consistent naming
schemes for these attributes and
elements. Analysis of existing tasks will likely bring out
other similar patterns. Once
- we have identified and documented these similarities then we
can establish conventions.</p>
- </div>
+ we have identified and documented these similarities then we
can establish conventions.
+ </p>
+ </div>
<div class="h4">
<h4><a name="Rethink Notification/Event scheme">Rethink
Notification/Event scheme</a></h4>
- <p>We need to rethink the whole notificaiton scheme.
Should tasks be able to
- raise events? Probably as long as we have
<em>ContainerTasks</em>. 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>
- <li>Add verbosity level to TaskEvent.</li>
- <li>Fire taskFinished() events on task failure.</li>
- <li>Get target finished and project finished events
working.</li>
- </ul>
- </div>
+ <p
+ > $escape.getText( $child )
+ <em
+ > ContainerTasks
+ </em>
+ $escape.getText( $child )
+ </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">
<h4><a name="XPath-like Locators for tasks">XPath-like Locators
for tasks</a></h4>
- <p>Most tasks are grouped into some sort of task
container. The task containers
+ <p
+ > Most tasks are grouped into some sort of task container. The
task containers
can be things like workspaces, projects, targets or other
tasks. Each of these
containers usually has a name. Thus we could refer to tasks
via a path such as
"/avalon/compile/javac" would refer to the task "javac" in
the target "compile"
in the project "avalon". In the past it has been requested
that a task get access
to this path programatically - other people have also asked
for access to things
like the currently running target. We need to assess this
and decide whether we
- wish to support it.</p>
- <p>Another point to think about is that we could use
XPath-like string to designate
- to other tasks to execute. ie antcall would refer to a path
rather than a target name</p>
- </div>
+ wish to support it.
+ </p>
+ <p
+ > Another point to think about is that we could use XPath-like
string to designate
+ to other tasks to execute. ie antcall would refer to a path
rather than a target name
+ </p>
+ </div>
<div class="h4">
<h4><a name="Embeddor HOWTO">Embeddor HOWTO</a></h4>
- <p>Assigned To: Peter</p>
- <p>Write a HOWTO describing how to embed Myrmidon
into other
- applications.</p>
- </div>
+ <p
+ > Assigned To: Peter
+ </p>
+ <p
+ > Write a HOWTO describing how to embed Myrmidon into other
+ applications.
+ </p>
+ </div>
<div class="h4">
<h4><a name="Optional Dependencies">Optional
Dependencies</a></h4>
- <p>Assigned To: Peter</p>
- <p>Extend Myrmidons library management facilities so
that optional
+ <p
+ > Assigned To: Peter
+ </p>
+ <p
+ > Extend Myrmidons library management facilities so that
optional
dependencies may be declared for a library. ie The library
will still
operate in absence of such libraries but can provide further
features
if these libraries are present. Most likely this will be
done via a
new manifest entry "Optional-Extension-List:" that behaves
similar
- to "Extension-List:" except that the extensions are
optional.</p>
- </div>
+ to "Extension-List:" except that the extensions are optional.
+ </p>
+ </div>
<div class="h4">
<h4><a name="Facade task HOWTO">Facade task HOWTO</a></h4>
- <p>Currently we have a few tasks that have multiple
implementations. For instance
+ <p
+ > Currently we have a few tasks that have multiple
implementations. For instance
Javac task can actually call jikes, jvc, classic javac or
modern javac. Similar things
will be seen with the jspc task and the cc task (if it ever
gets written). We have a base
class that is meant to facilitate this sort of task and make
it easy to develope. See
- AbstractFacadeTask. However we need to write up a HOWTO so
people can use it.</p>
- </div>
+ AbstractFacadeTask. However we need to write up a HOWTO so
people can use it.
+ </p>
+ </div>
<div class="h4">
<h4><a name="Mail tasks">Mail tasks</a></h4>
- <p>Convert the Ant 1.x Mail tasks to Myrmidon.</p>
- </div>
+ <p
+ > Convert the Ant 1.x Mail tasks to Myrmidon.
+ </p>
+ </div>
<div class="h4">
<h4><a name="Security Manager">Security Manager</a></h4>
- <p>Add the ability to run java programs that call
System.exit() by adding a
- security manager. Should look something like:</p>
- <div id="source">
- <pre>
-public class MyrmidonSecurityManager
+ <p
+ > Add the ability to run java programs that call System.exit()
by adding a
+ security manager. Should look something like:
+ </p>
+ <div id="source">
+ <pre>public class MyrmidonSecurityManager
extends SecurityManager
{
public void checkExit( final int status )
@@ -305,309 +381,637 @@
public void checkPermission( final Permission permission )
{
}
-}
- </pre>
+}</pre>
</div>
- </div>
+ </div>
<div class="h4">
<h4><a name="Self Hosting">Self Hosting</a></h4>
- <p>Myrmidon must be able to build itself. Currently, it
is built using
+ <p
+ > Myrmidon must be able to build itself. Currently, it is
built using
Ant 1.x. Ultimately, Myrmidon should be able to build
itself from exactly the
same build file. To start with, however, there is no need
for Myrmidon to be
able to do this. Myrmidon should also be able to be
bootstrapped (that is, be
- able to be built from scratch, without using Ant 1.x at
all).</p>
- </div>
+ able to be built from scratch, without using Ant 1.x at all).
+ </p>
+ </div>
<div class="h4">
<h4><a name="Validation Pass">Validation Pass</a></h4>
- <p>Consider calling validate() on task prior to execute().
This would allow
+ <p
+ > Consider calling validate() on task prior to execute(). This
would allow
us to have a "make -k" mode that actually did basic
validation and would also
- encourage task writers to do validation properly.</p>
- </div>
+ encourage task writers to do validation properly.
+ </p>
+ </div>
<div class="h4">
<h4><a name="Paths">Paths</a></h4>
- <p>Consider allowing the user to configure the ant system
by setting the
- following path types.</p>
- <ul>
- <li>ant.type.path: path that is used to search for the
type libraries</li>
- <li>ant.ext.path: path that is used to search for
"Optional Packages"
- or extensions.</li>
- </ul>
- <p>
+ <p
+ > Consider allowing the user to configure the ant system by
setting the
+ 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
+ >
The default search path will probably include a per-user
path element,
a workspace path element and a system path elemtn that are
searched in
that order. Some possible defaults;
- </p>
- <ul>
- <li>Unix Per-user: ${user.home}/.ant/lib,
${user.home}/.ant/ext</li>
- <li>Windows Per-user: ${user.home}/ant/lib,
${user.home}/ant/ext</li>
- <li>MacOSX Per-user: ${user.home}/Library/Ant/lib,
- ${user.home}/Library/Ant/ext</li>
- <li>Unix System-wide: /opt/ant/lib, /opt/ant/ext</li>
- <li>Unix System-wide: /usr/local/ant/lib,
/usr/local/ant/ext</li>
- <li>Windows System-wide: %SYS_DRIVE%/Program
Files/ant/lib,
- %SYS_DRIVE%/Program Files/ant/ext</li>
- <li>MacOSX System-wide: /Library/Ant/lib,
/Library/Ant/ant/ext</li>
- </ul>
- </div>
+
+ </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">
<h4><a name="Ant 1.x Compatibility">Ant 1.x
Compatibility</a></h4>
- <p>The Ant 1 Compatibility layer is still in early stages
of development.
- </p>
- <ul>
- <li>Update ant.jar and optional.jar to ant1.5 beta.</li>
- <li>Get a version of <code><antcall></code>
working.</li>
- <li>
- Provide hooks between Ant 1 references and Myrmidon
properties.
- May use converters for adapting Ant 2 objects (like Ant 2
- <code><path></code> or
<code><fileset></code>)
- as Ant 1 types.
- </li>
- <li>Add an adaptor to convert an Ant 1 BuildListener to a
- TaskListener.</li>
- <li>
- Missing tests:
- <ul>
- <li>Make sure properties are shared between Ant 1
and Myrmidon tasks.</li>
- </ul>
- </li>
- <li>Get GUMP runs going using Myrmidon.</li>
- <li>Add protected accessors for get/set/list properties
in
+ <p
+ > The Ant 1 Compatibility layer is still in early stages of
development.
+
+ </p>
+ <ul
+ > $escape.getText( $child )
+ <li
+ > Update ant.jar and optional.jar to ant1.5 beta.
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <code
+ > <antcall>
+ </code>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <code
+ > <path>
+ </code>
+ $escape.getText( $child )
+ <code
+ > <fileset>
+ </code>
+ $escape.getText( $child )
+ </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 )
+ <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>
- </ul>
- </div>
+ Ant1CompatProject.
+ </li>
+ $escape.getText( $child )
+ </ul>
+ </div>
<div class="h4">
<h4><a name="Virtual File System">Virtual File System</a></h4>
- <p>The VFS needs plenty of work:</p>
- <ul>
- <li>Move files/folders.</li>
- <li>Recursive folders copy.</li>
- <li>Search through a file hierarchy, using Ant-style
wildcards.</li>
- <li>Search through a file hierarchy, using a Selector
interface.</li>
- <li>The in-memory caching mechanism is pretty
rudimentary at this stage.
+ <p
+ > 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>
- <li>Convert files/folders into local files, for handing
off
- to external commands, or legacy tasks.</li>
- <li>Refactor the replication mechanism out of
ZipFileSystemProvder,
- and make more general pluggable.</li>
- <li>Capabilities discovery.</li>
- <li>Attributes and attribute schema.</li>
- <li>Handle file canonicalisation better (for cases like
case-insensitive
- file systems, symbolic links, name encoding, etc).</li>
- <li>File system layering. That is, the ability for a
file system to
+
+ </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
(e.g. Zip/Jar/Tar file systems, gzip/encoding file
systems, virtual file
systems).
- </li>
- </ul>
- </div>
+
+ </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>The file data-types, such as
- <code><fileset></code> and
-
- <code><path></code>, are some of the most widely
used parts of Ant 1.x.
- Unfortunately, they aren't particularly extensible.
- </p>
- <ul>
- <li>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>, rather than
- <code>java.io.File</code>.
- This process has started, in the
- <code>antlib.vfile</code> package.
-
- </li>
- <li>File Selectors:
-
- <ul>
- <li>Change
- <code>AbstractNameFileSelector</code> to use
Ant 1 style patterns
- matches, rather than Globs patterns.
- </li>
- <li>Add 'defaultexcludes' to
- <code>DefaultFileSet</code>. Also add a
- file selector implementation that matches
everything except the default
- excludes.
- </li>
- <li>Add a name selector that loads patterns from
a file.</li>
- <li>Add more selector implementations: size and
last-modified comparisons,
- checksum comparison, byte-wise content
comparison.</li>
- </ul>
- </li>
- <li>File conditions:
-
- <ul>
- <li>Add more condition implementations that
perform checks on files.
- One that searches a path for a file would be
useful.</li>
- </ul>
- </li>
- <li>File Name Mappers:
-
- <ul>
- <li>Change FileNameMapper.mapFileName() to take
vfs.FileName objects.</li>
- <li>Move the current mapper implementations
across to antlib.</li>
- </ul>
- </li>
- <li>File Sets:
-
- <ul>
- <li>Add a file set implementation that provides
the union of several
+ <p
+ > $escape.getText( $child )
+ <code
+ > <fileset>
+ </code>
+ $escape.getText( $child )
+ <code
+ > <path>
+ </code>
+ $escape.getText( $child )
+ </p>
+ <ul
+ > $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <code
+ > FileObject
+ </code>
+ $escape.getText( $child )
+ <code
+ > java.io.File
+ </code>
+ $escape.getText( $child )
+ <code
+ > antlib.vfile
+ </code>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <ul
+ > $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <code
+ > AbstractNameFileSelector
+ </code>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <code
+ > DefaultFileSet
+ </code>
+ $escape.getText( $child )
+ </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 )
+ <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 )
+ <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 )
+ <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>
- <li>Add a file set implementation that filters
files that are up-to-date
+ 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>
- </ul>
- </li>
- <li>Paths:
-
- <ul>
- <li>Add path implementations that evaluate to
the system classpath,
- and the ant runtime classpath. Or, more
generally, combine this with
-
- <code>ClassLoaderManager</code> 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>
- </ul>
- </li>
- <li>Port across the Ant 1 file filter proposal, once it
is complete.</li>
- <li>Copy task:
-
- <ul>
- <li>Implement 'preservelastmodified',
'overwrite', and 'includeemptydirs'.</li>
- <li>Support a file name mapper.</li>
- <li>Support file filters.</li>
- <li>Detect and handle destination file name
collisions.</li>
- </ul>
- </li>
- <li>Implement the
- <code><move></code>,
- <code><delete></code>,
-
- <code><touch></code> and
- <code><mkdir></code> 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>
- </ul>
- </div>
+ file selector.
+ </li>
+ $escape.getText( $child )
+ </ul>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <ul
+ > $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <code
+ > ClassLoaderManager
+ </code>
+ $escape.getText( $child )
+ </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 )
+ <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 )
+ <code
+ > <move>
+ </code>
+ $escape.getText( $child )
+ <code
+ > <delete>
+ </code>
+ $escape.getText( $child )
+ <code
+ > <touch>
+ </code>
+ $escape.getText( $child )
+ <code
+ > <mkdir>
+ </code>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ </ul>
+ </div>
<div class="h4">
<h4><a name="Command-line and Configuration Files">Command-line
and Configuration Files</a></h4>
- <p>One of the goals of Ant 2 is to allow the user to
easily customise and
+ <p
+ > One of the goals of Ant 2 is to allow the user to easily
customise and
extend Ant. The command-line and local configuration files,
are two places
where this would be done. Currently, Myrmidon some
customisation from the
- command-line, but does not support configuration files.</p>
- <ul>
-
- <li>Load configuration from system (from $ANT_HOME) and
user (from $HOME)
- configuration files.</li>
-
- <li>Allow the following via config files:
-
- <ul>
- <li>Add (or override) the
- <code>lib</code> and
- <code>ext</code> directories.
- </li>
- <li>Enable more than one listener, and configure
the listeners from
- the conents of the config file.</li>
- <li>Import libraries, and set properties.</li>
- <li>Execute tasks.</li>
- <li>Install and configure runtime services.</li>
- </ul>
- </li>
-
- </ul>
- </div>
+ 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 )
+ <ul
+ > $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <code
+ > lib
+ </code>
+ $escape.getText( $child )
+ <code
+ > ext
+ </code>
+ $escape.getText( $child )
+ </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">
<h4><a name="Scripting">Scripting</a></h4>
- <p>Add the ability to extend Ant using languages other than
- Java:</p>
- <ul>
- <li>Define a task using a scripting language such as
Javascript.</li>
- <li>Use Rhino's ability to implement Java interfaces, to
+ <p
+ > Add the ability to extend Ant using languages other than
+ 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>
- <li>Define a task using template.</li>
- <li>Add some lightweight scripting tasks.</li>
- </ul>
- </div>
+ 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">
<h4><a name="Documentation">Documentation</a></h4>
- <p>Everyone loves writing documentation, and so a goal for
Ant 2 is to
+ <p
+ > Everyone loves writing documentation, and so a goal for Ant 2
is to
generate a lot of reference documentation for tasks and
other types directly
from the source. Unfortunately, there's still plenty of
tutorial material
- to write. In particular we need these:</p>
- <ul>
- <li>User documentation - describing things like the
build file format,
+ 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>
-
- <li>Task writer documentation - describing things like
an overview the task API,
+ 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>
-
- <li>Myrmidon developer documentation - a broad outline
of the architecture,
+ 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>
-
- </ul>
- </div>
+ of filling out.
+ </li>
+ $escape.getText( $child )
+ </ul>
+ </div>
<div class="h4">
<h4><a name="Miscellaneous">Miscellaneous</a></h4>
- <p>A completely unordered list of items, big and small:</p>
- <ul>
- <li>Search through the code for 'TODO' items and fix
them.</li>
- <li>Detect duplicate type names.</li>
- <li>Validate type and role names.</li>
- <li>Move the
- <code><http></code> and
- <code><socket></code>
- conditions to an antlib.
- </li>
- <li>Add an else block to the
- <code><if></code> task.
- </li>
- <li>Move the XML parser to <code>bin/lib</code> in the
distribution,
- and make available to other jars via the extension
mechanism.
- </li>
- <li>Change <code>DefaultPropertyResolver</code> to
ignore '$${'.</li>
- <li>Add a property resolver which uses xpath to resolve
values.</li>
- <li>Change <code>ProjectBuilder</code>
- and <code>Embeddor</code> to throw something more
- specialised than Exception.
- </li>
- <li>Change <code>DefaultLibraryManager</code> to handle
- directories as part of a library classpath.
- </li>
- <li><code><condition></code> should set the
property
- value to <code>false</code> when the condition is
false.</li>
- <li>Split the <code><uptodate></code> condition
into
- a condition that checks against a single target file,
- and one which checks using a destdir/mapper.</li>
- <li>Add condition implementations to: check JVM version,
+ <p
+ > 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 )
+ <code
+ > <http>
+ </code>
+ $escape.getText( $child )
+ <code
+ > <socket>
+ </code>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <code
+ > <if>
+ </code>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <code
+ > bin/lib
+ </code>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <code
+ > DefaultPropertyResolver
+ </code>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > Add a property resolver which uses xpath to resolve values.
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <code
+ > ProjectBuilder
+ </code>
+ $escape.getText( $child )
+ <code
+ > Embeddor
+ </code>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <code
+ > DefaultLibraryManager
+ </code>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > <code
+ > <condition>
+ </code>
+ $escape.getText( $child )
+ <code
+ > false
+ </code>
+ $escape.getText( $child )
+ </li>
+ $escape.getText( $child )
+ <li
+ > $escape.getText( $child )
+ <code
+ > <uptodate>
+ </code>
+ $escape.getText( $child )
+ </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>
- <li>Add a task to unset a property.</li>
- <li>Change the typelib, import and -def tasks to allow
more than one
- type to be specified.</li>
- <li>Use AUT jprocess in the ExecuteJava class, running
the
+ 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>
- <li>Change DefaultEmbeddor to implement
ExecutionContainer,
+ 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>
- <li>Add a ScopedService interface, to replace
- TypeManager.createChildTypeManager(),
Deployer.createChildDeployer, etc.</li>
- <li>Configurer needs to be scoped. RoleManager probably
does too.</li>
- </ul>
- </div>
+ 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>
</div></div></td>
</tr>
@@ -624,7 +1028,20 @@
</body>
</html>
-<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1.7 +434 -153 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.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- vfs.html 6 Jun 2002 12:54:29 -0000 1.6
+++ vfs.html 13 Jun 2002 08:14:39 -0000 1.7
@@ -1,9 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
-<!-- Content Stylesheet for Site -->
-
-
-<!-- start the processing -->
+<!-- This is a generated file. Do not edit. -->
<html>
<head>
<style type="text/css">
@@ -91,232 +88,503 @@
<td><div id="bodycol"><div class="app">
<div class="h3">
<h3><a name="Handling Files">Handling Files</a></h3>
- <p>Myrmidon includes a Virtual File System (VFS), which
allows files from
+ <p
+ > Myrmidon includes a Virtual File System (VFS), which allows
files from
different sources to be treated identically. The VFS currently
supports
- the following file types:</p>
- <table cellpadding="3" cellspacing="2" border="1"
width="100%">
+ the following file types:
+ </p>
+ <table cellpadding="3" cellspacing="2"
border="1" width="100%">
<tr class="a">
<th
>
- File System
- </th>
+ File System
+ </th>
<th
>
- Description
- </th>
+ Description
+ </th>
<th
>
- URL Format
- </th>
+ URL Format
+ </th>
</tr>
<tr class="b">
<td
>
- Local Files
- </td>
+ Local Files
+ </td>
<td
>
- Files on the local file system.
- </td>
+ Files on the local file system.
+ </td>
<td
>
- Three different formats are currently supported for local file
names:
- <ul>
- <li><code>file://</code>
<i>absolute-file-name</i></li>
- <li>Absolute file names</li>
- <li>Relative file names. These are resolved
relative to the
+ $escape.getText( $child )
+ <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>
- </ul>
-
- </td>
+
+ </li>
+ $escape.getText( $child )
+ </ul>
+ $escape.getText( $child )
+ </td>
</tr>
<tr class="a">
<td
>
- Zip Files
- </td>
+ Zip Files
+ </td>
<td
>
- The contents of Zip files (and Jar, War, and Ear files).
+ The contents of Zip files (and Jar, War, and Ear files).
Currently, the VFS supports read-only access to Zip file
contents.
- </td>
+ </td>
<td
>
- <code>zip:</code> <i>zip-file-uri</i>
[<code>!</code><i>absolute-path</i>]
- </td>
+ <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">
<td
>
- FTP
- </td>
+ FTP
+ </td>
<td
>
- Files on an FTP server.
- </td>
+ Files on an FTP server.
+ </td>
<td
>
- <code>ftp://</code> [[<i>password</i><code>:</code>]
<i>username</i><code>@</code>] <i>hostname</i> [<code>:</code><i>port</i>]
[<i>absolute-path</i>]
- </td>
+ <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">
<td
>
- SMB
- </td>
+ SMB
+ </td>
<td
>
- Files on a CFIS server, such as Samba or Windows shares.
- </td>
+ Files on a CFIS server, such as Samba or Windows shares.
+ </td>
<td
>
- <code>smb://</code> [[<i>password</i><code>:</code>]
<i>username</i><code>@</code>] <i>hostname</i> [<code>:</code><i>port</i>]
[<i>absolute-path</i>]
- </td>
+ <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>
- <p>Both forward or backward slashes can be used to
separate the elements of
- a URL.</p>
- <p>Here are some example URLs:</p>
- <ul>
- <li><code>build/classes</code></li>
- <li><code>c:\program files\ant\bin</code></li>
- <li><code>file://C:/program files/ant</code></li>
- <li><code>zip:build/lib/ant.jar!/org/apache/tools</code></li>
- <li><code>ftp://[EMAIL PROTECTED]/pub/downloads</code></li>
- <li><code>smb://password:[EMAIL
PROTECTED]/home/adam</code></li>
+ <p
+ > Both forward or backward slashes can be used to separate the
elements of
+ a URL.
+ </p>
+ <p
+ > 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
- as more tasks are ported to the new API, and data types.</p>
- <div class="h4">
+ <p
+ > Currently, there are only a handful of VFS aware tasks. This
will grow
+ as more tasks are ported to the new API, and data types.
+ </p>
+ <div class="h4">
<h4><a name="File Sets">File Sets</a></h4>
- <p>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>, and so
- can be used anywhere that a path can.</p>
- <h3><code><v-fileset></code></h3>
- <p>This is the equivalent of Ant 1's
<code><fileset></code> (The name
- is temporary, it will be changed to
<code><fileset></code> once more
- porting work as been completed).</p>
- <p>Rather than use a set of include and exclude
patterns to choose the files
- that make up the file set, <code><v-fileset></code>
takes zero or more
- <a href="#File Selectors">file selectors</a>. 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> selectors to achieve
the same result
- as using includes or excludes.</p>
- <p>A <code><v-fileset></code> element takes
the following attributes:</p>
- <table cellpadding="3" cellspacing="2" border="1"
width="100%">
+ <p
+ > $escape.getText( $child )
+ <a href="#Paths">path</a>
+ $escape.getText( $child )
+ </p>
+ <h3
+ > <code
+ > <v-fileset>
+ </code>
+ </h3>
+ <p
+ > $escape.getText( $child )
+ <code
+ > <fileset>
+ </code>
+ $escape.getText( $child )
+ <code
+ > <fileset>
+ </code>
+ $escape.getText( $child )
+ </p>
+ <p
+ > $escape.getText( $child )
+ <code
+ > <v-fileset>
+ </code>
+ $escape.getText( $child )
+ <a href="#File Selectors">file
selectors</a>
+ $escape.getText( $child )
+ <code
+ > <name>
+ </code>
+ $escape.getText( $child )
+ </p>
+ <p
+ > $escape.getText( $child )
+ <code
+ > <v-fileset>
+ </code>
+ $escape.getText( $child )
+ </p>
+ <table cellpadding="3" cellspacing="2" border="1"
width="100%">
<tr class="a">
<th
>
- Attribute
- </th>
+ Attribute
+ </th>
<th
>
- Description
- </th>
+ Description
+ </th>
<th
>
- Default Value
- </th>
+ Default Value
+ </th>
</tr>
<tr class="b">
<td
>
- dir
- </td>
+ dir
+ </td>
<td
>
- The base directory for the file set. This can be any URL that the
+ The base directory for the file set. This can be any URL
that the
VFS supports.
- </td>
+ </td>
<td
>
- Required
- </td>
+ Required
+ </td>
</tr>
</table>
- <p>A <code><v-fileset></code> element takes
any number of nested
- <a href="#File Selectors">file selector</a> 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:</p>
- <div id="source">
- <pre>
-
-<v-fileset dir="src">
+ <p
+ > $escape.getText( $child )
+ <code
+ > <v-fileset>
+ </code>
+ $escape.getText( $child )
+ <a href="#File Selectors">file
selector</a>
+ $escape.getText( $child )
+ </p>
+ <p
+ > An example:
+ </p>
+ <div id="source">
+ <pre><v-fileset dir="src">
<name pattern="org/apache/tools/ant/**"/>
<is-file/>
-</v-fileset>
-</pre>
+</v-fileset></pre>
</div>
- <h3><code><flat-fileset></code></h3>
- <p>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>
- attribute for the copy and move tasks.</p>
- <p>A <code><flat-fileset></code> element takes
no attributes, and a set
- of nested paths or file sets.</p>
- <p>An example:</p>
- <div id="source">
- <pre>
-
-<v-copy todir="dist/lib">
+ <h3
+ > <code
+ > <flat-fileset>
+ </code>
+ </h3>
+ <p
+ > $escape.getText( $child )
+ <code
+ > flatten
+ </code>
+ $escape.getText( $child )
+ </p>
+ <p
+ > $escape.getText( $child )
+ <code
+ > <flat-fileset>
+ </code>
+ $escape.getText( $child )
+ </p>
+ <p
+ > An example:
+ </p>
+ <div id="source">
+ <pre><v-copy todir="dist/lib">
<flat-fileset>
<v-fileset dir="build/lib">
<basename pattern="*.jar"/>
<v-fileset>
<v-path path="${classpath}"/>
</flat-fileset>
-</v-copy>
-</pre>
+</v-copy></pre>
</div>
- <h3><code><mapped-fileset></code></h3>
- <p>A fileset that applies a <a
href="buildfile.html#File Name Mappers">file name mapper</a>
- to a nested fileset.
- </p>
- </div>
+ <h3
+ > <code
+ > <mapped-fileset>
+ </code>
+ </h3>
+ <p
+ > $escape.getText( $child )
+ <a href="buildfile.html#File Name
Mappers">file name mapper</a>
+ $escape.getText( $child )
+ </p>
+ </div>
<div class="h4">
<h4><a name="Paths">Paths</a></h4>
- <p>Paths are an ordered list of files.</p>
- <h3><code><v-path></code></h3>
- <p>This is the equivalent of Ant 1's
<code><path></code>.</p>
- <h3><code><filtered-path></code></h3>
- <p>A path that applies file selectors to a set of
nested file sets and paths.</p>
- </div>
+ <p
+ > Paths are an ordered list of files.
+ </p>
+ <h3
+ > <code
+ > <v-path>
+ </code>
+ </h3>
+ <p
+ > $escape.getText( $child )
+ <code
+ > <path>
+ </code>
+ $escape.getText( $child )
+ </p>
+ <h3
+ > <code
+ > <filtered-path>
+ </code>
+ </h3>
+ <p
+ > A path that applies file selectors to a set of nested file
sets and paths.
+ </p>
+ </div>
<div class="h4">
<h4><a name="File Selectors">File Selectors</a></h4>
- <p>File selectors are used to select files from file sets
and paths.</p>
- <h3><code><and></code></h3>
- <p>Combines zero or more file selectors, using AND.
An empty <code><and></code>
- selector accepts all files.</p>
- <h3><code><basename></code></h3>
- <p>Selects files whose base name matches an Ant 1
style pattern, or a regular
- expression.</p>
- <h3><code><condition></code></h3>
- <p>Takes a set of <a
href="buildfile.html#Conditions">conditions</a>. If
- the conditions evaluate to true, then select every file.
Otherwise,
- select no files.</p>
- <h3><code><exists></code></h3>
- <p>Selects files that exist.</p>
- <h3><code><is-empty-folder></code></h3>
- <p>Selects empty folders, that is, folders that have
no children.</p>
- <h3><code><is-folder></code></h3>
- <p>Selects folders, does not select regular
files.</p>
- <h3><code><is-file></code></h3>
- <p>Selects regular files, does not select
folders.</p>
- <h3><code><name></code></h3>
- <p>Selects files whose path in a file set matches an
Ant 1 style pattern, or
- a regular expression.</p>
- <h3><code><not></code></h3>
- <p>Selects files that are not selected by a nested
file selector.</p>
- <h3><code><or></code></h3>
- <p>Combines zero or more file selectors, using OR.
An empty <code><or></code>
- selector accepts all files.</p>
- <h3><code><url></code></h3>
- <p>Selects files whose URL matches an Ant 1 style
pattern, or a regular expression.</p>
- </div>
+ <p
+ > File selectors are used to select files from file sets and
paths.
+ </p>
+ <h3
+ > <code
+ > <and>
+ </code>
+ </h3>
+ <p
+ > $escape.getText( $child )
+ <code
+ > <and>
+ </code>
+ $escape.getText( $child )
+ </p>
+ <h3
+ > <code
+ > <basename>
+ </code>
+ </h3>
+ <p
+ > Selects files whose base name matches an Ant 1 style pattern,
or a regular
+ expression.
+ </p>
+ <h3
+ > <code
+ > <condition>
+ </code>
+ </h3>
+ <p
+ > $escape.getText( $child )
+ <a
href="buildfile.html#Conditions">conditions</a>
+ $escape.getText( $child )
+ </p>
+ <h3
+ > <code
+ > <exists>
+ </code>
+ </h3>
+ <p
+ > Selects files that exist.
+ </p>
+ <h3
+ > <code
+ > <is-empty-folder>
+ </code>
+ </h3>
+ <p
+ > Selects empty folders, that is, folders that have no children.
+ </p>
+ <h3
+ > <code
+ > <is-folder>
+ </code>
+ </h3>
+ <p
+ > Selects folders, does not select regular files.
+ </p>
+ <h3
+ > <code
+ > <is-file>
+ </code>
+ </h3>
+ <p
+ > Selects regular files, does not select folders.
+ </p>
+ <h3
+ > <code
+ > <name>
+ </code>
+ </h3>
+ <p
+ > Selects files whose path in a file set matches an Ant 1 style
pattern, or
+ a regular expression.
+ </p>
+ <h3
+ > <code
+ > <not>
+ </code>
+ </h3>
+ <p
+ > Selects files that are not selected by a nested file selector.
+ </p>
+ <h3
+ > <code
+ > <or>
+ </code>
+ </h3>
+ <p
+ > $escape.getText( $child )
+ <code
+ > <or>
+ </code>
+ $escape.getText( $child )
+ </p>
+ <h3
+ > <code
+ > <url>
+ </code>
+ </h3>
+ <p
+ > Selects files whose URL matches an Ant 1 style pattern, or a
regular expression.
+ </p>
+ </div>
</div>
</div></div></td>
</tr>
@@ -333,7 +601,20 @@
</body>
</html>
-<!-- end the processing -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1.2 +1 -1 jakarta-ant-myrmidon/site/docs/css/tigris.css
Index: tigris.css
===================================================================
RCS file: /home/cvs/jakarta-ant-myrmidon/site/docs/css/tigris.css,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- tigris.css 6 Jun 2002 12:54:29 -0000 1.1
+++ tigris.css 13 Jun 2002 08:14:40 -0000 1.2
@@ -223,7 +223,7 @@
font-size: small
}
small, div#footer td, div#login, div.tabs th, div.tabs td, input, select,
.paginate, .functnbar, .functnbar2, .functnbar3, #breadcrumbs td,
.courtesylinks, #rightcol div.help, .colbar, .tasknav, body.docs div#toc,
#leftcol {
- font-size: xx-small;
+ font-size: x-small;
voice-family: "\"}\"";
voice-family: inherit;
font-size: x-small
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>