ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Peter Reilly" <peter.kitt.rei...@gmail.com>
Subject Re: "Overriding previous definition of reference" ... should I worry?
Date Sun, 15 Jul 2007 13:56:08 GMT
On 6/28/07, Jay Dickon Glanville <dickon.glanville@gmail.com> wrote:
> Dominique,
>
> "decoration" means "declaration" (as you can see, I rely too heavily
> on a spell checker that can't read my mind...)
>
> Because of your advice, I will reorder my patterset declarations so
> that they are declared before they are referred to.
>
> Thank you all for your help.
>
> JDG
>
> On 6/28/07, Dominique Devienne <ddevienne@gmail.com> wrote:
> > On 6/28/07, Jay Dickon Glanville <dickon.glanville@gmail.com> wrote:
> > > If I can ask you, and the rest of the community, for a touch more clarification.
> > >
> > > In my example,
> > > 01]  <project basedir="." default="compile" name="example">
> > > 02]    <patternset id="depender">
> > > 03]      <patternset refid="dependee" />
> > > 04]    </patternset>
> > > 05]    <patternset id="dependee">
> > > 06]    </patternset>
> > > 07]    <target name="compile" >
> > > 08]      <echo>doing nothing</echo>
> > > 09]    </target>
> > > 10]  </project>
> > >
> > > Line 03, the reference to another patternset (one that hasn't been
> > > declared yet) in essence creates it.  It's initial value is probably
> > > an empty set.
> >
> > For historical and BC reasons, id's are handled at XML parse time, not
> > runtime. Your interpretation assumes runtime, which is incorrect.
> > OTOH, refid's are in fact handled at runtime only.

This has changed for ant 1.7.0 - code has been placed in to
handle ids at runtime, and at the same time try to keep back-compabily
if an id is not evalualed when the id is refererenced before being declared.

> >
> > > Later on, on line 05 (where the patternset officially gets declared)
> > > the patternset gets modified with whatever the decoration gives it.
> >
> > I'm not sure what you mean by decoration.
> >
> > > So, as long as all my patternset declarations are grouped together at
> > > the top of my build file, and there are no targets interspersed,
> > > everything should be fine for me.
> >
> > Since id's are handled at parse time, there can be some funny business...
> >
> > > Is my interpretation correct?
> >
> > Things could have changed, and Peter is the expert in these matters,
> > but I encourage you to add 'meat' to your patternsets, and exercise
> > them against a control set of files, to figure out for yourself.
> >
> > But in general, I don't think it's a good idea to use an id which
> > hasn't been declared beforehand, especially given the special nature
> > of id handling in Ant. You're asking for trouble ;-) --DD

This is very good advice!

Peter

> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> > For additional commands, e-mail: user-help@ant.apache.org
> >
> >
>
>
> --
> Jay Dickon Glanville
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
>
>

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


Mime
View raw message