On Feb 5, 2008 5:30 PM, <[EMAIL PROTECTED]> wrote:

> Hi,
> I'm currently evaluating Tuscany to be used in the new EILF eclipse
> project. I have the following problem:
>
> I have 3 components: Alpha, Beta and Gamma, where Gamma's Interface is
> marked with @Conversational and @Scope("CONVERSATION").
> I want Alpha to call a method on Beta that creates a conversation with
> Gamma and returns a reference to Gamma. Then I want to reuse that
> conversation to Gamma from Alpha.
>
> Therefore I let Alpha call method Beta.getRef(). Inside this method, a
> reference to Gamma is created via componentContext.getServiceReference()
> and the conversation is initialized by calling method Gamma.init().
> Beta.getRef() returns a CallableReference<Gamma>.
> So far it works, but as soon as I call a method on that reference from
> within Alpha, a new Conversation is initialized, the Conversation
> created between Beta and Gamma is not reused.
>
> So, instead of returning a CallableReference<Gamma> I called
> Alpha.setRef() from within Beta.getRef() to set the reference to Gamma
> in Alpha. Thereafter all calls from within Alpha on Gamma work and reuse
> the Conversation created within Beta.getRef().
>
> Why is it not possible to reuse an established Conversation using
> Service References as return values but as parameters only?
> If it's possible, what did I do wrong ?
>
> Thanks,
> Daniel
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
> Hi Daniel, and welcome to Tuscany!

It sounds like you've found a bug. The way I read the SCA Java and
Annotations Spec your scenario should work. I'm specifically looking at line
483 which talks about conversations continuing when a service reference is
passed in as a parameter from another service. I would read this to include
return values though asI hadn't imagined the feature was restricted to just
input parameters.

I imagine the problem is that the conversion information is not being
serialized or deserialized correctly when the service reference is returned
compared to when it's passed as a parameter. Sounds a little odd.

If you could raise a JIRA (http://issues.apache.org/jira/browse/TUSCANY)
I'll take a look at it. Also if you have a test case to attach that would be
great as there would seem to be a gap in our testing.

Thanks

Simon

Reply via email to