Hi Steve,
Thanks a lot for your reply.
You wrote:
>Maybe echo isnt updating its string. Just go Project.log() instead.
What does it mean ?
I try to apend the code below:
project.log( echoval,"XXX", Packages.org.apache.tools.ant.Project.
MSG_WARN);
But this doesn't work,,,
I try to do MSG_DEBUG, MSG_ERR, MSG_INFO, MSG_VERBOSE ...
The output of console did display the same result..
Best Regards,
trad-ex
>trad-ex wrote:
>> Hi Scot,
>> Hi folks,
>>
>> Sorry for my late response & poor English.
>>
>> I try to organize the discussion on this thread.
>> As originally questions by other person, how can he pass values from a
>> script into a target in spite of the immutablity of properties in Ant ?
>> A part of his script is below:
>>
>> <target name="test">
>> <script language="javascript"><![CDATA[
>> project = self.getProject();
>> echo = project.createTask("echo");
>> project.setProperty("theVal", "foo");
>> echo.setMessage(project.getProperty("theVal"));
>> echo.perform();
>> echoval.execute();
>> project.setProperty("theVal", "bar");
>> echo.setMessage(project.getProperty("theVal"));
>> echo.perform();
>> echoval.execute();
>> ]]></script>
>> </target>
>> <target name="echoval">
>> <echo>${theVal}</echo>
>> </target>
>>
>> This script produces the following output.
>>
>> test:
>> [echo] foo
>> [echo] foo
>> [echo] bar
>> [echo] foo ( -> bar expected )
>>
>> So, because the way of getting rid of immutability is using VariableTask
>> in Ant-contrib, I tried to change his script above like this below:
>>
>> <script language="javascript"><![CDATA[
>> project = self.getProject();
>> echo = project.createTask("echo");
>> variable = project.createTask("var");
>> variable.setName("theVal");
>> variable.setValue("foo");
>> variable.execute();
>> echo.setMessage(project.getProperty("theVal"));
>> echo.perform();
>> echoval.execute();
>> variable.setName("theVal");
>> variable.setValue("bar");
>> variable.execute();
>> echo.setMessage(project.getProperty("theVal"));
>> echo.perform();
>> echoval.execute();
>> ]]></script>
>>
>> But, this script replicated the same result
>>
>> [echo] foo
>> [echo] foo
>> [echo] bar
>> [echo] foo ( -> bar expected )
>
>Maybe echo isnt updating its string. Just go Project.log() instead.
>
>>
>> So I consulted the javadoc of Ant, I found that org.apache.tools.ant.
>> Project#setProperty can overwrite the given property!
>>
>> My questions are:
>> 1. Why couldn't the first script overwrite the value of property ?
>> It's not because of immutability, IMHO.
>
>maybe it did, and the logging is wrong
>
>> 2. What's wrong with my ( second ) script ?
>
>same as with the first?
>
>> 3. Without using MacrodefTask, can this issue be solved just by
>> ScriptTask ?
>
>It looks to me like you are overwriting a property.
>Project.setNewProperty() implements immutability rules, but
>Project.setProperty() doesnt.
>
>---------------------------------------------------------------------
>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]