On 6/28/07, Jay Dickon Glanville <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> wrote:
> On 6/28/07, Jay Dickon Glanville <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


--
Jay Dickon Glanville

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to