ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jose Alberto Fernandez" <jalbe...@cellectivity.com>
Subject RE: local properties
Date Mon, 18 Oct 2004 10:48:16 GMT
I hate when I reply to my own messages, but I think
some additional remarks are granted here.

> From: Jose Alberto Fernandez 
> 
> > From: Jan.Materne@rzf.fin-nrw.de [mailto:Jan.Materne@rzf.fin-nrw.de]
> > 
> > 
> > > >Havent got an answer to that proposal:
> > > >    <local prefix="tmp"/>
> > > >    <loadproperties prefix="tmp"/>
> > > 
> > > I do not see how it would be useful
> > 
> > You could use all other tasks as they are. Many tasks store
> > their result in properties. Some (like loadproperties) in 
> > multiple props.
> > 
> > 
> > > or how to implement it. :-)
> > 
> > - Register the "tmp" as temporary prefix on Project
> > - setNewProperty() (and the other *Propert* methods) check against
> >   the list of temporary props and allow overriding.
> > - Project.deleteProperties(String prefix) would unset all properties
> >   with the registered prefix and deregister that.
> > 
> 
> Of course, in my proposal you would just do:
> 
>   <macrodef...>
>     <let name="temp" />
>     <sequential>
> 
>     <loadproperties prefix="$(temp)" .../>
> 	....
>    </sequential/>
>   </macrodef>
> 
> :-)
> 
> No need to modify anything, I think.
> 

This is another example where a the names created by <let/> do not
necessarily represent the name of a property but something different,
in this case a prefix used by multiple properties.

One still could conceived an automatic cleaning mechanism, but I am not
sure you can enforce it, unless you know what the name is used for.
You could say something like:
<macrodef...>
 <let name="temp"/>
 <onExit clean="property" name="$(temp)"/>
 <onExit clean="property" prefix="$(temp)"/>
 <onExit clean="reference" name="$(temp)"/>
 <onExit clean="macro" name="$(temp)"/>

  <sequential ..../>
</macrodef>

Or whatever other name spaces we have. Now this all can be done as the
need arrive.
Anywhere where we can define something with a name, a recursive macro
may want to
create new versions of it. And I have used such things on scripts, for
example.
So it is not just pie in the sky. :-)

Jose Alberto

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


Mime
View raw message