Sure, np.
The basic idea is to use (1) the wiring and connection infrastructure that
is there (or shortly to be there once the patch is applied) for composite
references and services, and (2) the non-blocking execute with callback
facilities of Axis2's operation client.
Axis2Reference would need to be modified to use a variation of
Axis2TargetInvoker that calls operationClient.execute(false) and that sets
up a callback target invoker as the callback registered with
operationClient. This could work as a subclass of Axis2TargetInvoker,
probably in a similar way as AsyncJavaTargetInvoker is a subclass of
PojoTargetInvoker (minus the new thread creation bit, that becomes
unnecessary).
Axis2Service is a bit trickier, mainly because the Axis2 api is not quite
there for our needs. At first glance, it would seem like we could create an
Axis2ServiceInOutAsyncMessageReceiver that extends Axis2's
AbstractInOutAsyncMessageReceiver. But this latter class assumes that the
business logic returns the result synchronously, i.e., when its call to
invokeBusinessLogic is done it assumes that the result has been left in
newmsgCtxt, and then it turns around and invokes the callback with the
result or fault. We need to be able to separate this function so that the
async invocation of the target component does happen in an independent
Axis2ServiceInOutAsyncMessageReceiver, but the callback invocation happens
in an Axis2ServiceCallbackTargetInvoker that is created by Axis2Service and
that is set on the Axis2Service's outbound wire by the connector. A key item
is the in-message context provided to
Axis2ServiceInOutAsyncMessageReceiver's receive and that is needed in
Axis2ServiceCallbackTargetInvoker to create the out-message context. We may
end up using a workContext techinque similar to that used by
AsyncJavaTargetInvoker in the local case. It may be possible to factor out
the databinding function that is common with
Axis2ServiceInOutSyncMessageReceiver.
Needless to say, this is a first pass at putting this together, so comments
are welcome.
----- Original Message -----
From: "ant elder" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Thursday, August 31, 2006 9:58 AM
Subject: Re: Inner composite patch, was Re: Optiional Autowire
On 8/31/06, Ignacio Silva-Lepe <[EMAIL PROTECTED]> wrote:
<snip/>
I am getting a good picture of what needs to be done for async callbacks
over ws binding w/axis2 and I can keep looking at this in my current
sandbox
until you are done, so it's not like I am stuck.
Could you post an email about what and how you're looking at doing async
and
Axis2? There's a few of us who've worked on this binding in the past who'd
be interested, I didn't even know you were looking at this until it was
mentioned on IRC yesterday (unless I missed some previous email).
...ant
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]