ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam Murdoch" <>
Subject invocation api
Date Thu, 13 Dec 2001 23:50:37 GMT


I'd like to suggest another item for the Ant1.9 action list:  An invocation
API which would allow Ant to be embedded inside other apps (such as GUIs,
IDEs, build schedulers, build servlets, etc).

Right now, invoking Ant is not as clean as it could be - for example, you
can use Main.start() and give up control over a bunch of things, or you can
copy and hack Main.  The goal of this task is to come up with a cleaner and
more flexible way of doing this, by pushing the container related code from
Main and Project behind an API.

This task would involve putting together an API which would allow an app to:

- Create a project from a bunch of sources - file, InputStream, URL, SAX
events, etc.
- Configure a project:
   - set classloader.
   - set user properties.
   - add task and datatype definitions.
   - add/remove listeners
   - add/remove loggers.
- Get meta-info about the targets in the project (just a tiny subset for
   - name
   - description
- Execute a task, or a set of tasks.

There's a bunch of extra stuff an invocation API *could* do - I wanted to
keep the initial list short and reasonably well-defined.  Some things that
might be good to add later:

- A similar API that a task can use to invoke a target in either the same
project or another project.
- Adding tasklibs, vfs mount points, etc.
- Managing the project definition: things like adding and removing targets
and tasks, setting task attributes, etc.
- Expose a more general task engine API.

Any interest in something like this?  I'd be happy to do the work.


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

View raw message