Hi John,

You are mixing two concepts here: conversation propagation and auto-
conversations. These two operate separately. Auto-conversations are 
started _and_ ended automatically. You can use this, for example, on a 
page where a conversational component is added and later removed 
again. The conversation will stay active for as long as the component is on 
the page. If you wish to take control of an auto-conversation, you need to 
inject AutoConversation and call setAutomatic(false).

Best regards,
Emond

On Thursday 09 January 2014 15:34:30 John Sarman wrote:
> Emond,
> I finally had some time to go over the cdi rewrite and I on the first test
> I was reviewing I do not think the Conversation propagation is working
> correctly.  In the test Class ConversationPropagatorTest, the first
> test testAutoConversationNonBookmarkable uses the Wicket
> page TestConversationalPage which extends ConversationalComponent 
to notify
> the framework the conversations should be managed automatically.  The
> initial for loop iterates through the increment clicks to verify
> the TestConversationBean counter is incremented properly.  This works 
fine.
>  Then the test clicks the next link, which goes to a non bookmarkable 
page
> that also injects the TestConversationBean.  At this point
> the TestConversationBean current count should be equal to the last
> increment from the first page, but it is 0. The increment link is clicked
> on that page and the count is incremented to 1, and every call after 
that
> the TestConversationBean is reinjected but not part of the conversation 
so
> the count is 0 then 1 and the test asserts (1) not the continuous
> incremented count.  I realize that the test passes, but I think the test on
> the second for loop should read
>                         tester.clickLink("increment");
> tester.assertCount(i);  // The value of i continues to increment from the
> first for loop.
> I have not went through the code yet, but it seems that as soon as next
> page that does not implement the ConversationalComponent interface,
> although it is a nonbookmarkable page, the conversation is not 
propagated.
> My understanding of how Igor built 1.0 was that the
>  ConversationalComponent could be used to automate the code to 
begin a
> Conversation if one was not already active and the propagation was a 
method
> to continue the conversation based on the way a page was created. 
That is
> if a conversation was active and the next page in the pipeline was a
> nonbookmarkable page then the conversation was propagated 
regardless if it
> implemented ConversationalComponent (assuming CDIConfiguration 
propagation
> was set to NONBOOKMARKABLE) .  I will continue to debug through the 
code to
> determine why the conversation was not propagated, but please let me 
know
> if I am not seeing eye to eye with how the code handles propagation.
> 
> Thanks,
> John
> 
> 
> 
> 
> 
> On Thu, Dec 12, 2013 at 2:23 AM, Emond Papegaaij 
<[email protected]
> > wrote:
> > 
> > This issue, we discussed earlier, is fixed. Propagation of the
> > conversation
> > works fine now.
> > 
> > On Wednesday 11 December 2013 12:40:44 John Sarman wrote:
> > > Emond,
> > > Have you had a chance to work on the propagation code?
> > > 
> > > Thanks,
> > > John
> > > 
> > > 
> > > On Mon, Nov 25, 2013 at 11:14 AM, Emond Papegaaij
> > 
> > <[email protected]
> > 
> > > > wrote:
> > > > 
> > > > I've found the problem. It has nothing to do with associating a
> > > > conversation. The problem is that first all links are rendered, and
> > 
> > only
> > 
> > > > then the conversation is marked long-running. The auto-begin 
and
> > 
> > auto-end
> > 
> > > > methods need to be moved to a IComponentInstantiationListener, 
so
> > 
> > the
> > 
> > > > conversation can be started before the links are
> > > > rendered. onRequestHandlerExecuted simply is too late. I'll see if I
> > 
> > can
> > 
> > > > fix that tomorrow.
> > > > 
> > > > Best regards,
> > > > Emond
> > > > 
> > > > 
> > > > On Fri, Nov 22, 2013 at 11:31 PM, John Sarman
> > 
> > <[email protected]>
> > 
> > > > wrote:
> > > > > Emond,
> > > > > If you want to quick test execute the code in a debugger and 
look
> > 
> > at the
> > 
> > > > > Conversation object in the ConversationPropagator.  You will 
find
> > 
> > that
> > 
> > > > > is

Reply via email to