Return-Path: Delivered-To: apmail-jakarta-ant-dev-archive@apache.org Received: (qmail 90125 invoked from network); 13 Dec 2001 23:53:34 -0000 Received: from unknown (HELO nagoya.betaversion.org) (192.18.49.131) by daedalus.apache.org with SMTP; 13 Dec 2001 23:53:34 -0000 Received: (qmail 5428 invoked by uid 97); 13 Dec 2001 23:53:34 -0000 Delivered-To: qmlist-jakarta-archive-ant-dev@jakarta.apache.org Received: (qmail 5379 invoked by uid 97); 13 Dec 2001 23:53:33 -0000 Mailing-List: contact ant-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Ant Developers List" Reply-To: "Ant Developers List" Delivered-To: mailing list ant-dev@jakarta.apache.org Received: (qmail 5368 invoked from network); 13 Dec 2001 23:53:33 -0000 From: "Adam Murdoch" To: Subject: invocation api Date: Fri, 14 Dec 2001 09:50:37 +1000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Importance: Normal X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N Hi, 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 now): - 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. Adam -- To unsubscribe, e-mail: For additional commands, e-mail: