ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From peter reilly <peter.rei...@corvil.com>
Subject Re: antlib / proposal of Peter Reilly
Date Mon, 19 May 2003 09:20:59 GMT
On Monday 19 May 2003 10:01, Jose Alberto Fernandez wrote:
> > From: peter reilly [mailto:peter.reilly@corvil.com]
> >
> > On Saturday 17 May 2003 19:59, Costin Manolache wrote:
> > > I think <taskdef> should be treated as a special <typedef>
> >
> > with TaskAdapter
> >
> > > as adapter.
> > >
> > > ( i.e. use <typedef> as the main definition mechanism, and
> >
> > taskdef as
> >
> > > a shortcut for types with optional TaskAdapter adapters ).
> >
> > This is exacty what "taskdef" is in the patch :-).  It derives
> > from typedef and sets the adapterClass to TaskAdapter, and
> > the adaptoClass
> > to Task. The html page for taskdef in the friday patch makes
> > this explicit.
> >
> > I have some WorkInProgress code to allow this to be specified
> > in a buildfile.
> >
> > <extendtype name="taskdef">
> >     <typedef adapter="org.apache.tools.ant.TaskAdapter"
> >                   adaptto="org.apache.tools.ant.Task"/>
> > </extendtype>
> >
> > "extendtype" is a WIP name for a cut-down templating feature, it
> > defines new types from other types with some attributes pre set.
>
> Well I am glad, you guys are rediscovering "role" definitions
> one feature at the time. :-)

Yes... the extendtype idea does come from your antlib proposal.

I have WIP code that adds roles into my patch.

They are used like:

<typedef name="or" role="org.apache.tools.ant.taskdefs.condition.Condition"
              classname="org.apache.tools.ant.taskdefs.condition.Or"/>

This definition of "or" can only be used where "o.a.t.a.t.condition.Condition"
is expected. - either in a add[Configured](o.a.t.a.t.condition.Condition)
method, or in a add[Configured]Nested(o.a.t.a.t.condition.Condition) with
the polymorhic <nested poly:type="or"/> build script.

<extendtype/> may be used to emulate the "role" element in the antlib
proposal:

  <extendtype name="conditiondef">
      <typedef role="org.apache.tools.ant.taskdefs.condition.Condition"/>
  </extendtype>

<conditiondef name="or" classname="o.a.t.a.taskdefs.condition.Or"/>

Peter


Mime
View raw message