ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Donald <>
Subject Re: myrmidon questions
Date Wed, 16 Jan 2002 08:32:46 GMT
On Wed, 16 Jan 2002 15:09, Adam Murdoch wrote:
> What needs to be done so we can start switching on the Ant 1 tasks?  Having
> myrmidon build itself would be a very good thing.

Well heres the things that need to be done in the order I was going to do 
them in. However you should feel free to do them if you want ;)

* refactor and clean (and understand) all the different types of path parsing 
code there is in ant. Most of it has been pushed into ant.util.FileUtils and 
util.PathTokenizer. All this needs to be done according to one consistent 
* refactor Path/scanner objects to use new path code and to work under 
* Convert some tasks that use Path/scanner to see if it works (I was thinking 
of converting ant.taskdefs.file.*)
* create a service similar to ExecManager/ExecMetaData for launching java 
programs. This would determine whether it was necessary to fork and take all 
the required parameters (like ClassPath, classname or jarname, etc).
* create an AbstractNativeTask (for tasks that do execs to work with)
* create an AbstractJavaTask (for tasks that launch java progs to work with)
* refactor above tasks to work with the AbstractNativeTask
* build some tasks that make use of java launching service (maybe the java, 
jdepend or junit tasks)

after this the majority of the tasks could be cleaned up and reworked for 
myrmidon as appropriate. So we convert any tasks that we will need in short 

After that we have hopefully come up with a semi-generic architecture for 
facade tasks (like javac/jspc/etc) in which case we can try converting the 
javac task acorss to myrmidon. 

Then we need to create a more reusable and extensible dependency architecture 
so that we can just pass in a list of input and mapping between inputs and 
outputs and then get those items that need to be updated (ie compiled, copied 
etc). To test this out I was going to use the zip/jar/ear tasks as first line 
and then move onto refactoring javac to use it.

At that point it should be possible to self host and build a majority of the 
jakarta projects (about 80%). So we can create an XSLT sheet to transform 
ant1 to myrmidon projects. Then we can hopefully (with or without a bit of 
arm twisting) get GUMP to run nightly builds of all the projects it works 
with and gradually we can refine myrmidon and the transform sheet until it is 
fully operational and easily upgradable.

Anyways thats the path I was going to take and it is largely conservative 
without any experimentation. If you want to help with that then that would be 
great - or if you want to experiment with some of the other stuff - like 
coloring or a VFS layer or whatever then that will be great aswell ;)



| The student who is never required to do what   |
|  he cannot do never does what he can do.       |
|                       - John Stuart Mill       |

To unsubscribe, e-mail:   <>
For additional commands, e-mail: <>

View raw message