From 3219e9d8296a05efd36acbc1caf1bb455ff424c6 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Wed, 6 Jun 2001 13:41:47 +0000 Subject: [PATCH] Think I've covered all accepted features now. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@269115 13f79535-47bb-0310-9956-ffa450edef68 --- docs/ant2/features.html | 79 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/docs/ant2/features.html b/docs/ant2/features.html index 891772ecc..7780ada1c 100644 --- a/docs/ant2/features.html +++ b/docs/ant2/features.html @@ -77,6 +77,12 @@ presented to the user if that target is going to be skipped (based on the if/unless attribute of the target).

+

Even though Ant installation already is quite simple in Ant1 + (extract the archive and set two environment variables), + alternative ways to install Ant like using + Webstart or + a "self-extracting" JAR file will be explored.

+

Extensibility

Ant2 like Ant1 uses build files written in XML as its main @@ -109,6 +115,17 @@ directly (like some tasks "abuse" the <touch> task in Ant1).

+

Ant2 will provide a way to define tasks that itself can have + tasks as child elements without knowing all defined tasks at + compile time. Discussions on ant-dev usually talk about + "container tasks" in this context.

+ +

The only way to &qout;include" common XML snippets so far + has been the usage of external SYSTEM entities, a mechanism that + is tied to DTDs and doesn't mix well with alternative + approaches like XML Schema. Ant2 will provide a built-in include + mechanism.

+

New/Modified Features

Ant2 will run the build process fully dynamically, which means @@ -140,6 +157,12 @@

  • Ant2 is going to require a JDK version 1.2 or above and a JAXP compliant parser version 1.1 or above.
  • +
  • If you specify more than one target in another target's + depends attribute, Ant1 will execute these targets from left to + right (as long as the dependency tree permits it) - Ant2 will + not guarantee this behavior but will allow build file writers to + specify the order explicitly.
  • +

    Support Integration of Ant Into Other Tools

    @@ -164,6 +187,14 @@
  • It will be possible to cancel a running build process.
  • +
  • Ant will detach from System.err/.out/.in + completely and communicate with the front-end via a well defined + API. The front-end will have to handle user input for tasks + that need it (tasks that ask for a password for example).
  • + +
  • Tasks will provide some way to identify their attributes + from the outside. fill in details
  • +

    More Control for Users and Build File Writers

    @@ -174,6 +205,21 @@ within the build file and to modify the behavior of attached listeners.

    +

    In Ant1 users have little control over how things work. There + are a couple of magic properties to make Ant chose a preferred + compiler or modify the CLASSPATH, but they are barely documented. + If users want to set these properties for every build process, + they have to learn the undocumented tricks of the + ANT_OPTS environment variable or the + ~/.antrc file.

    + +

    Ant2 will have a well defined system to specify user + preferences. This system will not only let user chose their + compiler but also give them a chance to provide default values for + attributes (say you always want the debug attribute + of the javac task to be true - unless it has been + disabled explicitly). Need to give details once + they've been sorted out.

    Documentation System

    @@ -187,6 +233,39 @@

    Is there something beyond "should become better" right now?

    +

    Data Types

    + +

    Ant1 supports a limited set of data types (fileset, patternset + and path) and at least up to Ant 1.3 it is not possible to + register custom data types without writing a task that does this. + Ant2 will provide a built-in mechanism to define new data + types.

    + +

    Existing data-types will be improved, the files in a fileset + can be chosen based on more than just pattern matching for example + (modification time or permissions for example). Ant2 will have + built-in tasks for set operations.

    + +

    Data types and properties will share the same name space and + follow the same scoping and precedence rules. + ${} again.

    + +

    Multithreading

    + +

    It will be possible to run several tasks in parallel - these + tasks will belong to the same target and all tasks will be joined + at the end of the target.

    + +

    Internationalization

    + +

    Ant2 itself will provide internationalized (error) messages and + provide utility classes to help task writers to do the same. + These utility classes may very well come from a + different (Jakarta) project.

    + +

    Ant's primary language and the language of the build file + will continue to be English.

    +

    Rejected Features

    This is list is not complete, it just highlights some of the