ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steve Loughran" <stev...@iseran.com>
Subject Re: PROPOSAL: loading tasks from jars for Ant 1.5
Date Wed, 10 Oct 2001 19:30:29 GMT

----- Original Message -----
From: "Sam Ruby" <rubys@us.ibm.com>
To: <ant-dev@jakarta.apache.org>
Sent: Wednesday, October 10, 2001 09:30
Subject: Re: PROPOSAL: loading tasks from jars for Ant 1.5


> Tim Dawson wrote:
>
> > In summary of the previous thread the recommendation is this:
> >
> > 1. Specify a deployment descriptor for an antlib jar. This would reside
> in
> > "meta-inf/antlib.xml" and have a simple structure:
> >
> > <antlib version="1.0">
> >    <task name="..." class="..."/>
> >    <task name="..." class="..."/>
> >    <datatype name="..." class="..."/>
> >    <datatype name="..." class="..."/>
> > </antlib>
>
> Simple enough.


There are a couple of things I would like to be possible with this
mechanism.

1. the deployment descriptor can be generated automatically from doc
comments using the xdoclet tasks (see xdoclet.sourceforge.net). We could
then add doc comments at the top of the class which were pulled out to
generate the deplyment descriptor, and the docs.

/**
 Task to reboot the system
 @ant:task reboot
 @since 1.6
 @author me
*/

public class Reboot extends Task {

}

/**
@ant:datatype Time
*/

public class SomeTime {
}

This probably isnt that hard; just needs an xdoclet template and someone to
go through all the existing tasks adding the markup. A couple of hours work.


2. At some time in the distant future it could be possible (albeit not
mandatory) to also describe which attributes/elements were accessible. some
doc comments could go in to do that

@ant:attribute optional
@ant:attribute required

This could be used for a number of purposes
    a) autogeneration of a better DTD, one which included #REQUIRED where it
was
    b) better validation of task declarations in a build file
    c) part of a means of tying in javadoc and manual documentation


For this to actually be used for validation would need big changes in ant,
and I am not proposing it takes place any time soon. But for documentation
and DTD it would be nice and viable today.

If the deployment descriptor is going to ever support a more rigorous
declaration of allowed attributes, then there may some design decisions
which need to go in now. Other than a version indicator I dont see any.

3. Other things that should go in the descriptor

    -minimum ant version supported
    -home page of tasklib
    -comment text
    -tasklib URI
    -tasklib version

The ant version lets the loader not load something into a version of ant
which is too old to support it.

Home page and comment text provide information for users

tasklib URI and versions are placeholders for any more dynamic loading
system that someone cares to implement in the very far future. e.g.

<antlib uri="nap:Moby+Porcelin" version="1.3"
repository="http://tasklibs.org" />


I'm willing to help with the doc comments/xdoclet side of things.

-steve










Mime
View raw message