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 ) 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. 2. What's wrong with my ( second ) script ? 3. Without using MacrodefTask, can this issue be solved just by ScriptTask ? Sorry for my tedious explanation. Best Regards, trad-ex >To be honest, I've never used the <script> feature of ant. Sorry, I >think I misunderstood your question... More to the point...it looks >like I didn't read the question correctly... > >Sorry 'bout that :) > >Scot > >trad-ex wrote: >> Hi Scot, >> >> Thanks a lot for your reply. >> Yes, I've already known that behavior of "Variable" Task. >> What I would like to know is the proper coding in Script Task by using >> Javascript. >> >> I wonder my conding doesn't make sense ? >> >> Best Regards, >> trad-ex >> >> >>> I think the idea here is to use <var> from ant contrib. It definitely >>> works and allows one to reset properties... >>> >>> For instance: >>> >>> <project name = "example"> >>> <taskdef resource = "net/sf/antcontrib/antlib.xml"/> >>> >>> <var name = "my-var" value = "foo"/> >>> <echo message = "my-var = ${my-var}"/> >>> >>> <var name = "my-var" value = "bar"/> >>> <echo message = "my-var = ${my-var}"/> >>> >>> <var name = "my-var" value = "alpha"/> >>> <echo message = "my-var = ${my-var}"/> >>> </project> >>> >>> Will yield: >>> >>> [echo] my-var = foo >>> [echo] my-var = bar >>> [echo] my-var = alpha >>> >>> Above, the variable is being changed... >>> >>> trad-ex wrote: >>> >>>> Hi Steve, >>>> >>>> I tried to use "Variables" Task in ant-contrib, but it replicate the >>>> same result as Dick did. >>>> My build.xml is: >>>> >>>> <?xml version="1.0" ?> >>>> <project name="build" basedir="." default="test"> >>>> <taskdef resource="net/sf/antcontrib/antlib.xml"/> >>>> <target name="test"> >>>> <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> >>>> </target> >>>> <target name="echoval"> >>>> <echo>${theVal}</echo> >>>> </target> >>>> </project> >>>> >>>> The Result is: >>>> >>>> c:\>ant -v >>>> Apache Ant version 1.6.2 compiled on July 16 2004 >>>> Buildfile: build.xml >>>> Detected Java version: 1.4 in: C:\j2sdk1.4.1_07\jre >>>> Detected OS: Windows XP >>>> parsing buildfile C:\build.xml with URI = file:///C:/build.xml >>>> Project base dir set to: C:\ >>>> parsing buildfile >>>> jar:file:/C:/apache-ant-1.6.2/lib/ant-contrib.jar!/net/sf/antcontrib/ >>>> antlib.xml >>>> with URI = >>>> jar:file:/C:/apache-ant-1.6.2/lib/ant-contrib.jar!/net/sf/antcontrib/ >>>> antlib.xml >>>> Build sequence for target `test' is [test] >>>> Complete build sequence is [test, echoval, ] >>>> >>>> test: >>>> [echo] foo >>>> [echo] foo >>>> [echo] bar >>>> [echo] foo >>>> >>>> BUILD SUCCESSFUL >>>> Total time: 0 seconds >>>> c:\> >>>> >>>> Why ? >>>> What's wrong with my description about "Variable" task ? >>>> Any comments will be very appreciated. >>>> >>>> Best Regards, >>>> trad-ex >>>> >>>> >>>> >>>>> Dick, Brian E. wrote: >>>>> >>>>> >>>>>> I have just a day to get this working. These are production machines, >>>>>> so >>>>>> I can't deploy anything to them. >>>>>> >>>>>> I'm using sshexec to remotely ping from a unix host and using rcmd to >>>>>> remotely ping from a windows host. I redirect the output from these >>>>>> tasks to a file and then use loadfile with a filterchain to load the >>>>>> ipaddress into a property. >>>>>> >>>>>> This works all fine and dandy except I need to do it in a loop, so that >>>>>> led me to the script task. But I was having problems getting the >>>>>> ipaddress set by loadfile back to the script. I didn't want to create >>>>>> 20x100 properties, but if that's what it takes, so be it. >>>>>> >>>>>> >>>>>> >>>>> In that case, grab the <var> task from ant-contrib, which can be used >>>>> to >>>>> erase a property before you reuse it. >>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> 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] >>>> >>>> >>>> >>>> >>> -- >>> Scot P. Floess >>> 27 Lake Royale >>> Louisburg, NC 27549 >>> >>> 252-478-8087 (Home) >>> 919-754-4592 (Work) >>> >>> Chief Architect JPlate http://sourceforge.net/projects/jplate >>> Chief Architect JavaPIM http://sourceforge.net/projects/javapim >>> >> >> >> > >-- >Scot P. Floess >27 Lake Royale >Louisburg, NC 27549 > >252-478-8087 (Home) >919-754-4592 (Work) > >Chief Architect JPlate http://sourceforge.net/projects/jplate >Chief Architect JavaPIM http://sourceforge.net/projects/javapim > > > >---html-part included links------- >mailto:[EMAIL PROTECTED] >mailto:[EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]