As Scott has pointed out, JSR-301 had to make some difficult choices
here because of the lack of flexibility in JSF 1.2. We wanted where
ever possible to have the JSF artifact running in a portlet environment
to run in a NamingContainer that took the portlet namespace id into
account (ensuring proper namespacing in the consumer). Unfortunately we
couldn't come up with a technical solution for wrapping the UIViewRoot.
Because a major philosophy of JSR-301 is to cohabitate with other Faces
extensions we felt it was inappropriate to replace any UIViewRoot
extension with the special bridge one. Instead we compromised and said
its only safe to replace the UIViewRoot if its the RIs/standard one
otherwise we ask the other UIViewRoot implementors to add this
NamingContainer feature to their implementation. The drawback to this
is viewHandler.createView needs to get called.
-Mike-
Andrew Robinson wrote:
From my understanding:
Application.createComponent() is the correct way to create the
UIViewRoot. The view handler should use this method internally to get
an instance to the view root component. Instead, the bridge should be
registering the component type for the special view root in the
application, so that calls to createComponent return the one needed
for the bridge.
-Andrew
On 10/18/07, Scott O'Bryan (JIRA) <[email protected]> wrote:
[
https://issues.apache.org/jira/browse/TRINIDAD-134?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Scott O'Bryan updated TRINIDAD-134:
-----------------------------------
Status: Patch Available (was: Open)
StateManagerImpl is not fully compatible with JSR-301
-----------------------------------------------------
Key: TRINIDAD-134
URL: https://issues.apache.org/jira/browse/TRINIDAD-134
Project: MyFaces Trinidad
Issue Type: Bug
Components: Portlet
Affects Versions: 1.2.1-core
Environment: JSR-168, JSR-301
Reporter: Scott O'Bryan
Assignee: Scott O'Bryan
Fix For: 1.2.2-core
Attachments: trinidad-134.patch
StateManagerImpl has a performance enhancement that is not compatible with
JSR-301. Inside of the popRoot method inside of
org.apache.myfaces.trinidadinternal.application.StateManagerImpl, the view root
is retrieved using Application.createComponent();. The JSR-301 bridge has a
special UIViewRoot that, due to limitations in the JSF specification, can only
reasonably be retrieved through ViewHandler.createViewRoot(). We either need
to try to try to retrieve the UIViewRoot using this mechanism OR we need to
disable this performance optimization in a portal environment.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.