> AFAIR, considering that the expressions are already cached (which > represents an improvement on the performance), the next problem is the > value manipulation which is not so performant (though I haven't looked > so deep to suggest some optimizations)
I see. Do you mean stuff like %{'someString'+#someContextKey+someContextRootKey} Or is it something else? rgds ----- Original Message ---- From: Alexandru Popescu <[EMAIL PROTECTED]> To: Struts Developers List <dev@struts.apache.org> Sent: Friday, 29 September, 2006 3:38:57 AM Subject: Re: Abstracting Ognl from XWork and Struts 2? On 9/29/06, tm jee <[EMAIL PROTECTED]> wrote: > Its doable I guess. > > If we have an Expression parser / converter like Alex pointed out, we could > have a standard syntax, but it would be more complicated to implement. > > Without an Expression parser / converter, it'd likely to get users confused > as it depends on what implementation is being used. > This would be indeed a possible drawback, not to mention the confusion that will arise from the forum posts: [future-quote] Q: I have the following in my JSP and it is not working: <ww:property value="$tralala" /> A: Oh no, you need to write it ${tralala} A: No, that's not true: you need to write it %{tralala} A: by the way what expression language are you using? [/future-quote] > Either case, I think we should stick with a standard supported > implementation i guess. Personally, I think that Ognl is still the most > powerfull expression language. :-) > > Btw, is Ognl so slow? I think there's some caching done to the expression > evaluation, is that not sufficient to make the performance acceptable as well? > AFAIR, considering that the expressions are already cached (which represents an improvement on the performance), the next problem is the value manipulation which is not so performant (though I haven't looked so deep to suggest some optimizations) ./alex -- .w( the_mindstorm )p. > rgds > > > ----- Original Message ---- > From: Alexandru Popescu <[EMAIL PROTECTED]> > To: Struts Developers List <dev@struts.apache.org> > Sent: Friday, 29 September, 2006 3:38:45 PM > Subject: Re: Abstracting Ognl from XWork and Struts 2? > > On 9/29/06, Don Brown <[EMAIL PROTECTED]> wrote: > > I've been toying with this idea of severing XWork and Struts 2's strict > > dependency to OGNL. The goal is not necessary to remove OGNL outright, > > but to make it possible to replace it with another expression language. > > I'm happy with OGNL right now, however a couple things - its slow, > > mostly unsupported, doesn't have tool support, and did I mention slow? - > > inspire me to want to start to wean Struts off of it. > > > > How would we do it? > > 1. Pull out a ValueStack interface from OgnlValueStack > > 2. Create an abstract factory, ValueStackFactory, to create the ValueStack > > 3. Pull out an interface from OgnlUtils and create a factory for it > > 4. Replace/abstract the custom type conversion stuff > > > > I've done 1 and 2, compiling and tests passing. #3 seems pretty easy, > > but the big question mark is #4. Also, I'd imagine things like our tags > > are tied to the OGNL grammer, which might be interesting. > > > > Again, my goal isn't to remove it completely, but just to make it > > possible to swap it out sometime in the future with JEXL, JSP EL, custom > > OGNL (like Wicket and Stripes have done), WW 1 EL, or BeanUtils EL. The > > last two might be interesting to assist in migration situations. > > > > What does some of the Webwork veterans think? Is this doable? > > > > IMO, this is doable. But I think it may require yet another > abstraction: an expression converter, as the engines you are > mentioning are using different types of syntax. Or, if this is > something that comes in the XValueStack implementation than I guess it > may work too. > > ./alex > -- > .w( the_mindstorm )p. > > > Don > > > > --------------------------------------------------------------------- > > 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] > > > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]