Browse Source

Added some more stuff, about 50% done now.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@269044 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 24 years ago
parent
commit
21e82d78a0
1 changed files with 118 additions and 6 deletions
  1. +118
    -6
      docs/ant2/features.html

+ 118
- 6
docs/ant2/features.html View File

@@ -3,9 +3,21 @@
<head> <head>
<meta http-equiv="Content-Language" content="en-us"> <meta http-equiv="Content-Language" content="en-us">
<title>Ant2 feature list</title> <title>Ant2 feature list</title>

<style type="text/css">
.comment {
COLOR: #900000;
BACKGROUND: #ffa;
}
</style>

</head> </head>


<body>
<body bgcolor="#FFFFFF">

<p class="comment">If something looks like this, this is either a
request for input or a &quot;REVISIT&quot; marker or similar.</p>

<h1>Ant2 Goals</h1> <h1>Ant2 Goals</h1>


<p>Even though Ant2 is expected to be incompatible with the <p>Even though Ant2 is expected to be incompatible with the
@@ -35,7 +47,9 @@
hidden behind facade tasks.</li> hidden behind facade tasks.</li>


<li>properties and data types will be unified so that they share <li>properties and data types will be unified so that they share
the same namespace and inheritance rules.</li>
the same namespace and inheritance rules. <i
class="comment">Need to talk about how ${} expansion works for
filesets and so on.</i></li>


</ul> </ul>


@@ -50,10 +64,19 @@


<li>add scoping rules for properties so that not all of them <li>add scoping rules for properties so that not all of them
will be inherited by sub-builds, only those that have been will be inherited by sub-builds, only those that have been
specified explicitly.</li>
specified explicitly. <i class="comment">Fill in details once
they&apos;ve been sorted out.</i></li>


</ul> </ul>


<p>The front-ends for Ant2 shall be smart enough to automatically
detect the required libraries (like <code>tools.jar</code>), the
use of native scripts shall be kept to a minimum.</p>

<p>Build file writers can attach a message to targets that will be
presented to the user if that target is going to be skipped (based
on the if/unless attribute of the target).</p>

<h2>Extensibility</h2> <h2>Extensibility</h2>


<p>Ant2 like Ant1 uses build files written in XML as its main <p>Ant2 like Ant1 uses build files written in XML as its main
@@ -68,16 +91,40 @@
Ant. Ant will automatically know all tasks contained in task Ant. Ant will automatically know all tasks contained in task
libraries that have been placed into a special directory - in libraries that have been placed into a special directory - in
addition task libraries can be referenced and used in a build file addition task libraries can be referenced and used in a build file
explicitly.</p>
explicitly. <i class="comment">Fill in details once they&apos;ve been
sorted out.</i></p>

<p>It has become apparent, that several &quot;aspects&quot; of
tasks are so common that task writers find themselves duplicating
code all over again - things like classpath handling or &quot;do
we stop the build if this task fails?&quot; functionality for
example. Ant2 will provide a way to let the user attach an
&quot;aspect handler&quot; to a project - all attributes that live
in a certain namespace are going to be passed to this handler. <i
class="comment">Need to talk about TaskContext here.</i></p>

<p>Ant2 will farm out common functionality from tasks into utility
classes so that task writers can benefit from a tested and stable
framework - they shouldn&apos;t need to deal with existing tasks
directly (like some tasks &quot;abuse&quot; the
<code>&lt;touch&gt;</code> task in Ant1).</p>


<h1>New/Modified Features</h1> <h1>New/Modified Features</h1>


<p>Ant2 will run the build process fully dynamically, which means
that task won&apos;t be instantiated before they are actually being run
and <code>${}</code> expansion will see the very latest value of a
property. It will be possible to reassign values of properties via
a built-in task.</p>

<h2>Compatibility with Ant1</h2>

<p>Ant2 is going to break Ant1 in several ways:</p> <p>Ant2 is going to break Ant1 in several ways:</p>


<ul> <ul>


<li>Tasks written for Ant1 won't work in Ant2 as the API of
Ant's core and the names of utility classes are going to
<li>Tasks written for Ant1 won&apos;t work in Ant2 as the API of
Ant&apos;s core and the names of utility classes are going to
change. There will probably be adaptors and utility classes to change. There will probably be adaptors and utility classes to
ease the transition for task writers.</li> ease the transition for task writers.</li>


@@ -95,8 +142,73 @@


</ul> </ul>


<h2>Support Integration of Ant Into Other Tools</h2>

<p>Ant2 will have a clear separation between the front-end that is
responsible for user interactions, the object model that
represents the project to build and the part of Ant that runs the
build process itself <i class="comment">Name that TaskEngine,
ProjectEngine, ExecutionEngine or what?</i>. This separation is
expected to ease the integration of Ant (or parts of it) into
other products.</p>

<p>Ant2 itself will include a command line front-end and Antidote
will become the GUI front-end to it. Other front-ends like a
servlet front-end are expected <i class="comment">outside of
Ant&apos;s core</i> as well.</p>

<p>In addition to this separation, the following features should
help people who want to integrate Ant into their products:</p>

<ul>

<li>It will be possible to cancel a running build process.</li>

</ul>

<h2>More Control for Users and Build File Writers</h2>

<p>Ant2 will use a <code>BuildListener</code> concept similar to
the one of Ant1 but may provide a richer set of events. It will be
possible to attach and detach listeners to a build process from
within the build file and to modify the behavior of attached
listeners.</p>


<h2>Documentation System</h2>

<p>All tasks will be documented in XML files using a common DTD <i
class="comment">Still need to define it</i> - task libraries are
expected to include the documentation using this DTD inside the
library itself.</p>

<h2>Better Subbuild Handling</h2>

<p class="comment">Is there something beyond &quot;should become
better&quot; right now?</p>

<h1>Rejected Features</h1> <h1>Rejected Features</h1>


<p>This is list is not complete, it just highlights some of the
rejected features and tries to explain why they&apos;ve been
rejected.</p>

<p>For a complete listing of all requested features, see <a
href="requested-features.html">requested-features.html</a>. The
discussion on all topics can be followed in the <a
href="http://marc.theaimsgroup.com/?l=ant-dev&r=1&w=2">archives
for ant-dev</a> in threads starting from 2001-03-21 - the subject
lines contained either <code>[VOTE]</code> or
<code>[DISC]</code>.</p>

<h1>Ideas for New Tasks and Tools</h1>

<p>Please refer to <a
href="requested-features.html">requested-features.html</a> in the
section &quot;I. Things that don&apos;t affect the core but are
requests for new tasks or enhancements to existing tasks.&quot;
for this.</p>

<hr> <hr>
<p align="center">$Id$</p> <p align="center">$Id$</p>
<p align="center">Copyright &copy; 2001 Apache Software <p align="center">Copyright &copy; 2001 Apache Software


Loading…
Cancel
Save