|
|
@@ -251,6 +251,9 @@ decide between several possible options. |
|
|
|
V. Things we probably don't agree on. |
|
|
|
====================================================================== |
|
|
|
|
|
|
|
[DISC] Datatypes |
|
|
|
---------------- |
|
|
|
|
|
|
|
* Allow mappers to be genericised so that particular features can be modified |
|
|
|
during mapping. Something similar to |
|
|
|
|
|
|
@@ -279,8 +282,6 @@ V. Things we probably don't agree on. |
|
|
|
value="29th Feb 2003"/> |
|
|
|
</include> |
|
|
|
|
|
|
|
2003 is no leap year 8-) |
|
|
|
|
|
|
|
* provide datatypes through property tag and remove need for separate free |
|
|
|
standing entities. ie |
|
|
|
<property name="foo"> |
|
|
@@ -289,45 +290,90 @@ V. Things we probably don't agree on. |
|
|
|
</fileset> |
|
|
|
</property> |
|
|
|
|
|
|
|
* provide support for non-hardwired (ie loadable) low-level |
|
|
|
components (mappers/itemset-filters/converters). Allow them to be |
|
|
|
loaded in either global or a new classloader. |
|
|
|
|
|
|
|
* provide support for non-hardwired (ie loadable) converters. |
|
|
|
|
|
|
|
Q: What is a converter? Is this an implementation detail? |
|
|
|
A: Not an implementation detail but a way to extend the engine |
|
|
|
to convert more data types. Currently we have fixed set that is |
|
|
|
expanded on occasion (ie includes primitive types + File). Instead |
|
|
|
of spreading converting code through out tasks it can be centralized |
|
|
|
into one component and used by engine. This becomes particularly |
|
|
|
relevent if you build ant based testing systems and use ant in certain |
|
|
|
web-related areas. |
|
|
|
|
|
|
|
* Make all datatypes interfaces to allow them to be customized in many |
|
|
|
ways. |
|
|
|
|
|
|
|
* Set arithmetic for fileset/patternset/*set |
|
|
|
|
|
|
|
* inheritance of ant properties/datatypes/context etc in project hierarchy |
|
|
|
|
|
|
|
* inheritance of between ant datatypes. ie fileset A inherits from fileset B (includes |
|
|
|
all entries in A). |
|
|
|
|
|
|
|
* Homogenize notion of PATHs and filesets. |
|
|
|
|
|
|
|
[DISC] Ant's goals |
|
|
|
------------------ |
|
|
|
|
|
|
|
* make it possible to reuse taskengine for other things. ie |
|
|
|
Installshield type app, Peter's cron-server and other task based |
|
|
|
operations. |
|
|
|
|
|
|
|
* provide support for non-hardwired (ie loadable) low-level |
|
|
|
components (mappers/itemset-filters/converters). Allow them to be |
|
|
|
loaded in either global or a new classloader. |
|
|
|
* provide support for CJAN |
|
|
|
|
|
|
|
Q: In what way? |
|
|
|
A: Probably by supplying a set of tasks that download versioned |
|
|
|
binaries and their associated dependencies, caching the downloads |
|
|
|
in a known place and updating binaries when required. ("When required" |
|
|
|
being indicated by a change in property values). |
|
|
|
|
|
|
|
[DISC] class loading |
|
|
|
-------------------- |
|
|
|
|
|
|
|
* force resolution of classes on loading to identify classloader |
|
|
|
issues early. (At least in global classloader). |
|
|
|
|
|
|
|
* Ignore any classes contained in the damned ext dirs of a JVM - possibly by launching |
|
|
|
with something like jar -Djava.ext.dir=foo -jar ant.jar |
|
|
|
|
|
|
|
[DISC] workspace/subbuild issues |
|
|
|
-------------------------------- |
|
|
|
|
|
|
|
* create the concept of workspace so that projects can be built in a |
|
|
|
DAG and thus enable projects like catalina/tomcat to have an easy |
|
|
|
build process. It also helps CJAN to a lesser degree and would |
|
|
|
partially solve the JARs in CVS thing. |
|
|
|
|
|
|
|
* provide support for CJAN |
|
|
|
* Project inheritance |
|
|
|
|
|
|
|
Q: In what way? |
|
|
|
A: Probably by supplying a set of tasks that download versioned |
|
|
|
binaries and their associated dependencies, caching the downloads |
|
|
|
in a known place and updating binaries when required. ("When required" |
|
|
|
being indicated by a change in property values). |
|
|
|
What's this? |
|
|
|
|
|
|
|
* provide support for non-hardwired (ie loadable) converters. |
|
|
|
* Target inheritance. ie The ability to include targets from other |
|
|
|
project files overidining them as necessary (so cascading project |
|
|
|
files). |
|
|
|
|
|
|
|
Q: What is a converter? Is this an implementation detail? |
|
|
|
A: Not an implementation detail but a way to extend the engine |
|
|
|
to convert more data types. Currently we have fixed set that is |
|
|
|
expanded on occasion (ie includes primitive types + File). Instead |
|
|
|
of spreading converting code through out tasks it can be centralized |
|
|
|
into one component and used by engine. This becomes particularly |
|
|
|
relevent if you build ant based testing systems and use ant in certain |
|
|
|
web-related areas. |
|
|
|
* Add an attribute to <ant> to feed back the environment (properties and |
|
|
|
taskdefs) from the child build to the parent. |
|
|
|
|
|
|
|
* Allow a target to depend on a target which is in another buildfile. |
|
|
|
|
|
|
|
* Allow a target to reference properties defined in another buildfile. |
|
|
|
|
|
|
|
[DISC] documentation system |
|
|
|
--------------------------- |
|
|
|
|
|
|
|
* generate docs by anakia/XSLT |
|
|
|
|
|
|
|
Corollary of "move to a system that allows docs to be generated"? |
|
|
|
|
|
|
|
[DISC] Task API |
|
|
|
--------------- |
|
|
|
|
|
|
|
* tasks provide some way to identify their attributes from the |
|
|
|
outside. |
|
|
|
|
|
|
@@ -337,42 +383,58 @@ V. Things we probably don't agree on. |
|
|
|
should not impose any cost on runtime as it is only used a small |
|
|
|
proportion of the time (design-time). |
|
|
|
|
|
|
|
* tasks should have access to its own XML representation. |
|
|
|
|
|
|
|
* Task level if and unless attributes. |
|
|
|
|
|
|
|
* Allow tasks to find out, whether another task has completed successfully. |
|
|
|
|
|
|
|
* provide failonerror like functionality to all tasks. (Provide this as an aspect?? |
|
|
|
much like logging aspect or classloader aspect). |
|
|
|
|
|
|
|
[DISC] logging |
|
|
|
-------------- |
|
|
|
|
|
|
|
* allow build file writers to modify logging (verbosity for example) |
|
|
|
on a target by target or task by task basis. |
|
|
|
|
|
|
|
* Simple flow control (if-then-else, for) |
|
|
|
* Make loggers configurable via build.xml. |
|
|
|
|
|
|
|
[DISC] multithrading |
|
|
|
-------------------- |
|
|
|
|
|
|
|
* Multithreaded execution of tasks within the same target. |
|
|
|
|
|
|
|
* Multithreaded execution of targets. |
|
|
|
|
|
|
|
* Project inheritance |
|
|
|
[DISC] procedural versus purely declarative |
|
|
|
------------------------------------------- |
|
|
|
|
|
|
|
What's this? |
|
|
|
* Simple flow control (if-then-else, for) |
|
|
|
|
|
|
|
* Target inheritance. ie The ability to include targets from other |
|
|
|
project files overidining them as necessary (so cascading project |
|
|
|
files). |
|
|
|
* targets should be like methods including a return value |
|
|
|
|
|
|
|
* Add an attribute to <ant> to feed back the environment (properties and |
|
|
|
taskdefs) from the child build to the parent. |
|
|
|
* build files should be purely declarative |
|
|
|
|
|
|
|
[DISC] Properties |
|
|
|
----------------- |
|
|
|
|
|
|
|
* Ability to manage scopping of properties in general (ie target/project/workspace). |
|
|
|
|
|
|
|
[DISC] Templates |
|
|
|
---------------- |
|
|
|
|
|
|
|
* it should be possible to provide general /(template?)/ build |
|
|
|
specifications, and to declare for a concrete item that it should be |
|
|
|
built according to such a general specification. |
|
|
|
|
|
|
|
[DISC] XML issues |
|
|
|
----------------- |
|
|
|
|
|
|
|
* a built-in mechanism to include build-file fragments - something |
|
|
|
that doesn't use SYSTEM entities at all and therefore is XSchema |
|
|
|
friendly, allows for property expansions ... |
|
|
|
|
|
|
|
* Make loggers configurable via build.xml. |
|
|
|
|
|
|
|
* tasks should have access to its own XML representation. |
|
|
|
|
|
|
|
* Allow named tasks to be defined by <script> elements. |
|
|
|
|
|
|
|
* Let Ant ignore - but warn - if unknown XML elements or attributes |
|
|
|
occur in a build file. |
|
|
|
|
|
|
@@ -380,6 +442,11 @@ V. Things we probably don't agree on. |
|
|
|
namespace to other components. ie hand doc: elements to the Documentation |
|
|
|
component or log: attributes to Log policy component etc |
|
|
|
|
|
|
|
[DISC] core extensions |
|
|
|
---------------------- |
|
|
|
|
|
|
|
* Allow named tasks to be defined by <script> elements. |
|
|
|
|
|
|
|
* specify an onfail task or target that runs in case of a build |
|
|
|
failure. |
|
|
|
|
|
|
@@ -390,15 +457,19 @@ V. Things we probably don't agree on. |
|
|
|
target - as proposed by Thomas Christen in |
|
|
|
<http://marc.theaimsgroup.com/?l=ant-dev&m=98130655812010&w=2>. |
|
|
|
|
|
|
|
* Task level if and unless attributes. |
|
|
|
* Make if/unless attributes to check for the value of a property, not |
|
|
|
only its existance. |
|
|
|
|
|
|
|
* Make all datatypes interfaces to allow them to be customized in many |
|
|
|
ways. |
|
|
|
* check for more than one condition in if/unless attributes. |
|
|
|
|
|
|
|
* Allow tasks to find out, whether another task has completed successfully. |
|
|
|
* provide a way to define the order in which targets a given target |
|
|
|
depends upon get executed. |
|
|
|
|
|
|
|
* Make if/unless attributes to check for the value of a property, not |
|
|
|
only its existance. |
|
|
|
* define task contexts that define various common aspects (logging, |
|
|
|
failure handling ...) and assign them to tasks. |
|
|
|
|
|
|
|
[DISC] organization |
|
|
|
------------------- |
|
|
|
|
|
|
|
* separate CVSes and code hierarchies for |
|
|
|
- task engine [ org.apache.task.* ] |
|
|
@@ -406,35 +477,8 @@ V. Things we probably don't agree on. |
|
|
|
[ org.apache.ant.* ] |
|
|
|
- core tasks (ie tasks supported by ant contributors) [ org.apache.??? ] |
|
|
|
|
|
|
|
* check for more than one condition in if/unless attributes. |
|
|
|
|
|
|
|
* provide failonerror like functionality to all tasks. (Provide this as an aspect?? |
|
|
|
much like logging aspect or classloader aspect). |
|
|
|
[DISC] misc |
|
|
|
----------- |
|
|
|
|
|
|
|
* internationalization |
|
|
|
|
|
|
|
* Ignore any classes contained in the damned ext dirs of a JVM - possibly by launching |
|
|
|
with something like jar -Djava.ext.dir=foo -jar ant.jar |
|
|
|
|
|
|
|
* Set arithmetic for fileset/patternset/*set |
|
|
|
|
|
|
|
* inheritance of ant properties/datatypes/context etc in project hierarchy |
|
|
|
|
|
|
|
* inheritance of between ant datatypes. ie fileset A inherits from fileset B (includes |
|
|
|
all entries in A). |
|
|
|
|
|
|
|
* Homogenize notion of PATHs and filesets. |
|
|
|
|
|
|
|
* build files should be purely declarative |
|
|
|
|
|
|
|
* provide a way to define the order in which targets a given target |
|
|
|
depends upon get executed. |
|
|
|
|
|
|
|
* Allow a target to depend on a target which is in another buildfile. |
|
|
|
|
|
|
|
* Allow a target to reference properties defined in another buildfile. |
|
|
|
|
|
|
|
* targets should be like methods including a return value |
|
|
|
|
|
|
|
* define task contexts that define various common aspects (logging, |
|
|
|
failure handling ...) and assign them to tasks. |