I'm having a problem with properties being evaluated at runtime with the <if> 
task in ant-contrib.  I'm hoping someone here can give me a clue to how and 
when ProjectHelp.configure() gets called and what I might be able to do to 
force it to re-configure the task prior to execution.

The <if> task uses 2 Sequential tasks, one each for the then and else clauses.  
If I define a property in a regular Sequential task, the next task can access 
that property.  But If I do so in the then clause of <if> it can not.

I thought the problem may be because IfTask extends ConditionBase rather than 
Task so I changed it to extend Task but that didn't help.  I also overrode 
maybeConfigure() to pass the call onto both Sequential tasks but that didn't 
help as well.

Here is a test file and it's output.  The 1st property, test1, is correctly 
evaluated by the <echo> task but the 2nd one is not. 

 

<project name="test" default="main" basedir=".">
  <target name="main">
    <taskdef resource="net/sf/antcontrib/antcontrib.properties" />

    <sequential>
      <property name="test1" value="foobar"/>
      <echo message="test1=${test1}"/>
    </sequential>

    <if>
      <isset property="basedir"/>
      <then>
        <property name="test2" value="foobar"/>
        <echo message="test2=${test2}"/>
      </then>
    </if>
  </target>
</project>

The output is

Buildfile: test.xml

main:
     [echo] test1=foobar
     [echo] test2=${test2}

BUILD SUCCESSFUL
Total time: 1 second


Brian DeWeese



---------------------------------
Do You Yahoo!?
HotJobs, a Yahoo! service - Search Thousands of New Jobs

Reply via email to