ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jose Alberto Fernandez" <>
Subject How to provide reusable ClassPaths in ANT
Date Mon, 16 Dec 2002 13:36:26 GMT
One of the things that most anoyed me of the current architecture of ANT
if the way ClassPaths are managed during the build. Almost every task
that can be passed a <path> for finding classes, creates its own AntClassLoader.
As a consecuence ref-ids become incompatible very easily unless the classes are
all on the system classpath.

By creating AntClassLoaders on those indifvidual tasks we are forcing ANT
to reload class definitions a lot, which has to slow things down, IMHO.

I do not have a full solution (backward compatible and all), but would like to
propose doing some brainstorming to find a better way to do this (at least on most cases).

Here are some ideas I have been thinking about, for you guys to shread to pieces:

We continue declaring <path>s the way we do, but allow to specify caching of classloaders:

	<path cacheclasses=true>

The Path class will have a new methods:

	ClassLoader getCachedLoader();
	void setCachedLoader(ClassLoader cl);

these methods would be used by AntClassLoader to decide whether to actually
create a new ClassLoader of simply delegate to the cached one. So users will continue
to use things as they do today, and just the internals of this implementations will know
about this things.

Of course, we still need some rules to decide when it is safe to use the same classloader
and when not.
Given the configuration of the Path object.

Any comments, ideas, do you guys thing there is any hope on something like this to work?

Jose Alberto

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

View raw message