You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Scott O'Bryan (JIRA)" <de...@myfaces.apache.org> on 2007/07/31 15:19:53 UTC
[jira] Created: (TRINIDAD-134) StateManagerImpl is not fully
compatible with JSR-301
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
Reporter: Scott O'Bryan
Fix For: 1.2.2-core
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.
Re: [jira] Updated: (TRINIDAD-134) StateManagerImpl is not fully
compatible with JSR-301
Posted by Scott O'Bryan <da...@gmail.com>.
Ahh. I see how you may be confused. Consider the following
requirements of the JSR-301 portlet bridge:
1. Portlet Bridge jars should be optional in environments where the
Portal is not in place. In other words, a renderkit can be portlet
compatible without having to have the bridge jars included in
non-portlet web applications.
2. Portlet enabled applications may be coded to run both as a portlet
AND as a servlet. This means that, where possible, portlet logic is
only executed when it is run within a portlet. It also means that
anything special that is needed to run something in a portlet would not
preclude running the same code as a servlet. Obviously this pertains to
non-portal specific functionality.
3. Try to enable as many existing Faces applications to run as-is in a
portlet environment as possible.
To accommodate all of these usecases, custom UIViewRoots need to follow
a select set of requirements according to JSR-301. If we're in a portal
environment, however, and the UIViewRoot is the default system view
root, we wrap the class in a decorator which implements all this stuff
for you. This means that when running as a servlet, you get back a
non-namespaced view root. When running as a portlet, however, the
viewroot is a naming container and will handle namespacing.
Does this make sense?
Scott
Scott O'Bryan wrote:
> Andrew,
>
> Faces will not let us do this. The Portlet UIViewRoot implements a
> naming container and has some other logic. What this means is that
> the Portal's viewRoot needs to be the one being served to the
> application at the topmost level. If it's not, we loose the naming
> container. This was an issue discussed in JSR-301 EG and this was the
> best we could come up with. As it stands now, applications which want
> to use the standard UIViewRoot need to retrieve the ViewRoot using the
> ViewHandler OR they need to implement their own naming container.
>
> If you have any ideas about how this could be better supported by 301,
> let me know and I can take it to the Expert Group.
>
> Scott
>
> 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) <de...@myfaces.apache.org> 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.
>>>
>>>
>>>
>>
>>
>
>
Re: [jira] Updated: (TRINIDAD-134) StateManagerImpl is not fully
compatible with JSR-301
Posted by Scott O'Bryan <da...@gmail.com>.
Andrew,
Faces will not let us do this. The Portlet UIViewRoot implements a
naming container and has some other logic. What this means is that the
Portal's viewRoot needs to be the one being served to the application at
the topmost level. If it's not, we loose the naming container. This
was an issue discussed in JSR-301 EG and this was the best we could come
up with. As it stands now, applications which want to use the standard
UIViewRoot need to retrieve the ViewRoot using the ViewHandler OR they
need to implement their own naming container.
If you have any ideas about how this could be better supported by 301,
let me know and I can take it to the Expert Group.
Scott
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) <de...@myfaces.apache.org> 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.
>>
>>
>>
>
>
Re: [jira] Updated: (TRINIDAD-134) StateManagerImpl is not fully
compatible with JSR-301
Posted by Scott O'Bryan <da...@gmail.com>.
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) <de...@myfaces.apache.org> 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.
>>>
>>>
>>>
>
Re: [jira] Updated: (TRINIDAD-134) StateManagerImpl is not fully
compatible with JSR-301
Posted by Michael Freedman <mi...@oracle.com>.
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) <de...@myfaces.apache.org> 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.
>>
>>
>>
Re: [jira] Updated: (TRINIDAD-134) StateManagerImpl is not fully compatible with JSR-301
Posted by Andrew Robinson <an...@gmail.com>.
>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) <de...@myfaces.apache.org> 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.
>
>
[jira] Commented: (TRINIDAD-134) StateManagerImpl is not fully
compatible with JSR-301
Posted by "Scott O'Bryan (JIRA)" <de...@myfaces.apache.org>.
[ https://issues.apache.org/jira/browse/TRINIDAD-134?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12537174 ]
Scott O'Bryan commented on TRINIDAD-134:
----------------------------------------
This is a 1.2 only patch. Can we get this into 1.2.3 before it closes?
> 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.3-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.
[jira] Updated: (TRINIDAD-134) StateManagerImpl is not fully
compatible with JSR-301
Posted by "Matthias Weßendorf (JIRA)" <de...@myfaces.apache.org>.
[ https://issues.apache.org/jira/browse/TRINIDAD-134?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matthias Weßendorf updated TRINIDAD-134:
----------------------------------------
Resolution: Fixed
Status: Resolved (was: Patch Available)
> 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: Matthias Weßendorf
> Fix For: 1.2.3-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.
[jira] Updated: (TRINIDAD-134) StateManagerImpl is not fully
compatible with JSR-301
Posted by "Scott O'Bryan (JIRA)" <de...@myfaces.apache.org>.
[ 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.
[jira] Commented: (TRINIDAD-134) StateManagerImpl is not fully
compatible with JSR-301
Posted by "Scott O'Bryan (JIRA)" <de...@myfaces.apache.org>.
[ https://issues.apache.org/jira/browse/TRINIDAD-134?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12568615#action_12568615 ]
Scott O'Bryan commented on TRINIDAD-134:
----------------------------------------
Yeah, I'm actually throwing around another lower impact solution which uses some of the portlet-bridge api's. I'm hoping to have something checked in my branch today for testing... If that doesn't work, I'll apply this patch.
> 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: Matthias Weßendorf
> Fix For: 1.2.3-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.
Re: [jira] Reopened: (TRINIDAD-134) StateManagerImpl is not fully
compatible with JSR-301
Posted by Scott O'Bryan <da...@gmail.com>.
Hey everyone,
Regarding this issue, I looked at the current StateManagerImpl and it
doesn't appear as if this patch was applied. It looks like Matthias
closed the issue, so I'm wondering if there was a reason this wasn't
applied.
The issue with this patch is that JSF UIViewRoot does not implement a
naming container. In a portal environment, the naming container is
needed in order to accomplish name spacing. Therefore, renderkits
overriding the StateManagerImpl need to use the ViewHandler.createView
method instead of the Application.createComponent in order to retrieve a
UIViewRoot that automatically handles namespacing.
The alternative is to create our own viewRoot which handles namespacing
ourselves and annotates itself to let the bridge know that the content
is namespaced.
This patch essentially handles this issue. If it was just and oversite,
let me know and I can apply it to the latest 1.2 trunk.
Thanks,
Scott
Scott O'Bryan (JIRA) wrote:
> [ https://issues.apache.org/jira/browse/TRINIDAD-134?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
>
> Scott O'Bryan reopened TRINIDAD-134:
> ------------------------------------
>
>
> Doesn't appear that this patch exists in the latest build of Trinidad.
>
>
>> 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: Matthias Weßendorf
>> Fix For: 1.2.3-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.
>>
>
>
[jira] Reopened: (TRINIDAD-134) StateManagerImpl is not fully
compatible with JSR-301
Posted by "Scott O'Bryan (JIRA)" <de...@myfaces.apache.org>.
[ https://issues.apache.org/jira/browse/TRINIDAD-134?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Scott O'Bryan reopened TRINIDAD-134:
------------------------------------
Doesn't appear that this patch exists in the latest build of Trinidad.
> 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: Matthias Weßendorf
> Fix For: 1.2.3-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.
[jira] Resolved: (TRINIDAD-134) StateManagerImpl is not fully
compatible with JSR-301
Posted by "Scott O'Bryan (JIRA)" <de...@myfaces.apache.org>.
[ https://issues.apache.org/jira/browse/TRINIDAD-134?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Scott O'Bryan resolved TRINIDAD-134.
------------------------------------
Resolution: Fixed
Checked in r629242
> 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.7-core, 1.2.3-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.
[jira] Commented: (TRINIDAD-134) StateManagerImpl is not fully
compatible with JSR-301
Posted by "Matthias Weßendorf (JIRA)" <de...@myfaces.apache.org>.
[ https://issues.apache.org/jira/browse/TRINIDAD-134?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12568514#action_12568514 ]
Matthias Weßendorf commented on TRINIDAD-134:
---------------------------------------------
scott,
can you apply it ?
> 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: Matthias Weßendorf
> Fix For: 1.2.3-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.
[jira] Commented: (TRINIDAD-134) StateManagerImpl is not fully
compatible with JSR-301
Posted by "Scott O'Bryan (JIRA)" <de...@myfaces.apache.org>.
[ https://issues.apache.org/jira/browse/TRINIDAD-134?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12570449#action_12570449 ]
Scott O'Bryan commented on TRINIDAD-134:
----------------------------------------
Ok, I've figured out the other workaround and it seems to work. Essentially, if we have a portlet request and if the UIViewRoot is the one provided by the R.I. then we will create a PortletNamingContainerUIViewRoot instead of the one retrieved from the renderkit. This follow the same logic as the portlet-bridge and, like the bridge, will expect anything which may override the UIViewRoot object with their own namespacing.
This introduces a "build time" dependency on the MyFaces Portlet-Bridge but should not effect runtime unless running in a portlet environment.
> 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: Matthias Weßendorf
> Fix For: 1.2.3-core, 1.2.7-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.