ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Bodewig <bode...@apache.org>
Subject Re: EasyAnt phases
Date Fri, 14 Nov 2008 11:47:31 GMT
On 2008-11-13, Matt Benson <gudnabrsam@yahoo.com> wrote:

> --- Stefan Bodewig <bodewig@apache.org> wrote:

>> On 2008-11-11, Matt Benson <gudnabrsam@yahoo.com>
>> wrote:

>>> Personally I would prefer supporting arbitrary attributes on
>>> targets.

>>> This would be less specific to EasyAnt and could have mileage for
>>> other Ant extensions.

Do you envision that we replace Target with UnknownElement and friends
or are you "just" thinking of a Property-Set that can be associated
with a target?

EasyAnt would still need a custom ProjectHelper to make sense of the
additional attributes, I don't see this as major a problem, though.

>> I read this as "I don't want the feature in core but provide hooks
>> to make live easier for EasyAnt", right?

> Pretty much, yeah, unless someone can make me see how "phases" (by
> whatever nomenclature) are relevant to basic Ant-fu.  :)

OK, I'll try.

Take a look at the build file "infrastructure" (big word and it will
become worse ;-) for our antlibs, in particular
http://svn.apache.org/repos/asf/ant/antlibs/common/trunk/build.xml

It contains a number of empty targets with names like
"ready-to-compile" which are in there as extension points.  If an
antlib needs to do something in addition to what ready-to-compile
does, it overrides the target with one of its own (which again depends
on the imported one).

This is a pattern you'll often find in build files designed for
re-use.  I think Steve uses this in Smartfrog and I know I've used it
at work myself.

\begin{overstatement}
"phases" turn this design pattern into a language feature.
\end{overstatement}

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Mime
View raw message