ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jacob Kjome <h...@visi.com>
Subject Re: Target or macrodef?
Date Tue, 24 Aug 2004 15:49:08 GMT
Quoting sebastian ssmoller <sebastian.ssmoller@web.de>:

> hi,
> this would be great !
> 
> recently, i had exactly that problem (setting a "temp" property in a
> <macrodef/>) ... i had to use <antcall/> as work-around :(
> 

Well, <antcall> is just totally unnecessary.  Just use the value of the macrodef
attributes as a property.  Obviously it becomes a property that will live
throughout the app, but it is usually so unique that that you'd never define or
generate another property by the same name.  If the value won't be unique, you
can chain multiple macrodef attribute values together to make a truly unique
property.  For more information, see...

http://ant.apache.org/faq.html#propertyvalue-as-name-for-property

With Ant-1.6, I can't think of one reason to use <antcall> anymore.  <ant> and
<subant> (new to Ant-1.6) are still very useful and needed, but <antcall> can
be
dumped as of Ant-1.6.

The whole local property thing (
http://issues.apache.org/bugzilla/show_bug.cgi?id=23942 ) is, arguably, somewhat
less of a "hack", but I certainly won't lose sleep if it never makes it into
Ant.  The "hack" works splendidly for me.

Jake

> regards,
> seb
> 
> On Mon, 23 Aug 2004 14:08:06 -0400
> "Inger, Matthew" <Inger@Synygy.com> wrote:
> 
> > Perhaps that could be a future requirement, to allow for the user
> > to choose which behavior he/she wants.
> >
> > It would be nice if project had a notion of a stackable variable
> > scope:
> >
> > public class VariableScope {
> >   // add fields and accessors for properties, refs, taskdefs, etc...
> > }
> >
> > public class StackedVariableScope {
> >     private VariableScope current;
> >     private Stack stack;
> >
> >     public void push(boolean inheritAll, boolean inheritRefs) {
> >         stack.push(current);
> >         VariableScope scope = new VariableScope();
> >         if (inheritAll) {
> >            // copy from current to scope
> >         }
> >         if (inheritRefs) {
> >            // copy from current to scope
> >         }
> >
> >         current = scope;
> >     }
> >
> >     public void pop() {
> >         current = (VariableScope)stack.pop();
> >     }
> > }
> >
> > Not only would this allow macros to make the decision
> > i mentioned above (by being able to push before macro exec,
> > and pop afterwards), but would also probably simplify, and
> > speed up the execution of <antcall>, as it wouldn't need to
> > create a completely new copy of the project.
> >
> > Perhaps a refactoring for Ant 1.7?
> >
> > -----Original Message-----
> > From: Jeffrey Bacon [mailto:jbacon@magmic.com]
> > Sent: Monday, August 23, 2004 2:02 PM
> > To: Ant Users List
> > Subject: Re: Target or macrodef?
> >
> >
> > > can be much more time consuming.  Keep in mind however (and someone
> > > correct me if i'm wrong), that any properties you set in a macro
> > > will
> > > also get set for the calling target, which can be problematic.
> >
> > or advantageous... =)
> >
> > --
> > Jeffrey Bacon
> > jbacon@magmic.com
> > Creative Developer
> > http://www.magmic.com
> >
> >
> > >
> > >
> > > -----Original Message-----
> > > From: Dick, Brian E. [mailto:Brian.Dick@FMR.com]
> > > Sent: Monday, August 23, 2004 1:57 PM
> > > To: Ant Users List
> > > Subject: Target or macrodef?
> > >
> > >
> > > I have a piece of code that I need to call repeatedly. The code has
> > > three simple arguments. I can write the code as a target or as a
> > > macrodef. What should I consider when choosing between these two
> > > implementations?
> > >
> > > -------------------------------------------------------------------
> > > --
> > > 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
> > >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> > For additional commands, e-mail: user-help@ant.apache.org
> >
> 
> 
> --
> "Perfection is achieved, not when there is nothing left to add,
> but when there is nothing left to take away."
> --- Antoine de St. Exupery, Wind, Sand, and Stars, 1939
> 
> ---------------------------------------------------------------------
> 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