Bernhard,

Just to be clear, what you're saying is that you can't use the same view in
more than one conversation at a time?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Kito D. Mann - Author, JavaServer Faces in Action
http://www.virtua.com - JSF/Java EE consulting, training, and mentoring
http://www.JSFCentral.com - JavaServer Faces FAQ, news, and info


> -----Original Message-----
> From: Bernhard Huemer [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, April 01, 2008 9:00 AM
> To: MyFaces Discussion
> Subject: Re: [Orchestra] Explicit conversation starting and nested
> conversations
> 
> Hello,
> 
> although Orchestra is not about pages, it's most likely that the user
> moves through two different page flows if he has started two different
> conversations (I'm not talking about two different instances of the
> same
> conversation but rather about two different definitions for a
> conversation!). However, there are certain cases where one page flow
> overlaps another one but Orchestra doesn't support reusing these pages
> as they would use a different conversation.
> 
> The problem is that while it's true that you can use different
> instances
> of the same class in different conversations, it's not that easy as
> each
> instance has to have a different name (as you want it to be in a
> different conversation). Changing the name, however, "forces" you to
> copy the pages using this bean in order to adjust the ValueExpressions.
> 
> Maybe I've got something wrong though ..
> 
> Regards,
> Bernhard
> 
> On 04/01/2008 +0200,
> "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote:
> > a clem schrieb:
> >> Thank's a lot for your response. What I would like to do is to be
> able
> >> to share a page (ant its backing bean) between 2 conversations
> types,
> >> like an activity définition can be shared between 2 process
> definition
> >> in BPM. For exemple, the select customer page can be shared between
> >> the 'send mail' and 'send invoice' use cases. I think I'm going to
> >> hack the source to see how I can achieve this.
> >>
> >> Regards,
> >>
> >> On Mon, Mar 31, 2008 at 11:18 PM, simon <[EMAIL PROTECTED]>
> wrote:
> >>
> >>> Hi,
> >>>
> >>>
> >>>  On Mon, 2008-03-31 at 22:36 +0200, a clem wrote:
> >>>  > Hi,
> >>>  >
> >>>  > I'm currently playing with this great framework Orchestra,
> trying to
> >>>  > build some small examples and a few questions came to my mind:
> >>>  > Is it possible to start a new conversation explicitly
> >>>  > (programitically). I've looked to the API but there doesn't seem
> to be
> >>>  > something like a begin or start method in it?
> >>>
> >>>  Well, there are two answers to this :-)
> >>>
> >>>  (1)
> >>>
> >>>  If you configure a bean A in Spring to inject some other bean B
> that is
> >>>  configured in a conversation scope, then what is actually injected
> is a
> >>>  proxy. The bean B isn't actually created, and the conversation is
> not
> >>>  created to hold it (though the conversation might already exist if
> there
> >>>  are multiple beans in the same conversation).
> >>>
> >>>  Then if A invokes any method on B, that triggers the creation of
> an
> >>>  actual instance of B plus the conversation to hold it (if the
> >>>  conversation does not yet exist).
> >>>
> >>>  So I guess you could call that "programmatic" creation of a
> >>>  conversation; whether B is in the conversation or not is
> controlled by
> >>>  what A does.
> >>>
> >>>  (2)
> >>>  But if you mean actually creating a Conversation object then
> placing
> >>>  objects in it, then no I don't think that is currently possible
> (or at
> >>>  least not easy).
> >>>
> >>>  In theory there is no reason why Orchestra couldn't support that,
> I just
> >>>  think we didn't consider it useful. If there is a good use case
> then I'm
> >>>  sure that could be added.
> >>>
> >>>  The principle is simple: create a Conversation object then get a
> >>>  reference to the current ConversationContext and add it. But the
> problem
> >>>  is that there are a bunch of settings that a conversation can have
> which
> >>>  are defined by a ConversationFactory (which is a mandatory
> parameter to
> >>>  the Conversation constructor at the moment). This factory is
> really
> >>>  expected to be a Spring scope manager object or similar; I don't
> know if
> >>>  it is possible to look this up nicely, or whether it is actually
> needed
> >>>  for manually-created conversations. But the settings would need to
> be
> >>>  defined somewhere.
> >>>
> >>>  Method ConversationManager.getConversation(name) will return
> >>>  conversations by name, but returns null if the conversation does
> not
> >>>  exist; I don't think there is a way of forcing it to exist.
> >>>
> >>>  Note that a bean which is *already* in a conversation can add
> extra
> >>>  objects to its own conversation via Conversation.setAttribute.
> >>>
> >>>
> >>>  > Can the same backing bean belong to more that one conversation
> type?
> >>>  > In other world can I share a view between multiples
> conversations? It
> >>>  > seem's that backing beans can only have one conversation name.
> >>>
> >>>  No, a bean is expected to be in only one conversation. I think
> things
> >>>  would get quite confusing otherwise. For a start, if persistence
> is
> >>>  being used with conversations, then a bean could have two
> persistence
> >>>  contexts associated with it simultaneously which would be tricky
> :-)
> >>>
> >>>  A bean in one conversation can quite happily call a bean in
> another
> >>>  conversation of course (orchestra conversations are not like
> WebFlow or
> >>>  Seam conversations).
> >>>
> >>>  What would the use case be for this?
> >>>
> >>>
> >>>  >  And
> >>>  > finally, is it possible to have nested conversation contexts?
> Thank's
> >>>  > for all your coming responses! :)
> >>>
> >>>  No, but that feature is definitely on the to-do list.
> >>>
> >>>  Orchestra does support multiple concurrent named conversations, as
> I'm
> >>>  sure you're aware. That solves many of the use-cases for nested
> >>>  conversations but not all of them.
> >>>
> >>>  Good questions - I should put these on the Orchestra wiki FAQ
> page.
> >>>  Unless perhaps you would be willing to do that?
> >>>
> >>>  Regards,
> >>>  Simon
> >>>
> > You can have two instances of the same bean class in two different
> > conversations without problems.
> >
> > But to have the *same* instance in two different conversations still
> > doesn't make sense to me. Your example of "pages" doesn't clarify
> this
> > for me; orchestra is not about "pages", but about beans (some of
> which
> > may be backing beans).
> >
> > Regards, Simon
> >
> >

Reply via email to