>> Please note that uel.dev.java.net API suffers from classic leaking >> classloader problem too - it uses Class instance as key in static Map : >> see MYFACES-2942 for details. Maybe we should put a warning about these >> two issues at http://wiki.apache.org/myfaces/HowToEnableEl22 ?
Huge +1 - please do so! Regards, Jakob 2010/10/20 Ivan <xhh...@gmail.com>: > Hi, Martin, i committed your patch to geronimo-el-2.2 1.1-SNAPSHOT, and will > publish a SNAPSHOT to the repository later, seems I got a slow network acess > speed ... > Thanks for pointing it out :-) > > 2010/10/20 Martin Koci <martin.kocicak.k...@gmail.com> >> >> Hi, >> >> some news about EL method invocations: >> >> 1) Geronimo EL API implementation has this problem too: >> https://issues.apache.org/jira/browse/GERONIMO-5657 >> >> 2) UEL bug is still open: >> https://uel.dev.java.net/issues/show_bug.cgi?id=19 >> >> 3) JUEL doesn't not work for my test cases, for example it doesn't find >> some public methods so I cannot say if JUEL has this problem now. >> >> >> My today's recommedation (which can change tommorow) is: if you want EL >> method invocations without file asscess within >> (without /META-INF/services reading): >> >> A) apply GERONIMO-5657 patch to >> http://svn.apache.org/repos/asf/geronimo/specs/trunk/geronimo-el_2.2_spec/ >> and build this EL-API >> >> B) use impl part from uel.dev.java.net as EL-impl or tomcat's EL impl >> >> >> Please note that uel.dev.java.net API suffers from classic leaking >> classloader problem too - it uses Class instance as key in static Map : >> see MYFACES-2942 for details. Maybe we should put a warning about these >> two issues at http://wiki.apache.org/myfaces/HowToEnableEl22 ? >> >> >> Regards, >> >> Kocicak >> >> Martin Koci píše v St 25. 08. 2010 v 20:52 +0200: >> > Hi, >> > >> > I'll try it but not today :) Optimization is my priority task for next >> > few months and certainly I'll compare all four (or more?) EL >> > implementations. >> > >> > Mark Struberg píše v St 25. 08. 2010 v 17:52 +0000: >> > > Martin, could you please give juel a quick try? Would be interested if >> > > if also >> > > suffers from this problem. >> > > >> > > You can find a slightly tweaked (bugfixed) version of it on my github >> > > page >> > > >> > > http://github.com/struberg/juel >> > > >> > > The original is on juel.sourceforge.net >> > > >> > > LieGrue, >> > > strub >> > > >> > > >> > > > >> > > >From: Jakob Korherr <jakob.korh...@gmail.com> >> > > >To: MyFaces Development <dev@myfaces.apache.org> >> > > >Sent: Wed, August 25, 2010 5:10:09 PM >> > > >Subject: Re: EL method invocation performance >> > > > >> > > >Hi, >> > > > >> > > >Does this really have to happen at every method invocation or is this >> > > > an >> > > >implementation problem? >> > > > >> > > >If it is an implementation problem and can be circumvent in any way, >> > > > I would >> > > >contact the Glassfish and Tomcat developers about this ;) >> > > > >> > > >Regards, >> > > >Jakob >> > > > >> > > > >> > > >2010/8/25 Ivan <xhh...@gmail.com> >> > > > >> > > >How about trying the el api published by Geronimo ? it caches the >> > > >ExpressionFactory to avoid the search action by default. >> > > >> >> > > >> >> > > >>2010/8/25 Martin Koci <martin.k...@aura.cz> >> > > >> >> > > >> >> > > >>Hi, >> > > >>> >> > > >>>this problem is not in myfaces but affects performance especially >> > > >>> in >> > > >>>render response phase: >> > > >>> >> > > >>>EL 2.2 introduces method invocation but if you try use it like >> > > >>>rendered="#{bean.getRendered(param)}" there is an unpleasant >> > > >>> surprise: >> > > >>>both implementations of BeanELResolver (Glassfish, Tomcat) use this >> > > >>>construction during method invocation: >> > > >>> >> > > >>>ExpressionFactory exprFactory = ExpressionFactory.newInstance(); >> > > >>> >> > > >>>That newInstance() always involves FactoryFinder mechanism, >> > > >>> callstack >> > > >>>then looks like : >> > > >>> >> > > >>>org.apache.catalina.loader.WebappClassLoader.findResourceInternal >> > > >>> org.apache.catalina.loader.WebappClassLoader.findResource >> > > >>> org.apache.catalina.loader.WebappClassLoader.getResourceAsStream >> > > >>> javax.el.FactoryFinder.find(String, String, Properties) >> > > >>> javax.el.ExpressionFactory.newInstance(Properties) >> > > >>> javax.el.ExpressionFactory.newInstance() >> > > >>> javax.el.BeanELResolver.invokeMethod(Method, Object, Object[]) >> > > >>> >> > > >>> >> > > >>>Always tries to locale factory implementation, that >> > > >>>means /META-INF/services reading! This is not problem in myfaces, >> > > >>> but >> > > >>>users don't distinguish between JSF and EL well. >> > > >>> >> > > >>>Any ideas? >> > > >>> >> > > >>>Regards, >> > > >>> >> > > >>>Martin Kočí >> > > >>> >> > > >> > > >>> >>>https://uel.dev.java.net/svn/uel/trunk/api/src/main/java/javax/el/BeanELResolver.java >> > > >>> >> > > >>> >> > > >> > > >>> >>>http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/BeanELResolver.java >> > > >>> >> > > >>> >> > > >>> >> > > >>> >> > > >> >> > > >> >> > > >>-- >> > > >>Ivan >> > > >> >> > > > >> > > > >> > > >-- >> > > >Jakob Korherr >> > > > >> > > >blog: http://www.jakobk.com >> > > >twitter: http://twitter.com/jakobkorherr >> > > >work: http://www.irian.at >> > > > >> > > >> > > >> > > >> > > >> > >> > >> > >> >> > > > > -- > Ivan > -- Jakob Korherr blog: http://www.jakobk.com twitter: http://twitter.com/jakobkorherr work: http://www.irian.at