Hi Raymond,

Not to throw a wrench into this, but ws/Axis2 callbacks derive from the current approach of Axis2TargetInvoker handling the invocation on the ServiceClient's OperationClient and of it being created by Axis2Reference. I don't think CompositeReference needs to be involved here as it does not know much about the particular binding at hand. I have to admit that I have not analyzed quite all the details of interface transformation, I was hoping that most of it could have been delegated to databinding. In fact, I did not realize that this was in the state of flux that it seems to be. I have written an Axis2AsyncTargetInvoker (which extends Axis2TargetInvoker), an Axis2ReferenceCallbackTargetInvoker (A2RCTI, that performs a callback invocation upstream the Axis2Reference's inbound wire), and an Axis2Callback (that is registered with the OperationClient and that encapsulates A2RCTI), assuming the current approach was relatively stable, in addition to making the necessary changes to Axis2Reference and ConnectorImpl to support them. Would it be possible to try to keep these from falling out of date, or worse yet, being deprecated? Not sure how best to do this. I was trying to figure out a way of testing them when I saw your note.

I do think that the basic architecture can remain as it is, still using the binding's ReferenceExtension (in this case Axis2Reference), and without requiring an outbound wire for it. Do you agree?

----- Original Message ----- From: "Raymond Feng" <[EMAIL PROTECTED]>
To: <tuscany-dev@ws.apache.org>
Sent: Wednesday, September 13, 2006 1:55 PM
Subject: Re: More databinding integration update


The good news is that I managed to get the helloworldwsclient working with a workaround and some minor changes.

Workaround: Use the interface.wsdl instead of interface.java for the binding.ws. AxisReference: Set the databinding to OMElement for the WSDLServiceContract Axis2TargetInvoker: Make sure it goes with the pure OMElement path Rick did before. There is a bug that it doesn't set the pureOMElemnt flag based on the input data.

But please respond to my previous note on how we support java interfaces in this case.

Thanks,
Raymond

----- Original Message ----- From: "Raymond Feng" <[EMAIL PROTECTED]>
To: <tuscany-dev@ws.apache.org>
Sent: Wednesday, September 13, 2006 10:20 AM
Subject: More databinding integration update


Hi,

1) A model for WSDL portType/operation and related XSD metadata to represent unwrapped and wrapped WSDL operations

2) Input2InputTransformer and Out2OutTransformer to handle message payload conversions accross IDL/databindings.

3) A databinding provider such AXIOM, DOM, JAXB orSDO can implement the WrapperHandler to plug in the wrapping/unwrapping support for the given databinding.

4) The echo-databinding sample has been updated to integrate the above features and demonstrate the following interactions.

a) ComponentA/Interface1 (String) --> ComponentB/Interface2 (DOM) (A databinding interceptor transforms String to DOM and vice versa) b) ComponentB.reference with Echo java interface (DOM) --> Composite Echo Reference (with wrapped WSDL and AXIOM databinding) (A databinding interceptor transform DOM to wrapped AXIOM).

I started to look into the integration with Axis2 today. I ran into the following issue now.

For a composite reference HelloWorldService,

<reference name="HelloWorldService">
   <interface.java interface="helloworld.HelloWorldService"/>
<binding.ws endpoint="http://helloworld#wsdl.endpoint(HelloWorldService/HelloWorldSoapPort)" location="wsdl/helloworld.wsdl" />
</reference>

It's modeled as a java interface for the inbound wire (for example, a component reference wired to this composite reference). But the target invoker expects the WSDL interface from the binding.ws endpoint. To make this happen with databinding transformation, I assume the BindingBuilder has to create an outbound wire (to the Axis2 binding with the target contract as the WSDL derived from the binding.ws). The TargetInvoker will be added to the end of the outbound wire. Then the databinding interceptor will kick in for the outbound wire to transform the JavaServiceContract to the WSDLServiceContract so that the OMElement can be directly consumed by the Axis2 TargetInvoker.

As a summary, the sequence will be:

a) component.reference (inteface 1) --> composite.reference (Java interface 2) // It's happending now b) composite.reference (Java interface 2) --> axis2 binding (WSDL portType) // Yet to happen

Am I on the right track? Your comments will be appreciated.

Thanks,
Raymond


---------------------------------------------------------------------
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]

Reply via email to