ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matt Benson <>
Subject Re: How to manage properties for identical tasks/macros run in parallel?
Date Sun, 13 Mar 2011 07:38:18 GMT
You should see the <local> task, whereby you can set up scoped
property "shadowing."


On Sat, Mar 12, 2011 at 10:59 PM, Parag Doke
<> wrote:
> Any ideas anyone ?
> Thanks in advance,
> Parag Doke
> Save paper, save trees. Do not print emails/documents unless
> absolutely necessary.
> On Mon, Mar 7, 2011 at 12:52 PM, Parag Doke <> wrote:
>> Hello ant users.
>> I am facing an issue with handling properties with calls to tasks/macros
>> nested within the parallel task. More of a logical/approach related issue
>> rather than anything with the tool itself. Here go the details:
>> Using ant:
>> Apache Ant version 1.8.1 compiled on April 30 2010
>> With Java:
>> java version "1.6.0_22"
>> Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
>> Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)
>> The most relevant part of the build.xml:
>>         <parallel>
>>             <mySleep seconds="4"/>
>>             <mySleep seconds="3"/>
>>             <mySleep seconds="2"/>
>>             <mySleep seconds="1"/>
>>         </parallel>
>> mySleep is my own macro with the following declaration:
>>     <macrodef name="mySleep">
>>         <attribute name="seconds"/>
>>         <sequential>
>>             <sleep seconds="@{seconds}"/> <!-- In my actual case,
this is
>> exec calls with the outputproperty attribute -->
>>             <property name="myProp" value="my value = @{seconds}"/>
>>             <echo>Now working with ${myProp}</echo>
>>         </sequential>
>>     </macrodef>
>> Since properties are immutable, if it so happens that the 4th macro call
>> sets the property, the rest of them cannot modify it. A quick alternative to
>> this might be using the variable task (in place of property) from
>> However, the above is just an example. In reality, my
>> macro does an exec call. The outputproperty attribute to the exec call will
>> be what I need to process later.
>> So I guess my questions are:
>> 1) What is the best approach to handle properties/variables for (almost)
>> identical macro calls ? I cannot modify the property name each time. I could
>> redirect stdout/stderr of the exec task to some file. But not sure how to
>> guarantee that the file will be unique and not get overwritten if 2 tasks
>> finish at the same instant of time.
>> 2) Can the outputproperty value be captured in a variable directly ? I read
>> that it is possible to use the ant-contrib propertycopy task to get one
>> property value into another. But then there is a risk that the copy might
>> not be synchronized ...
>> The last option I have is of course to get rid of the parallel task and let
>> the macros run one after the other. But that would be modifying the
>> requirement to suit the scripting limitation I've run into. So I thought of
>> asking here before jumping on any implementation.
>> Thanks in advance for any pointers,
>> Parag Doke
>> Save paper, save trees. Do not print emails/documents unless absolutely
>> necessary.
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message