You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by Andrew Robinson <ar...@apache.org> on 2010/09/21 18:43:32 UTC

[Trinidad 2] Introduce a component context stack in Trinidad to deal with visit tree calls

Please see JIRA:

https://issues.apache.org/jira/browse/TRINIDAD-1919

I want to propose adding a set of APIs to Trinidad2 that will allow
component authors to suspend changes and resume changes before and
after an invokeOnComponent or visitTree call. Currently, component
context is not reverted during these calls, and bugs may result. The
proposed changes would allow components to tear down and set back up
their context over one of these calls.

I have attached a way to reproduce the issue and my proposed patch to
the bug. I'll wait a few days for feedback before going ahead and
committing it.

Thank you,
Andrew

Re: [Trinidad 2] Introduce a component context stack in Trinidad to deal with visit tree calls

Posted by Andrew Robinson <an...@gmail.com>.
Will change this then. The only draw back is that these APIs would not
be functional for any components in trh:head and trh:html, only
trh:body and children. As a result, I'll add it to trh:head as well so
that, should the user use it, it will be supported there as well, so
they would only be out of luck if they did not use trh:head. It would
not break the code, it would simply not benefit from the change.

I may put a proposal out to the JSF spec to include this type of
functionality in the core JSF APIs, as that is where it belongs,
especially with the compound components.

On Tue, Sep 21, 2010 at 1:44 PM, MAX STARETS <ma...@oracle.com> wrote:
> Hi Andrew,
>
> I think I would rather require <tr:document> or <trh:body> (vs. tr:html)
> We already say in our documentation that one of these tags is required for
> PPR to work.
>
> Max
>
> On 9/21/2010 3:09 PM, Andrew Robinson wrote:
>>
>> Trinidad IMO should not be controlling the UIViewRoot, that is for the
>> container to create. If we overrode it, it could also cause problems
>> with portals. I think it best that we handle this in tr:document and
>> trh:html as they should be the root elements of a Trinidad page. I am
>> concerned that if we override the view root it will cause other issues
>> or implementation problems.
>>
>> On Tue, Sep 21, 2010 at 12:44 PM, Pavitra Subramaniam
>> <pa...@oracle.com> wrote:
>>
>>>
>>> Hello Andrew,
>>>
>>> One comment regarding your changes in:
>>>
>>> +public abstract class UIXDocumentTemplate
>>> +  extends UIXComponentBase
>>>
>>> Overall your fixes look fine to me, but I was wondering if rather than
>>> adding the override methods to the new class UIXDocument class, if
>>> instead
>>> this should be moved out of the UIXDocument and into a UIViewRoot
>>> subclass.
>>> For a different issue (of re-entrant calls to visitTree not properly
>>> suspending and restoring context) that I encountered, I had a similar fix
>>> in
>>> mind but after discussing with Blake he proposed that adding it to
>>> UIViewRoot subclass may be a better option.
>>>
>>> Thanks
>>> Pavitra
>>>
>>> On 9/21/2010 9:43 AM, Andrew Robinson wrote:
>>>
>>>>
>>>> Please see JIRA:
>>>>
>>>> https://issues.apache.org/jira/browse/TRINIDAD-1919
>>>>
>>>> I want to propose adding a set of APIs to Trinidad2 that will allow
>>>> component authors to suspend changes and resume changes before and
>>>> after an invokeOnComponent or visitTree call. Currently, component
>>>> context is not reverted during these calls, and bugs may result. The
>>>> proposed changes would allow components to tear down and set back up
>>>> their context over one of these calls.
>>>>
>>>> I have attached a way to reproduce the issue and my proposed patch to
>>>> the bug. I'll wait a few days for feedback before going ahead and
>>>> committing it.
>>>>
>>>> Thank you,
>>>> Andrew
>>>>
>>>>
>

Re: [Trinidad 2] Introduce a component context stack in Trinidad to deal with visit tree calls

Posted by Matthias Wessendorf <ma...@apache.org>.
I agree with not controlling the UIViewRoot

-Matthias

On Tue, Sep 21, 2010 at 12:44 PM, MAX STARETS <ma...@oracle.com> wrote:
> Hi Andrew,
>
> I think I would rather require <tr:document> or <trh:body> (vs. tr:html)
> We already say in our documentation that one of these tags is required for
> PPR to work.
>
> Max
>
> On 9/21/2010 3:09 PM, Andrew Robinson wrote:
>>
>> Trinidad IMO should not be controlling the UIViewRoot, that is for the
>> container to create. If we overrode it, it could also cause problems
>> with portals. I think it best that we handle this in tr:document and
>> trh:html as they should be the root elements of a Trinidad page. I am
>> concerned that if we override the view root it will cause other issues
>> or implementation problems.
>>
>> On Tue, Sep 21, 2010 at 12:44 PM, Pavitra Subramaniam
>> <pa...@oracle.com> wrote:
>>
>>>
>>> Hello Andrew,
>>>
>>> One comment regarding your changes in:
>>>
>>> +public abstract class UIXDocumentTemplate
>>> +  extends UIXComponentBase
>>>
>>> Overall your fixes look fine to me, but I was wondering if rather than
>>> adding the override methods to the new class UIXDocument class, if
>>> instead
>>> this should be moved out of the UIXDocument and into a UIViewRoot
>>> subclass.
>>> For a different issue (of re-entrant calls to visitTree not properly
>>> suspending and restoring context) that I encountered, I had a similar fix
>>> in
>>> mind but after discussing with Blake he proposed that adding it to
>>> UIViewRoot subclass may be a better option.
>>>
>>> Thanks
>>> Pavitra
>>>
>>> On 9/21/2010 9:43 AM, Andrew Robinson wrote:
>>>
>>>>
>>>> Please see JIRA:
>>>>
>>>> https://issues.apache.org/jira/browse/TRINIDAD-1919
>>>>
>>>> I want to propose adding a set of APIs to Trinidad2 that will allow
>>>> component authors to suspend changes and resume changes before and
>>>> after an invokeOnComponent or visitTree call. Currently, component
>>>> context is not reverted during these calls, and bugs may result. The
>>>> proposed changes would allow components to tear down and set back up
>>>> their context over one of these calls.
>>>>
>>>> I have attached a way to reproduce the issue and my proposed patch to
>>>> the bug. I'll wait a few days for feedback before going ahead and
>>>> committing it.
>>>>
>>>> Thank you,
>>>> Andrew
>>>>
>>>>
>



-- 
Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http://twitter.com/mwessendorf

Re: [Trinidad 2] Introduce a component context stack in Trinidad to deal with visit tree calls

Posted by MAX STARETS <ma...@oracle.com>.
Hi Andrew,

I think I would rather require <tr:document> or <trh:body> (vs. tr:html)
We already say in our documentation that one of these tags is required 
for PPR to work.

Max

On 9/21/2010 3:09 PM, Andrew Robinson wrote:
> Trinidad IMO should not be controlling the UIViewRoot, that is for the
> container to create. If we overrode it, it could also cause problems
> with portals. I think it best that we handle this in tr:document and
> trh:html as they should be the root elements of a Trinidad page. I am
> concerned that if we override the view root it will cause other issues
> or implementation problems.
>
> On Tue, Sep 21, 2010 at 12:44 PM, Pavitra Subramaniam
> <pa...@oracle.com> wrote:
>   
>> Hello Andrew,
>>
>> One comment regarding your changes in:
>>
>> +public abstract class UIXDocumentTemplate
>> +  extends UIXComponentBase
>>
>> Overall your fixes look fine to me, but I was wondering if rather than
>> adding the override methods to the new class UIXDocument class, if instead
>> this should be moved out of the UIXDocument and into a UIViewRoot subclass.
>> For a different issue (of re-entrant calls to visitTree not properly
>> suspending and restoring context) that I encountered, I had a similar fix in
>> mind but after discussing with Blake he proposed that adding it to
>> UIViewRoot subclass may be a better option.
>>
>> Thanks
>> Pavitra
>>
>> On 9/21/2010 9:43 AM, Andrew Robinson wrote:
>>     
>>> Please see JIRA:
>>>
>>> https://issues.apache.org/jira/browse/TRINIDAD-1919
>>>
>>> I want to propose adding a set of APIs to Trinidad2 that will allow
>>> component authors to suspend changes and resume changes before and
>>> after an invokeOnComponent or visitTree call. Currently, component
>>> context is not reverted during these calls, and bugs may result. The
>>> proposed changes would allow components to tear down and set back up
>>> their context over one of these calls.
>>>
>>> I have attached a way to reproduce the issue and my proposed patch to
>>> the bug. I'll wait a few days for feedback before going ahead and
>>> committing it.
>>>
>>> Thank you,
>>> Andrew
>>>
>>>       

Re: [Trinidad 2] Introduce a component context stack in Trinidad to deal with visit tree calls

Posted by Andrew Robinson <an...@gmail.com>.
Trinidad IMO should not be controlling the UIViewRoot, that is for the
container to create. If we overrode it, it could also cause problems
with portals. I think it best that we handle this in tr:document and
trh:html as they should be the root elements of a Trinidad page. I am
concerned that if we override the view root it will cause other issues
or implementation problems.

On Tue, Sep 21, 2010 at 12:44 PM, Pavitra Subramaniam
<pa...@oracle.com> wrote:
> Hello Andrew,
>
> One comment regarding your changes in:
>
> +public abstract class UIXDocumentTemplate
> +  extends UIXComponentBase
>
> Overall your fixes look fine to me, but I was wondering if rather than
> adding the override methods to the new class UIXDocument class, if instead
> this should be moved out of the UIXDocument and into a UIViewRoot subclass.
> For a different issue (of re-entrant calls to visitTree not properly
> suspending and restoring context) that I encountered, I had a similar fix in
> mind but after discussing with Blake he proposed that adding it to
> UIViewRoot subclass may be a better option.
>
> Thanks
> Pavitra
>
> On 9/21/2010 9:43 AM, Andrew Robinson wrote:
>>
>> Please see JIRA:
>>
>> https://issues.apache.org/jira/browse/TRINIDAD-1919
>>
>> I want to propose adding a set of APIs to Trinidad2 that will allow
>> component authors to suspend changes and resume changes before and
>> after an invokeOnComponent or visitTree call. Currently, component
>> context is not reverted during these calls, and bugs may result. The
>> proposed changes would allow components to tear down and set back up
>> their context over one of these calls.
>>
>> I have attached a way to reproduce the issue and my proposed patch to
>> the bug. I'll wait a few days for feedback before going ahead and
>> committing it.
>>
>> Thank you,
>> Andrew
>>
>

Re: [Trinidad 2] Introduce a component context stack in Trinidad to deal with visit tree calls

Posted by Pavitra Subramaniam <pa...@oracle.com>.
Hello Andrew,

One comment regarding your changes in:

+public abstract class UIXDocumentTemplate
+  extends UIXComponentBase

Overall your fixes look fine to me, but I was wondering if rather than 
adding the override methods to the new class UIXDocument class, if 
instead this should be moved out of the UIXDocument and into a 
UIViewRoot subclass.
For a different issue (of re-entrant calls to visitTree not properly 
suspending and restoring context) that I encountered, I had a similar 
fix in mind but after discussing with Blake he proposed that adding it 
to UIViewRoot subclass may be a better option.

Thanks
Pavitra

On 9/21/2010 9:43 AM, Andrew Robinson wrote:
> Please see JIRA:
>
> https://issues.apache.org/jira/browse/TRINIDAD-1919
>
> I want to propose adding a set of APIs to Trinidad2 that will allow
> component authors to suspend changes and resume changes before and
> after an invokeOnComponent or visitTree call. Currently, component
> context is not reverted during these calls, and bugs may result. The
> proposed changes would allow components to tear down and set back up
> their context over one of these calls.
>
> I have attached a way to reproduce the issue and my proposed patch to
> the bug. I'll wait a few days for feedback before going ahead and
> committing it.
>
> Thank you,
> Andrew
>