Thanks Raymond, I really appreciate it. I am looking forward to the document as well.
Let me digest this a bit more and I will fire more questions. When I submit the jms patch please take a look at it from the databinding stuff and correct me if I have taken the wrong approach. Regards, Rajith On 9/18/06, Raymond Feng <[EMAIL PROTECTED]> wrote:
Hi, Rajith. Your questions are just in time. I just reached a point that the databinding framework works with the Axis2 binding (Axiom) end-to-end. I'm planning to put together a document to describe how the framework works and how you can plug in extensions. Let me try to give you some breif answers first. Please see the comments below. Thanks, Raymond ----- Original Message ----- From: "Rajith Attapattu" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Monday, September 18, 2006 3:23 PM Subject: Re: Question on databinding framework > Hi, > > I would really appreciate if somebody can answer the following questions > regarding the data binding framework. > > 1. Is DataBindingInteceptor the only interceptor in the chain that deals > with data transformation? > Yes. DataBindingInterceptor(s) are added to the wiring to transform data between two mappable (compatible but with different databindings) ServiceContract/Operation(s). > 2. The DataBindingInteceptor has a mediator associated with it to > transform > the data. The current mediator has a list of Transformers that act on the > data. > Is my understanding correct? Yes, you're right. Mediator is backed by registered DataBinding(s) and Transformer(s). It figures a path (potentially multiple hops) between the source and target and flow source data over the path so that it can be converted to the target format. > > 3. As I see all transformers are categoried as either Pull or Push based. > What does this mean? > There are two types of transformations depending on the target side. Let's say a-->b, if b is something like a DOM Node, SDO DataObject, or XMLStreamReader, then it's a pull style because the data is pulled from the source. If b is a data sink, for example, SAX ContentHandler, OutputStream, Writer, then it's a push style because the data is pushed into the target. Pull-style transformers can natually chained together to form a path. Push-style transformer can either be used to terminate the transformation or it's further piped by DataPipe (which uses the PushTransformer to populate data, for example, receive SAX events to create a SDO DataObject or DOM) so that the chain can continue. Examples: SDO --> XMLStreamReader --> DOM DOM --> SAX2SDOPipe (A ContentHandler provided by SDO) --> SDO > 4. How does all these fit into together? Like can I know the flow when a > service is accessed or when we invoke on a reference? > For example what I am expecting is something like this. (I am familliar > with axis2, so let me use that as most of u guys are also familliar with > axis2) > > SOAP msg --> TransportListerner --> in Handler chain --> MessageReceiver > --> Service implementation or your Bizz logic > > Service Impl --> MessageReceiver --> out Handler chain --> > TransportSender --> SOAP msg > > A flow diagram (simillar to above) of how Tuscant handles a service > invocation and invoking a reference is very helpfull. > Reference flow: Caller Component --|1|--> Tuscany SCA Reference with Axis2 binding --|2|--> Axis2 Client (AXIOM) --> SOAP/HTTP |1|: DataBindingInterceptor converts the invocation message from the caller component format to AXIOM. |2|: During "build" phase, the Reference binding builder should make sure the WSDL portType (if exists) used by the web service is mappable to the interface declared inside the <reference> or derive the WSDL from other IDLs such as Java interface. Service flow: SOAP/HTTP --> Axis2Servlet (AXIOM) --|1|--> Message receiver provided by Tuscany SCA Axis2 Service (WSDL portType) ---|2|--> Wired component (Java interface with SDO or JAXB). |1|: During "build" phase, the Service binding builder should make sure the WSDL portType (if exists) used by the web service is mappable to the interface declared inside the <service> or derive the WSDL from other IDLs such as Java interface. |2|: DataBindingInterceptor converts the invocation message from AXIOM to the target component format. > Thanks in advance, > > Rajith. > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
