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
