ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Donald <>
Subject [ant2] Myrmidon
Date Sat, 30 Jun 2001 03:00:24 GMT

yesterday I finally got around to cleaning up Myrmidon so that it is 
representative of where I think Ant2 should go. It does not yet cover a whole 
range of things because no one has made up their minds on how we should 
implement them ;) However with a few exceptions I think it is mostly 
representative of what we have discussed.

Some of the features that it implements
* aspects (currently are possible to do everything discussed)
* ClassLoader protection between different libraries
* Type librarys (ie can store tasks, mappers, listeners, builders, datatypes 
* Dry Runs (ie just print out what you would execute rather than executing 
it). This needs a few mods to work a-ok but is simple to fix
* Incremental mode (or shell mode). Can load JVM up once and re-run over same 
build file. (Much faster as no JVM startup cost).
* TaskModel/TaskProxy/TaskConfiguration system where tasks are interpreted 
when executed thus making system fully dynamic
* Clean separation between Project/Targets/Tasks. 
* Workspace model which contains set of runtime data about execution of set 
of projects. (ie Centralized Properties/Aspects/Listeners/Registry/etc).
* Pluggable builders so that you can build projects from what ever whacky 
input format you come up with. Includes a basic builder that reads in XML 
(like Ant1) and another builder that will process it through XSL 
* Project specific TypeManager and Global TypeManager. (So you can register 
some types/tasks/mappers/etc globally and some only in a particular project).
* Transparent addition of new types
* Pluggable converter system 
* Cross project DAGs (via projectref)
* preloaded type librarys (via import)
* Well defined Task API
* Support for many Ant1 tasks

Things it doesn't do;
* Task framework (ie ClassPath object, FileSet object etc). It has a few 
placeholder classes or basic "framework" components like COndition but this 
has been left largely undone. This will probably be the largest part of Ant2.
* Implement any tasks other than core features.
* Implement any particular property policy. (ie are properties immutable? Are 
they dynamic? Are they scoped ? etc). Mainly as no one has decided on 
strategy yet ;)
* Allow sharing of classloaders between Type libraries (unless installed 
* Separate engine specific ClassLoader from task ClassLoader (ie still can 
only use 1 global XML parser).
* have a GUI or anyother type of frontend. 

Any ways I am looking for constructive feedback on any bit of it ;) 

Theres still heaps to do - I think the Task framework part is going to be 
faaaaaaaaar larger a job than we thought it would be ;) But the basic outline 
is there. About half the ugly bits left in the code are marker by comments 
(usually prefixed with something like HACK/TODO/FIXME/UGLY etc) but if you 
find anything else lacking I would be interested in hearing about it ;)



| "Faced with the choice between changing one's mind, |
| and proving that there is no need to do so - almost |
| everyone gets busy on the proof."                   |
|              - John Kenneth Galbraith               |

View raw message