Hi Ant developers,

I am making use of target overriding in combination with extension-points.
I have the same problem as that discussed here, which will hit me when I 
upgrade to ant 1.9:
https://issues.apache.org/bugzilla/show_bug.cgi?id=56337

My use-case is identical to the one in Comment #3 of the above-mentioned issue:
- a common script with extension-points and default targets defined;
- a handful of project-specific build files which import these and override 
just a few targets.

The philosophy I am trying to follow here is where the common script defines 
the order of
execution of all build steps for all projects, thus achieving a certain degree 
of uniformity
across our build processes. I have taken an extreme approach
where any targets defined in the project-specific build files are only allowed
to specify the "extension-of" attribute, and not the "depends" attribute, thus 
forcing all
flow control logic to reside in the common script.


The workaround given in Comment #4 seems too messy/warty to me
... a lot of redundant targets have to be created:
"greeting"
"hi",
"hi-impl"

...and the output is not very intuitive, as it suggests to the casual reader 
that
both "hi" and "hi-impl" were executed, which is not the case:
hi-impl:
     [echo] Hello

hi:

greeting:



So, if we leave this workaround to the side for the moment, my question is:
If a target from an common build file can be overridden by declaring a target of
the same name, why is this not also true for targets in the common build file 
that specify
an "extension-of" attribute?

In Comment #2 it was mentioned that the latter case is considered "dangerous",
but isn't overriding *any* target dangerous in that sense? As a script 
developer I would first
go and see what I am overriding, see what it depends on, see what it extends, 
etc.

Is it that the philosophy of removing flow control logic out of 
project-specific scripts
is not the Ant Way?

Many thanks for your consideration.
Daniel
________________________________

All emails in this message string and any attachments are the confidential 
information of CSG Systems International, Inc. (CSG), or its affiliates and 
subsidiaries, and may contain privileged and/or confidential material. If you 
are not an intended recipient, please delete it immediately and notify the 
sender; unintended recipients are not authorized to read or otherwise use the 
information contained herein.


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

Reply via email to