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.




Reply via email to