ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Bodewig <>
Subject Re: three requests
Date Fri, 30 Nov 2001 09:43:15 GMT
On Thu, 29 Nov 2001, Richard Emberson <> wrote:

> ONE - Fix org/apache/tools/ant/taskdefs/

Steve Loughran is working on a replacement for that task using the
httpclient package of jakarta-commons (which has its own
implementation of a base64 codec).  One of the problems is that
Httpclient requires JDK 1.2+, so we cannot use that to replace <get>
completely, but there is hope for you 8-)

> The current implementation is incorrect


> if sun.misc.BASE64Encoder is not in the classpath, then this code
> fails during class loading, not during execution.

Thanks for the heads up, I'll look into it and apply the modification
you suggest today.

> TWO - Task wrapping application which uses xml to specify its
> behavior:
>  The simplest way to do this is to allow such task to use its own
>  DocumentHandler (maybe the wrapper task can have a DocumentHandler
>  derived from the ProjectHelper.AbstractHandler if it were public)
>  and install it when the task's element tag is recognized,
>  elementStart and removed at endElement. Oh yea, the application has
>  its own introspector.

Sounds like a lot of work inside Ant to avoid specifying and
maintaining separate configuration files 8-)

How would you identify tasks that want to attach their own
DocumentHandlers?  The corresponding class implements a marker

> THREE - Dynamically set the tag-2-class in Introspector.

This is something we really need (and want) to experiment with.  Allow
different implementations of a given interface to be used as nested
elements.  A start has been proposed by Conor about a week ago, search
for "[IDEA] Polymorphic types" in the archives.

How would you go about it?  Allow for a magic attribute on the tags
that can have varying implementations that would be used by the parser
to chose the "correct" implementation?  

Defer it to the task (or more general the parent of the element in
question)?  This could be done by using the createXXX methods,
couldn't it?  The task would probably need access to the attributes of
the child to decide which implementation to choose, though.


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

View raw message