You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by Dora Rajappan <do...@yahoo.com> on 2015/05/05 12:09:30 UTC

Re: [jira] [Commented] (MYFACES-3984) Unable to add an ELResolver programmatically when application includes flows defined with xml


How are you adding the ELResolver programmatically before first request? Using servlet init? You cant access the facesContext in your Servlet via ServletContext because myface destroys the first facesContext  used by StartupServletContextListener  (_facesInitializer.destroyStartupFacesContext(facesContext);) 
  


     On Thursday, April 30, 2015 5:40 PM, Dora Rajappan <do...@yahoo.com> wrote:
   

 
You can add ELResolver via CDI . Just name and scope the bean and use the name directly in your xhtml. Its not registered with Application interface. So the sorting caching of the configured EL Resolver is unaffected. When you try to add ELResolver programmatically before first request happens its not behaving correctly. And you have suggested two solutions.
 


     On Wednesday, April 29, 2015 10:11 PM, Mike Kienenberger (JIRA) <de...@myfaces.apache.org> wrote:
   

 
    [ https://issues.apache.org/jira/browse/MYFACES-3984?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14519694#comment-14519694 ] 

Mike Kienenberger commented on MYFACES-3984:
--------------------------------------------

Can you discuss this issue and the two possible solutions on the dev@myfaces.apache.org mailing list?
Perhaps you could also provide a patch demonstrating which approach you believe works best.


> Unable to add an ELResolver programmatically when application includes flows defined with xml
> ---------------------------------------------------------------------------------------------
>
>                Key: MYFACES-3984
>                URL: https://issues.apache.org/jira/browse/MYFACES-3984
>            Project: MyFaces Core
>          Issue Type: Bug
>    Affects Versions: 2.2.8
>            Reporter: Sami Korhonen
>
> Current implementation of Application interfaces caches CompositeELResolver internally. According to Application interface definition ELResolvers may be added until application receives first request. This means that, if ELResolver is retrieved before first request, Application implementation does not behave correctly.
> There are several ways to resolve this issue. One solution is to create a lazy initializing ELResolver when Application (Impl) is instantiated. This lazy ELResolver should be initialized on first actual call.
> Second possible solution also requires creating ELResolver instance when Application is instatiated. In this solution you add new ELResolvers after reading configuration files. In order to support MyFaces specific sorting feature, you are required to cache and sort entries in another structure before registering them to Application's ELResolver.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)