[ 
https://issues.apache.org/jira/browse/MYFACES-3167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Leonardo Uribe resolved MYFACES-3167.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 2.1.1
                   2.0.7

> UIComponent EventListenerWrapper optimizations
> ----------------------------------------------
>
>                 Key: MYFACES-3167
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3167
>             Project: MyFaces Core
>          Issue Type: Improvement
>          Components: JSR-314
>    Affects Versions: 2.0.6, 2.1.0
>            Reporter: Leonardo Uribe
>            Assignee: Leonardo Uribe
>             Fix For: 2.0.7, 2.1.1
>
>
> Our current implementation for EventListenerWrapper class inside UIComponent 
> works well but it can be better.
> This wrapper is used by UIComponent.subscribeToEvent and unsubscribeFromEvent 
> to handle the case when a listener is the same component, so when the state 
> is restored, the component could be found using 
> UIComponent.getCurrentComponent().
> The spec says that @ListenerFor annotations can be used for both components 
> and renderers. Why EventListenerWrapper don't do the same trick for 
> renderers? Since the rendererType does not change over component lifetime 
> (just on init time), we can expect 
> UIComponent.getCurrentComponent().getRenderer(facesContext) return the 
> expected one without need to create it, right?
> Other reason to assume the previous trick for renderers, is renderer 
> listeners are not registered for components that does not use the same 
> renderer. This can be checked easily looking on 
> ApplicationImpl.createComponent code.
> Additionally, EventListenerWrapper could take into account other cases where 
> the listener implements StateHolde or PartialStateHolder, or even better it 
> can assume on PSS it is not required to save info and restore the listener, 
> because the listener is stateless.
> The effect of this optimization is h:outputScript and h:outputStylesheet will 
> return null when saveState() is called and PSS is on, minimizing the state 
> stored by state saving algorithm.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to