myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Leonardo Uribe <lu4...@gmail.com>
Subject Re: [core] performance: ELResolvers filtering
Date Mon, 04 Apr 2011 17:14:39 GMT
Hi

Add a param to disable JSP support looks like a good idea. With such param
we could solve this issue raised recently:

https://issues.apache.org/jira/browse/MYFACES-3104 MyFaces 2 with EL 2.2 in
Websphere 7

regards,

Leonardo Uribe

2011/3/17 Martin Koci <martin.kocicak.koci@gmail.com>

>
> This approach cannot filter two resolvers:
> 1. org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver
> 2. org.apache.myfaces.el.unified.resolver.ScopedAttributeResolver
>
>
> 1) the first one is instance of CompositeELResolver and serves as
> container for sorted/filtered list of others ELResolvers. Currently does
> something for JSP, so I suggest to introduce:
>
> o.a.m.SUPPORT_JSP = true|false
>
> content-param as mentioned in original mail thread "performance:
> disabling "old" technologies" and if this false, myfaces will not
> install FacesCompositeELResolver, but plain javax.el.CompositeELResolver
> as parent.
>
>
> 2) org.apache.myfaces.el.unified.resolver.ScopedAttributeResolver is the
> last one in chain and always calls setPropertyResolved(true); (JSF 2.1:
> 5.6.2.9 ScopedAttribute ELResolver) and pick up anything stored in the
> request, viewScope,  session, or application scopes by name.
>
> In strictly CDI-based application with no direct modification of servlet
> scopes or view scope this resolver will never resolve a property.
>
> What to do with this one I don't know. Possibly we can use ELResolver
> transforming :) org.apache.commons.collections.Transformer and allow
> replace one resolver with another, for example:
>
> o.a.m.el.unified.resolver.ScopedAttributeResolver ->
> MyNotResovingResolverWhichCallsSetPropertyResolvedTrue
>
> el.ResourceBundleELResolver -> SpringMessageSourceResolver (we don't use
> ResourceBundle)
>
> el.BeanELResolver -> MemoryLeakFreeBeanELResolver
>
> Of course this functionality can be achieved by filtering out the
> unwanted resolver with predicate and adding own in faces-config (and
> sort it to proper position in chain)
>
>
> Regards,
>
>
> Kočičák
>
>
> Martin Koci píše v St 16. 03. 2011 v 11:29 +0100:
> > Hi,
> >
> >
> > after few months I have time to do some performance optimalization for
> > myfaces.
> >
> > This one is related to topic
> > http://www.mail-archive.com/dev@myfaces.apache.org/msg49177.html
> >
> >
> > Problem:
> > how to disable ELResolver smartly? Adding a context-param for each is an
> > overkill.
> >
> > But we have https://cwiki.apache.org/MYFACES/elresolver-ordering.html in
> > codebase already. I propose to add new feature "ELResolver filtering"
> > and new context-param:
> >
> > <context-param>
> >   <param-name>org.apache.myfaces.EL_RESOLVER_PREDICATE</param-name>
> >   <param-value>org.foo.bazz.ELResolverPredicate</param-value>
> > </context-param>
> >
> > Filter is simple instance of org.apache.commons.collections.Predicate.
> >
> >
> > For application where no ManagedBean(Resolver) is used or no Flash, user
> > can simply return false from Predicate.evaluate and ELResolver won't be
> > installed.
> >
> > WDYT?
> >
> > Regards,
> >
> > Kočičák
> >
> >
>
>
>

Mime
View raw message