Jose Alberto Fernandez <j_a_fernandez@yahoo.com> wrote on 07/11/2002
11:45:23 PM:
> I see no reason why you need to consider "super" as
> special, from the point of view of the ANT engine. The
> implementation just needs to do a syntactic rewrite.
Yes, but it means something in particular. It's 'magic' for "call the
replaced target". Magic != intuitive.
> You ask about backward compatibility. I see no
> compatibility issue at all. If you have targets called
> "supper.XXXXX" they are just there.
So what gets called if I already have a target in the build file called
'super.XXXX'? What does the antcall do? Call the one that existed in my
build file, or the 'replaced' target? Or both?
> If you have "super.XXXX" and "XXXX" there is no issue
> either.
>
> If you import such a buildfile into another AND
> redefine "XXXX", then the rewriting rule will renamed
> the original "XXXX" to "super.XXXX" which should cause
> a parsing error since you have two targets with the
> same name (just as it complains today).
Which would be unnecessary if the magic 'super' didn't exist tho....
> Is this a backward compatibility issue? NO. In this
> situation you are modifying the build, directly or
> indirectly. Backward compatibility only means that old
> buildfiles have to keep on running as intended.
> It does not mean that I can start using anything new
> and not have to change something.
So once I start using a new feature of Ant 1.6, it's ok for my old build
files to stop running as they used to?
[snip]
> <target name="mytarget"
> depends="${ant::super(mytarget)}">
> <dostuff1/>
> </target>
>
> now, I doubt anybody has a property called like that.
Yep, and I'll be stunned if anybody gets it right first time :)
> comments,
I'd much rather stick with import and include as XSL defines them.
Clearer, consistent with other technologies, and no messy super.stuff to
be done.
> Jose Alberto
--
dIon Gillard, Multitask Consulting
Work: http://www.multitask.com.au
Developers: http://adslgateway.multitask.com.au/developers
|