That is, of course, unless you want to implement your own ViewRoot
according to the JSR-301 spec which is certainly a possibility.
Scott
Michael Freedman wrote:
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.