[prev in list] [next in list] [prev in thread] [next in thread]
List: myfaces-dev
Subject: [jira] [Created] (MYFACES-3556) [perf] call markInitialState() inside vdl.retargetAttachedObjects()
From: "Leonardo Uribe (JIRA)" <dev () myfaces ! apache ! org>
Date: 2012-05-31 10:07:23
Message-ID: 427158291.21224.1338458843557.JavaMail.jiratomcat () issues-vm
[Download RAW message or body]
Leonardo Uribe created MYFACES-3556:
---------------------------------------
Summary: [perf] call markInitialState() inside \
vdl.retargetAttachedObjects() and vdl.retargetMethodExpressions() Key: MYFACES-3556
URL: https://issues.apache.org/jira/browse/MYFACES-3556
Project: MyFaces Core
Issue Type: Improvement
Components: JSR-314
Reporter: Leonardo Uribe
Assignee: Leonardo Uribe
To ensure compatibility with the RI, In JSF 2.1, markInitialState() call is done \
after the component tree is built with a visitTree() call. That works fine, but in \
JSF 2.0 or when you have a dynamic content inside a page, it is necessary to activate \
markInitialState() call through facelet algorithm as described in MYFACES-3451.
The concept works very good, but I notice a side effect in \
vdl.retargetAttachedObjects() and vdl.retargetMethodExpressions(). Since \
markInitialState() call goes from leaf to the root, and these methods traverse the \
tree to apply changes in child components, all changes done by these two methods are \
stored into the "delta" part of the state.
Since vdl.retargetAttachedObjects() and vdl.retargetMethodExpressions() are called in \
build view time and only when the composite component is created, it is safe to check \
if pss is used in the view and markInitialState() algorithm has been activated, to \
call markInitialState() over the child components (the call for the top level \
component is done in the outside). Maybe it will be some extra calls to \
markInitialState() for the same component, but it is worth to do it, because this \
call is very fast, and the effect is get a zero (or almost zero) state size overhead \
for composite components.
Additionally, it is better in this case to use these classes:
org.apache.myfaces.view.facelets.tag.jsf.PartialMethodExpressionActionListener;
org.apache.myfaces.view.facelets.tag.jsf.PartialMethodExpressionValidator;
org.apache.myfaces.view.facelets.tag.jsf.PartialMethodExpressionValueChangeListener;
to ensure no state is stored in these cases. Note this issue is the solution to the \
problem described in MYFACES-3551
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: \
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more \
information on JIRA, see: http://www.atlassian.com/software/jira
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic