darrell 02/03/21 20:26:34
Modified: proposal/myrmidon/docs buildfile.html classloader.html
getinvolved.html index.html librarys.html task.html
todo.html user.html vfs.html
proposal/myrmidon/src/xdocs todo.xml
proposal/myrmidon/src/xdocs/stylesheets project.xml
Added: proposal/myrmidon/docs ant1compat.html
proposal/myrmidon/src/xdocs ant1compat.xml
Removed: proposal/myrmidon/src/ant1compat README.txt
Log:
Converted Ant1 Compatibility layer README to xdoc,
and updated the docs.
Revision Changes Path
1.5 +2 -0 jakarta-ant/proposal/myrmidon/docs/buildfile.html
Index: buildfile.html
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/docs/buildfile.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- buildfile.html 13 Mar 2002 08:02:13 -0000 1.4
+++ buildfile.html 22 Mar 2002 04:26:34 -0000 1.5
@@ -50,6 +50,8 @@
</li>
<li> <a href="./vfs.html">Virtual File System</a>
</li>
+ <li> <a href="./ant1compat.html">Ant1 Compatibility Layer</a>
+ </li>
</ul>
<p><strong>Extending Ant</strong></p>
<ul>
1.2 +2 -0 jakarta-ant/proposal/myrmidon/docs/classloader.html
Index: classloader.html
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/docs/classloader.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- classloader.html 2 Mar 2002 01:53:59 -0000 1.1
+++ classloader.html 22 Mar 2002 04:26:34 -0000 1.2
@@ -50,6 +50,8 @@
</li>
<li> <a href="./vfs.html">Virtual File System</a>
</li>
+ <li> <a href="./ant1compat.html">Ant1 Compatibility Layer</a>
+ </li>
</ul>
<p><strong>Extending Ant</strong></p>
<ul>
1.2 +2 -0 jakarta-ant/proposal/myrmidon/docs/getinvolved.html
Index: getinvolved.html
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/docs/getinvolved.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- getinvolved.html 2 Mar 2002 01:53:59 -0000 1.1
+++ getinvolved.html 22 Mar 2002 04:26:34 -0000 1.2
@@ -50,6 +50,8 @@
</li>
<li> <a href="./vfs.html">Virtual File System</a>
</li>
+ <li> <a href="./ant1compat.html">Ant1 Compatibility Layer</a>
+ </li>
</ul>
<p><strong>Extending Ant</strong></p>
<ul>
1.5 +2 -0 jakarta-ant/proposal/myrmidon/docs/index.html
Index: index.html
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/docs/index.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- index.html 2 Mar 2002 01:53:59 -0000 1.4
+++ index.html 22 Mar 2002 04:26:34 -0000 1.5
@@ -50,6 +50,8 @@
</li>
<li> <a href="./vfs.html">Virtual File System</a>
</li>
+ <li> <a href="./ant1compat.html">Ant1 Compatibility Layer</a>
+ </li>
</ul>
<p><strong>Extending Ant</strong></p>
<ul>
1.2 +2 -0 jakarta-ant/proposal/myrmidon/docs/librarys.html
Index: librarys.html
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/docs/librarys.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- librarys.html 2 Mar 2002 01:53:59 -0000 1.1
+++ librarys.html 22 Mar 2002 04:26:34 -0000 1.2
@@ -50,6 +50,8 @@
</li>
<li> <a href="./vfs.html">Virtual File System</a>
</li>
+ <li> <a href="./ant1compat.html">Ant1 Compatibility Layer</a>
+ </li>
</ul>
<p><strong>Extending Ant</strong></p>
<ul>
1.2 +2 -0 jakarta-ant/proposal/myrmidon/docs/task.html
Index: task.html
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/docs/task.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- task.html 3 Mar 2002 08:32:28 -0000 1.1
+++ task.html 22 Mar 2002 04:26:34 -0000 1.2
@@ -50,6 +50,8 @@
</li>
<li> <a href="./vfs.html">Virtual File System</a>
</li>
+ <li> <a href="./ant1compat.html">Ant1 Compatibility Layer</a>
+ </li>
</ul>
<p><strong>Extending Ant</strong></p>
<ul>
1.9 +173 -64 jakarta-ant/proposal/myrmidon/docs/todo.html
Index: todo.html
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/docs/todo.html,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- todo.html 13 Mar 2002 08:02:13 -0000 1.8
+++ todo.html 22 Mar 2002 04:26:34 -0000 1.9
@@ -50,6 +50,8 @@
</li>
<li> <a href="./vfs.html">Virtual File System</a>
</li>
+ <li> <a href="./ant1compat.html">Ant1 Compatibility Layer</a>
+ </li>
</ul>
<p><strong>Extending Ant</strong></p>
<ul>
@@ -96,14 +98,69 @@
<table border="0" cellspacing="0"
cellpadding="2" width="100%">
<tr><td bgcolor="#828DA6">
<font color="#ffffff" face="arial,helvetica,sanserif">
+ <a name="Paths"><strong>Paths</strong></a>
+ </font>
+ </td></tr>
+ <tr><td>
+ <blockquote>
+ <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>
+ 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>
+ </blockquote>
+ </td></tr>
+ </table>
+ <table border="0" cellspacing="0"
cellpadding="2" width="100%">
+ <tr><td bgcolor="#828DA6">
+ <font color="#ffffff" face="arial,helvetica,sanserif">
<a name="Ant 1.x Compatibility"><strong>Ant 1.x
Compatibility</strong></a>
</font>
</td></tr>
<tr><td>
<blockquote>
- <p>There are 2 parts to this broad topic: Allow Ant
1.x build scripts to be
- executed by Myrmidon, and allow Ant 1.x tasks to be executed
unmodified
- by Myrmidon.</p>
+ <p>The Ant1 Compatibility layer is still in early
stages of development.
+ </p>
+ <ul>
+ <li>Get a version of <code><ant></code> and
+ <code><antcall></code> working.</li>
+ <li>
+ Provide hooks between Ant1 references and Myrmidon
properties.
+ May use converters for adapting Ant2 objects (like Ant2
+ <code><path></code> or
<code><fileset></code>)
+ as Ant1 types.
+ </li>
+ <li>Handle differences between Ant1 if/unless on targets,
+ and Myrmidon <if> task.</li>
+ <li>
+ Write tests for the various bits that rely on Myrmidon
+ functionality:
+ <ul>
+ <li>if/unless on targets: check that behaviour
complies with Ant1</li>
+ <li>Make sure properties are shared between Ant1 and
Myrmidon tasks.</li>
+ <li>Make sure that <ant1.property> behaves as
per Ant1</li>
+ </ul>
+ </li>
+ <li>Get GUMP runs going using Myrmidon.</li>
+ </ul>
</blockquote>
</td></tr>
</table>
@@ -150,66 +207,96 @@
</td></tr>
<tr><td>
<blockquote>
- <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>
+ <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.
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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
- 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
- WRT some other file. Alternatively, this might be
better done as a
- file selector.</li>
- </ul></li>
+
+ <ul>
+ <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
+ 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>
+
+ <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
+
+ <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>
+ 'touch' and 'mkdir' into a single task.
+ </li>
</ul>
</blockquote>
</td></tr>
@@ -232,8 +319,12 @@
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>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>
@@ -308,7 +399,9 @@
<ul>
<li>Search through the code for 'TODO' items and fix
them.</li>
<li>Allow service factories to be configured from the
contents of the
- <code>ant-services.xml</code> descriptor.</li>
+
+ <code>ant-services.xml</code> descriptor.
+ </li>
<li>Route external process stdout and stderr through the
logger.</li>
<li>Add verbosity level to ProjectListener LogEvent</li>
<li>Fire ProjectListener events taskFinished(),
targetFinished() and
@@ -320,17 +413,33 @@
<li>Detect duplicate type names.</li>
<li>Add fully qualified type names, based on antlib name
and type shorthand name.
Allow these to be used in build files in addition to the
shorthand names.</li>
- <li>Move the <code><http></code> and
<code><socket></code>
- conditions to an antlib. Need to resolve how these will
be passed a logger.</li>
- <li>Make the <code><uptodate></code> task a
condition, and move to
- an antlib.</li>
- <li>Split up <code><is-set></code> condition into
is-set and is-true conditions.</li>
- <li>Allow the <code><if></code> task to take any
condition implementation.</li>
- <li>Add an else block to the <code><if></code>
task.</li>
- <li>Split the <code><available></code> condition
into separate conditions
- that test for the availability of a class, or a
resource.</li>
- <li>Move <code>crimson.jar</code> to
<code>bin/lib</code> in the distribution,
- and make to other jars via the extension mechanism.</li>
+ <li>Move the
+ <code><http></code> and
+ <code><socket></code>
+ conditions to an antlib. Need to resolve how these will
be passed a logger.
+ </li>
+ <li>Make the
+ <code><uptodate></code> task a condition, and
move to
+ an antlib.
+ </li>
+ <li>Split up
+ <code><is-set></code> condition into is-set
and is-true conditions.
+ </li>
+ <li>Allow the
+ <code><if></code> task to take any condition
implementation.
+ </li>
+ <li>Add an else block to the
+ <code><if></code> task.
+ </li>
+ <li>Split the
+ <code><available></code> condition into
separate conditions
+ that test for the availability of a class, or a resource.
+ </li>
+ <li>Move
+ <code>crimson.jar</code> to
+ <code>bin/lib</code> in the distribution,
+ and make to other jars via the extension mechanism.
+ </li>
<li>Unit tests.</li>
</ul>
</blockquote>
1.5 +2 -0 jakarta-ant/proposal/myrmidon/docs/user.html
Index: user.html
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/docs/user.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- user.html 9 Mar 2002 10:31:29 -0000 1.4
+++ user.html 22 Mar 2002 04:26:34 -0000 1.5
@@ -50,6 +50,8 @@
</li>
<li> <a href="./vfs.html">Virtual File System</a>
</li>
+ <li> <a href="./ant1compat.html">Ant1 Compatibility Layer</a>
+ </li>
</ul>
<p><strong>Extending Ant</strong></p>
<ul>
1.6 +2 -0 jakarta-ant/proposal/myrmidon/docs/vfs.html
Index: vfs.html
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/docs/vfs.html,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- vfs.html 13 Mar 2002 08:02:13 -0000 1.5
+++ vfs.html 22 Mar 2002 04:26:34 -0000 1.6
@@ -50,6 +50,8 @@
</li>
<li> <a href="./vfs.html">Virtual File System</a>
</li>
+ <li> <a href="./ant1compat.html">Ant1 Compatibility Layer</a>
+ </li>
</ul>
<p><strong>Extending Ant</strong></p>
<ul>
1.1 jakarta-ant/proposal/myrmidon/docs/ant1compat.html
Index: ant1compat.html
===================================================================
<!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 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1"/>
<meta name="author" value="Darrell DeBoer">
<meta name="email" value="darrell at apache dot org">
<title>Apache Myrmidon - Ant1 Compatibitlity Layer</title>
</head>
<body bgcolor="#ffffff" text="#000000" link="#525D76">
<table border="0" width="100%" cellspacing="0">
<!-- TOP IMAGE -->
<tr>
<td> <td colspan="2">
<a href="http://jakarta.apache.org"><img
src="http://jakarta.apache.org/images/jakarta-logo.gif" align="left"
border="0"/></a>
</td>
</td>
<td valign="bottom"><div align="right"><b><font size="+3"
color="#525D76">Apache Myrmidon</font></b></div></td>
</tr>
</table>
<table border="0" width="100%" cellspacing="4">
<tr><td colspan="2">
<hr noshade="" size="1"/>
</td></tr>
<tr>
<!-- LEFT SIDE NAVIGATION -->
<td valign="top" nowrap="true">
<p><strong>Myrmidon</strong></p>
<ul>
<li> <a href="./index.html">Introduction</a>
</li>
<li> <a href="./getinvolved.html">Get Involved</a>
</li>
<li> <a href="./user.html">Building Myrmidon</a>
</li>
<li> <a href="./todo.html">Todo List</a>
</li>
</ul>
<p><strong>User Guide</strong></p>
<ul>
<li> <a href="./buildfile.html">Build file</a>
</li>
<li> <a href="./vfs.html">Virtual File System</a>
</li>
<li> <a href="./ant1compat.html">Ant1 Compatibility Layer</a>
</li>
</ul>
<p><strong>Extending Ant</strong></p>
<ul>
<li> <a href="./task.html">Task Writers HOWTO</a>
</li>
<li> <a href="./classloader.html">ClassLoader HOWTO</a>
</li>
<li> <a href="./librarys.html">Library HOWTO</a>
</li>
</ul>
<p><strong>Container Design</strong></p>
<ul>
</ul>
</td>
<td align="left" valign="top">
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr><td bgcolor="#525D76">
<font color="#ffffff" face="arial,helvetica,sanserif">
<a name="Overview"><strong>Overview</strong></a>
</font>
</td></tr>
<tr><td>
<blockquote>
<p>
The Myrmidon-Ant1 Compatibility layer works by reusing most of
the Ant1 code,
with tasks and datatypes
being prefixed with "ant1." in build files. Almost all of the
main Ant1 tree
is included in the compatibility layer antlib. To insulate from
changes in
the Ant1 tree, Ant1 class files are extracted from a jar, rather
than
being compiled from scratch.
</p>
<p>
Here's how it works: The first time an Ant1 task is encountered,
an Ant1
project is created, and stored in the TaskContext under the name
"ant1.project".
The Ant1 versions of Task and Project have been extended,
overriding core behaviour,
with Myrmidon-specific behaviour.
</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 Ant1 configuration policy, although not <i>all</i> of
the
subtle variations of configuration present in Ant1 are handled.
</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>
</ul>
<p>
So at present, properties declared in Ant2 tasks are available to
all Ant1 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 Ant2 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 Ant1 version of TypeInstanceTask in the descriptor.
</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>
</blockquote>
</td></tr>
</table>
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr><td bgcolor="#525D76">
<font color="#ffffff" face="arial,helvetica,sanserif">
<a name="Using the compatibility layer"><strong>Using the
compatibility layer</strong></a>
</font>
</td></tr>
<tr><td>
<blockquote>
<table border="0" cellspacing="0" cellpadding="2"
width="100%">
<tr><td bgcolor="#828DA6">
<font color="#ffffff" face="arial,helvetica,sanserif">
<a name="Using Ant1 tasks in a Myrmidon build file"><strong>Using
Ant1 tasks in a Myrmidon build file</strong></a>
</font>
</td></tr>
<tr><td>
<blockquote>
<p>
If you have a Myrmidon build file (eg with
<code>version="2.0"</code>
on the project element, you can use Ant1 tasks and datatypes
by using
the "ant1." suffix on the regular element name.
Virtually <i>all</i> tasks and datatypes from Ant1.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>
</blockquote>
</td></tr>
</table>
<table border="0" cellspacing="0"
cellpadding="2" width="100%">
<tr><td bgcolor="#828DA6">
<font color="#ffffff" face="arial,helvetica,sanserif">
<a name="Using an existing Ant1 build file"><strong>Using an existing
Ant1 build file</strong></a>
</font>
</td></tr>
<tr><td>
<blockquote>
<p>
Myrmidon will automatically handle Ant1 build files using the
Ant1 Compatibility layer. So, using an Ant1 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 Ant1 build file. So all
tasks are
interpreted as though they are prefixed with the "ant." name
prefix.
</p>
</blockquote>
</td></tr>
</table>
</blockquote>
</td></tr>
</table>
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr><td bgcolor="#525D76">
<font color="#ffffff" face="arial,helvetica,sanserif">
<a name="Building the compatibility layer"><strong>Building the
compatibility layer</strong></a>
</font>
</td></tr>
<tr><td>
<blockquote>
<p>Before building the Ant1 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>
</blockquote>
</td></tr>
</table>
</td>
</tr>
<!-- FOOTER -->
<tr><td colspan="2">
<hr noshade="" size="1"/>
</td></tr>
<tr><td colspan="2">
<div align="center"><font color="#525D76" size="-1"><em>
Copyright © 2000-2002, Apache Software Foundation
</em></font></div>
</td></tr>
</table>
</body>
</html>
<!-- end the processing -->
1.11 +24 -5 jakarta-ant/proposal/myrmidon/src/xdocs/todo.xml
Index: todo.xml
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/xdocs/todo.xml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- todo.xml 21 Mar 2002 09:56:23 -0000 1.10
+++ todo.xml 22 Mar 2002 04:26:34 -0000 1.11
@@ -53,11 +53,30 @@
</subsection>
<subsection name="Ant 1.x Compatibility">
-
- <p>There are 2 parts to this broad topic: Allow Ant 1.x
build scripts to be
- executed by Myrmidon, and allow Ant 1.x tasks to be executed
unmodified
- by Myrmidon.</p>
-
+ <p>The Ant1 Compatibility layer is still in early stages of
development.
+ </p>
+ <ul>
+ <li>Get a version of <code><ant></code> and
+ <code><antcall></code> working.</li>
+ <li>
+ Provide hooks between Ant1 references and Myrmidon
properties.
+ May use converters for adapting Ant2 objects (like Ant2
+ <code><path></code> or
<code><fileset></code>)
+ as Ant1 types.
+ </li>
+ <li>Handle differences between Ant1 if/unless on targets,
+ and Myrmidon <if> task.</li>
+ <li>
+ Write tests for the various bits that rely on Myrmidon
+ functionality:
+ <ul>
+ <li>if/unless on targets: check that behaviour
complies with Ant1</li>
+ <li>Make sure properties are shared between Ant1 and
Myrmidon tasks.</li>
+ <li>Make sure that <ant1.property> behaves as
per Ant1</li>
+ </ul>
+ </li>
+ <li>Get GUMP runs going using Myrmidon.</li>
+ </ul>
</subsection>
<subsection name="Virtual File System">
1.1 jakarta-ant/proposal/myrmidon/src/xdocs/ant1compat.xml
Index: ant1compat.xml
===================================================================
<document>
<properties>
<author email="darrell at apache dot org">Darrell DeBoer</author>
<title>Ant1 Compatibitlity Layer</title>
</properties>
<body>
<section name="Overview">
<p>
The Myrmidon-Ant1 Compatibility layer works by reusing most of
the Ant1 code,
with tasks and datatypes
being prefixed with "ant1." in build files. Almost all of the
main Ant1 tree
is included in the compatibility layer antlib. To insulate from
changes in
the Ant1 tree, Ant1 class files are extracted from a jar, rather
than
being compiled from scratch.
</p>
<p>
Here's how it works: The first time an Ant1 task is encountered,
an Ant1
project is created, and stored in the TaskContext under the name
"ant1.project".
The Ant1 versions of Task and Project have been extended,
overriding core behaviour,
with Myrmidon-specific behaviour.
</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 Ant1 configuration policy, although not <i>all</i> of
the
subtle variations of configuration present in Ant1 are handled.
</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>
</ul>
<p>
So at present, properties declared in Ant2 tasks are available to
all Ant1 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 Ant2 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 Ant1 version of TypeInstanceTask in the descriptor.
</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>
</section>
<section name="Using the compatibility layer">
<subsection name="Using Ant1 tasks in a Myrmidon build file">
<p>
If you have a Myrmidon build file (eg with
<code>version="2.0"</code>
on the project element, you can use Ant1 tasks and datatypes
by using
the "ant1." suffix on the regular element name.
Virtually <i>all</i> tasks and datatypes from Ant1.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>
</subsection>
<subsection name="Using an existing Ant1 build file">
<p>
Myrmidon will automatically handle Ant1 build files using the
Ant1 Compatibility layer. So, using an Ant1 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 Ant1 build file. So all
tasks are
interpreted as though they are prefixed with the "ant." name
prefix.
</p>
Myrmidon will automatically attempt to upgrade any ".xml"
build file that
</subsection>
</section>
<section name="Building the compatibility layer">
<p>Before building the Ant1 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>
</section>
</body>
</document>
1.6 +1 -0
jakarta-ant/proposal/myrmidon/src/xdocs/stylesheets/project.xml
Index: project.xml
===================================================================
RCS file:
/home/cvs/jakarta-ant/proposal/myrmidon/src/xdocs/stylesheets/project.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- project.xml 2 Mar 2002 01:53:27 -0000 1.5
+++ project.xml 22 Mar 2002 04:26:34 -0000 1.6
@@ -13,6 +13,7 @@
<menu name="User Guide">
<item name="Build file" href="/buildfile.html"/>
<item name="Virtual File System" href="/vfs.html"/>
+ <item name="Ant1 Compatibility Layer" href="/ant1compat.html"/>
</menu>
<menu name="Extending Ant">
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>