myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Scott O'Bryan <>
Subject Re: [jira] Updated: (TRINIDAD-134) StateManagerImpl is not fully compatible with JSR-301
Date Tue, 23 Oct 2007 20:51:59 GMT
That is, of course, unless you want to implement your own ViewRoot 
according to the JSR-301 spec which is certainly a possibility.


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) <> wrote:
>>>      [ 

>>> ]
>>> Scott O'Bryan updated TRINIDAD-134:
>>> -----------------------------------
>>>     Status: Patch Available  (was: Open)
>>>> StateManagerImpl is not fully compatible with JSR-301
>>>> -----------------------------------------------------
>>>>                 Key: TRINIDAD-134
>>>>                 URL: 
>>>>             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.

View raw message