donaldp 02/03/21 01:56:23
Modified: proposal/myrmidon/src/xdocs todo.xml
Log:
Add some todo items related to extension /antlib paths
Revision Changes Path
1.10 +141 -61 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.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- todo.xml 13 Mar 2002 08:02:13 -0000 1.9
+++ todo.xml 21 Mar 2002 09:56:23 -0000 1.10
@@ -24,6 +24,34 @@
</subsection>
+ <subsection name="Paths">
+
+ <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>
+
+ </subsection>
+
<subsection name="Ant 1.x Compatibility">
<p>There are 2 parts to this broad topic: Allow Ant 1.x
build scripts to be
@@ -64,67 +92,97 @@
<subsection name="File Data-Types and Tasks">
- <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>
</subsection>
@@ -142,8 +200,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>
@@ -200,7 +262,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
@@ -212,17 +276,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>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>