[
https://issues.apache.org/jira/browse/MYFACES-3136?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Leonardo Uribe reopened MYFACES-3136:
-------------------------------------
I checked this one again and even if the improvement works for all known jsf
libraries, , according to JSF spec section 8 Rendering Model,this part is
essential to implement "delegated implementation" pattern, so we can't do this
optimization here. Instead, JSF developers could prevent this evaluation
overriding this method directly on the created components, like trinidad does.
In other words, it is valid to have a ValueExpression attached to
"rendererType". Unfortunately I have to revert this change. Instead, we should
minimize lookups to attribute map using other means, like directly on the
renderers, as suggested on MYFACES-3237
> [perf] review UIComponentBase.getRendererType
> ----------------------------------------------
>
> Key: MYFACES-3136
> URL: https://issues.apache.org/jira/browse/MYFACES-3136
> Project: MyFaces Core
> Issue Type: Improvement
> Components: General
> Affects Versions: 2.1.0-SNAPSHOT
> Environment: myfaces core trunk
> Reporter: Martin Kočí
> Assignee: Martin Kočí
> Priority: Minor
> Fix For: 2.1.0
>
> Attachments: MYFACES-3136.patch
>
>
> 1) method UIComponentBase.getRendererType is the most frequent, because all
> encodeBegin, getRendersChildren and encodeAll l try to locate renderer
> 2) getRendererType uses StateHelper.eval - but can be renderType
> ValueExpression? If not, change StateHelper.eval to StateHelper.get
> 3) should rendererType even be part of state saving? Each component I've ever
> seen has setRendererType("com.foo.renderer") in constructor and/or VDL calls
> setRendererType() after calling Application.createComponent(): If
> rendererType is not part of state saving, replace StateHelper with attribute
> 4) Cache getRenderer(FacesContext context) result anyway (I'll create
> separate issue for this)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira