Sorry about that. Personally I would prefer "expression" attribute to contain an expression itself - it is supposed to be simple.
- Alexey. On 7/31/07, Matt Benson <[EMAIL PROTECTED]> wrote: > > > --- Alexey Solofnenko <[EMAIL PROTECTED]> wrote: > > > It is just a thought - should ScriptFilter, > > ScriptMapper, ... also return a > > value instead of setting it? > > > > mmmm.... I don't know! :) In hindsight maybe it > would have been better to leave this can of worms > unmolested rather than deal with these concepts of > consistency... I suppose that in either of those > cases it might well be reasonable to handle a return > value. But with good old Python, what--you can't > execute arbitrary junk, return a value, and consider > that an evaluation? Jython seems to be a pain > overall... seems like every time I have to deal with > it there's a headache involved. If we do extend this > concept, I suppose we could pull up "expression" to > AbstractScriptComponent, and have evaluate() delegate > to execute() and return null when expression == > false... then any type that wanted to support a return > value could just switch to calling evaluate and prefer > a return value to whatever its "legacy" mechanisms > were. How does this sound? > > -Matt > > > - Alexey. > > > > On 7/31/07, Matt Benson <[EMAIL PROTECTED]> > > wrote: > > > > > > > > > --- Alexey Solofnenko <[EMAIL PROTECTED]> wrote: > > > > > > > Old code was executing self.setValue() and the > > > > current behaviour breaks > > > > backward compatibility. I have tried old > > > > ScriptCondition.eval() and it fixed > > > > the problem. I think we should add "expression" > > > > attribute to > > > > AbstractScriptComponent and change it to use it > > with > > > > evaluateScript(), > > > > otherwise nested text will be executed with old > > > > executeScript() call. > > > > > > Thanks for running this down, Alexey. I see where > > > you're coming from with the "expression" > > attribute, > > > though I'm not sure I agree it should live all the > > way > > > up in AbstractScriptComponent, because we can't > > use it > > > to automatically drive anything. I am going to > > add it > > > to ScriptCondition directly; if we change our > > minds > > > later pulling it up shouldn't cause any problems. > > > > > > -Matt > > > > > > > > > > > - Alexey. > > > > > > > > On 7/31/07, Peter Reilly > > > > <[EMAIL PROTECTED]> wrote: > > > > > > > > > > For BSF there are two methods to run a script: > > > > > eval and exec, > > > > > > > > > > In ant 1.6.* the only method supported was > > exec. > > > > Hence all > > > > > the <script*> types called methods on self to > > set > > > > the return > > > > > value. > > > > > > > > > > For ant 1.7.0, I modified the scripting code > > to > > > > allow access to > > > > > eval and exec, but did not modify any calling > > > > types to use > > > > > eval rather than exec. (In fact I did not test > > the > > > > eval on anything) > > > > > I placed it here to allow expression handling > > from > > > > property callbacks > > > > > - something like <if test='${groovy: abc == > > > > "abc"}"> ..., but did > > > > > not follow up. > > > > > > > > > > I assume that jython does not like a new line > > in > > > > its expression. > > > > > > > > > > one can in python do > > > > > a = 1 > > > > > if a > 0: > > > > > b = 2 > > > > > however, one cannot do > > > > > if # > > > > > a > 0: > > > > > > > > > > > > > > > ... > > > > > So I think that this is a clear case of BC > > > > problem. > > > > > It would be nearly impossible to use > > > > <scriptcondition> with > > > > > jythton in it's current state. > > > > > > > > > > > > > > > (I cannot test at the moment due to > > > > (bsf/log4j/commons > > > > > logging/jython.jar issues) > > > > > > > > > > Peter > > > > > > > > > > > > > > > > > > > > On 7/31/07, Dominique Devienne > > > > <[EMAIL PROTECTED]> wrote: > > > > > > On 7/31/07, Matt Benson > > <[EMAIL PROTECTED]> > > > > wrote: > > > > > > > <scriptcondition> originally behaved such > > that > > > > a > > > > > > > default value can be declared on the task > > as > > > > an > > > > > > > attribute, and the embedded script can set > > the > > > > > > > condition value. I preserved this > > behavior, > > > > but added > > > > > > > a preference for a return value, if any, > > from > > > > the > > > > > > > script: again, on the basis that this > > seemed > > > > a (more) > > > > > > > natural behavior to me. DD, you said "not > > > > returning a > > > > > > > value is fine by you"... and that's what > > > > > > > <scriptcondition> always did, and _should_ > > > > still > > > > > > > allow... am _I_ missing anything (other > > than > > > > whatever > > > > > > > I've apparently done to break python > > > > compatibility)? > > > > > > > > > > > > Ah, sorry, I meant that "not returning a > > value > > > > is meaningless to me". > > > > > > Sure, if a default value for the condition > > is > > > > set as an attribute, why > > > > > > not (although I don't see why that's > > necessary > > > > or useful), but a > > > > > > scriptcondition is supposed to be a script > > > > fragment which returns a > > > > > > boolean value, and I don't see the point of > > not > > > > returning a value. > > > > > > --DD > > > > > > > > > > > > PS: The error message could be nicer though > > ;-) > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > 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] > > > > > > > > > > > > > > > > > > > > > > -- > > > > Alexey N. Solofnenko > > > > Home: http://trelony.cjb.net/ > > > > Pleasant Hill, CA (GMT-8 usually) > > > > > > > > > > > > > > > > > > > > > > > > > > ____________________________________________________________________________________ > > > Choose the right car based on your needs. Check > > out Yahoo! Autos new Car > > > Finder tool. > > > http://autos.yahoo.com/carfinder/ > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: > > [EMAIL PROTECTED] > > > For additional commands, e-mail: > > [EMAIL PROTECTED] > > > > > > > > > > > > -- > > Alexey N. Solofnenko > > Home: http://trelony.cjb.net/ > > Pleasant Hill, CA (GMT-8 usually) > > > > > > > > ____________________________________________________________________________________ > Pinpoint customers who are looking for what you sell. > http://searchmarketing.yahoo.com/ > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Alexey N. Solofnenko Home: http://trelony.cjb.net/ Pleasant Hill, CA (GMT-8 usually)