[
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