ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jose Alberto Fernandez" <jalbe...@cellectivity.com>
Subject antlib and classloaders
Date Thu, 01 Apr 2004 11:37:13 GMT

Hi, I have been giving some thought on ways to solve this nagging
issue of needing to put antlib jars on the lib directory.

We hear over and over people wanting to keep their third party
libraries out of -lib because they are only for an specific project.

As I see it, our road block has been how to tell in succinct way in the
buildfile that when loading the namespace "antlib:foo.bar" you should
use this or that classpath or classloader. 

A simple solution could be to achieve this by name association:

- When ANT tries to find and load the resource for "antlib:foo.bar"
it will first look for a reference named "foo.bar" representing
a classloader (or classpath?). If an object of the correct type is
found, then this classloader will be user for resolving and loadding
the antlib, otherwise the default classloader will be use, as it is
today.

So with this in place, one could write things like:

<project name="x" xmlns:lib="antlib:foo.bar">

  <classpath id="foo.bar">.....</classpath>

  <lib:mytask ..../> <!-- The antlib loaded using the classloader for
"foo.bar" -->

</project>

Before jumping on a code proposal, does this sound a the right or good
solution? Does this cover enough of the use cases?

Let me know what you people think.

Jose Aberto





Mime
View raw message