On Mon, 15 Sep 2003, peter reilly <[EMAIL PROTECTED]> wrote:

>> In particular, I'm not too fond of the completely undocumented
>> <classloader> task.
> 
> It would be nice to get this fixed.

I rather opposed to the idea of adding stuff to a class loader that
has been used before - especially for the system classloader.  I'm not
sure whether there is something that could be fixed.

<classloader> gets you into a position where you load the same class
twice.

<taskdef resource="...">
  <classpath>
    <pathelement location="my-tasks.jar"/>
  </classpath>
</taskdef>

and later you go and add my-tasks.jar to the system class loader via
<classloader>.   Suddenly the class is available in the same
classloader twice (the one that loaded the tasks in <taskdef>) and
some of them have already been loaded - and not from the system
classloader that will be used in subsequent attempts.

I'd rather stay away from this completely.

>> Peter, we will have to get this "why is <antlib> a taskcontainer"
>> question sorted out soon ;-)
> 
> Like I said before, it is nice that one can use definers defined
> in the same antlib.xml.

I agree with this.

> Having <antlib/> as a taskcontainer also allows arbitarary tasks
> to be run, which may be an good or bad thing......

I tend to see this as a bad thing.  IMHO <antlib> should declare new
elements, it should not send mails to the creator of the classes, scp
the /etc/passwd file around or just simply compile stuff.

It's not because it can be abused (even if my examples make it look
like that was my concern) - I want to see the concerns separated
properly.  <antlib>'s job is not to compile tasks, that's what we use
<javac> for.  All it has to do is declaring element name to class
mappings.  Defining definers also creates such a new mapping.

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to