ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject Re: My itches for 1.6
Date Mon, 15 Jul 2002 19:50:52 GMT
On Mon, 15 Jul 2002, Stephane Bailliez wrote:

> > I think we should first agree that <test:task> is at least against the
> > recommendations of the XML spec in the last 2-3 years.
> I don't understand what you mean here sorry, must have missed something.

<test:task> is invalid in the current XML spec and rejected by SAX2 
parsers, while it works in SAX1 ( and ant1 ).

> > IMHO the biggest problem at this moment is the fact that optional.jar
> > is loaded in the system class loader. If we fix that, we can easily
> > get junit and all the optional tasks to work without files in ant/lib.
> Why optional only ? Other tasks are being in the core and depend also on a
> couple of things.

It's just one example, causing the most pain. 

> >From the top of my head <style> that uses JAXP or not JAXP now as it
> instantiates the implementation to allow uses of different xsl processors.
> We have also the regexp factory. If I'm not wrong it will use the caller
> classloader right now, so as it is in the core, you are out of luck.

Do we have a list of core tasks which require external jars ? I didn't 
know core has external deps. For JAXP it shouldn't be a problem,
there are mechanisms to override the parser/xslt processor ( 1.4 has
them in rt.jar anyway ).

> If you use a tomcat like hierarchy, what is your plan ? a small bootstrap,
> core loader, optional loader, and a common loader as the parent of both ?

It seems 'core' ( meaning Task, etc ) should remain in the system loader
for now ( just like servlet.jar in tomcat ). 

I think the first step should be 2 class loaders - the bootstrap 
(==CLASSPATH) containing the core ( and possibly core tasks ), then
a 'task class loader' for optional and all the libs ( it is possible
to add more repositories to a class loader ). Using taskdef you
can specify a third loader for tasks/groups of tasks.

This would have the minimal impact on users.


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

View raw message