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