Raymond Feng wrote:
Hi,

There are a set of states associated with CallableReference/ServiceReference such as the callbackID, conversationID and callbackObject. We need to flow them in the Message so that the target service can have the correct correlations. At this moment, we have some of fields on the Message and I thought maybe it's better to follow the CallableReference as a whole. Another reason is that the RequestContext has a few methods to retrieve the ServiceReference, CallbackReference and Callback object.

CallbackID seems to be set to CorrelationID, already another field of the message.

Here are the only usages I can find for getCallableReference():

in Axis2BindingInvoker
fromEPR.addReferenceParameter(CALLBACK_ID_REFPARM_QN,
(String)msg.getCallableReference().getCallbackID());

in CallbackInterfaceInterceptor, doesn't look like a valid usage

and setCallableReference():

in JDKInvocationHandler
       msg.setCallableReference(callableReference);
just after having done
       msg.setCorrelationID(callbackID);


Are there any other valid usages? I'm probably missing something as I've not been able to understand why callbacks start to fail when I remove this and just flow the callbackID in the correlationID field... Could somebody else give it a try as well?


I agree with your comments that it's not very nice to have CallableReference directly on the Message as accessors. Moving forward, we probably need to define headers for the Message interface so that we can flow extra context data without poluting the Message interface. There are already some use cases such as:

* Pass some information from one interceptor to another one, for example, the DataBindingInterceptor can tell the PassByValueInvoker to skip the copy. * Carry binding-specific context in the Message, for example, SOAP headers for binding.ws or JMS properties for binding.jms.

We'll probably need a "headers" property on the message, but I think we'll have to be careful into a bag of things that are convenient to pass around this way but not absolutely necessary.



Thanks,
Raymond

----- Original Message ----- From: "Jean-Sebastien Delfino" <[EMAIL PROTECTED]>
To: <tuscany-dev@ws.apache.org>
Sent: Monday, September 03, 2007 7:03 PM
Subject: What is Message.set/getCallableReference used for?


Could somebody help me understand what Message.set/getCallableReference is used for?

If I comment it then some callback test cases start to fail, but I don't really understand why we need to store a CallableReference in the message, and its relationship with the from and to EndpointReferences, which can already host callback endpoints.

Also CallableReference is specific to Java (if I understand correctly it takes a Java business interface) so if it's really used and needed I'm not sure about how it's used for callbacks typed by WSDL or other interface definition languages.

Thanks

--
Jean-Sebastien


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Jean-Sebastien


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to