Great! I thought that tomcat and geronimo EL implementation are from same source; But just now I'm looking in geronimo code and expressionFactory instance is cached - I'll definitely try it, thanks!
Ivan píše v St 25. 08. 2010 v 22:54 +0800: > 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