From: "Peter Donald" <[EMAIL PROTECTED]>

> On Fri, 19 Oct 2001 16:22, Stefan Bodewig wrote:
> > As it stands, a couple of tasks can live at the same level as
> > <target>, but they are hard coded by name.  How do we want to handle
> > this in Ant2?
> 
> no idea ;)
> 

As long as we have a two tier view of tasks/datatypes in ANT we will have this 
problem. 
Today the ANT engine knows about some special things that look like tasks but 
cannot
be written by notmal users (e.g., <property>). Every time you have a system 
where some
of its predefined features cannot be expressed using the APIs of the system 
people run
into trouble. Everything any task can do in ANT, should be done thru a well 
definied API
that is available to any other task regardless of origin, creed, etc. :)

> However before we edecide on this we first need to discuss scoping of 
> properties because this will have a direct impact on our structure. If 
> properties are scoped by target then (1) is definetly out because no target 
> could set properties for another target. If properties are scoped at project 
> level (like we do now) then all is fine.
> 
> If properties are mutable then I would think that (1) definetly comes out 
> ahead as it is more difficult to think of "global" properties as being 
> immutable.
> 
> Then there is interaction between the two, immutable scoped vs mutable 
> scoped, vs immutable unscoped vs mutable unscoped.
> 
> So I think these need to be decided upon first as they will directly 
> influence a decision on this question.
> 
> FWIW I think I like Imuttable but I am +/-0 on scoping and could swing either 
> way.
> 

I agree with your likes with respect to muttability and scoping. However I 
would say 
that what we desperatly need is orthogonality on the design. It cannot be that 
in order to take 
one decision we need to examing all aspects of everything and all its possible 
combinations.
We need a small amount of orthogonal and independent principles that apply to 
everything.
We cannot have one set or rules for <property>, a separate for <taskdef> and 
another one
for something else. No matter if we are talking declaration, scoping, etc.

> > (3) Allow all tasks that implement a given marker interface to be
> > defined at the same level as <target>s (Jose Alberto Fernandez
> > proposes this and has already supplied a patch that enables this in
> > Ant 1.x).
> 
> This is good because it flexabile and pushes all decisions to task writer ... 
> it is bad for all the same reasons ;)
> 
More power to the people!!!! :-)

Jose Alberto


Reply via email to