Thanks Raymond, Any updates on the Transformers ? Btw, if we use a WSDL describer the messages how can we reuse the axis2 stuff?
Regards, Rajith On 12/15/06, Raymond Feng <[EMAIL PROTECTED]> wrote:
Hi, I think we may have three options to achieve the same goal. 1) If the JMS binding can derive a ServiceContract for the binding layer (for example, using a WSDL to describe the binding contract), then we can follow the same approach as the binding.axis2. In this case, the DataBindingInteceptor can transform the Object[] into an intermediate format such as OMElement[], and then the JMS binding will create a JMS message based on the intermediate format. 2) JMS binding provides databindings at "idl" level to full control the data transformation. In the databinding framework, we have two system databindings to represent the invocation payload at the top level. idl:input --- representing the input data for an operation (Java/WSDL). idl:out --- representing the output data for an operation (Java/WSDL). If we have an assembly the following wiring: component.reference --> composite.reference w/ JMS binding .... composite.service w/ JMS binding --> component.service Now with jms:input and jms:ouput, we'll have the following sequences: request path: idl:input --> jms:input .... <jms messaging> ... jms:input --> idl:input response path: idl:output --> jms:output ... <jms messaging> ... jms:output --> idl:output The marshaling/unmashaling logic can then go into the special transformers. component--> jms reference: Input2JmsInputTransformer (Object[] --> JMS Message or an intermediate format such as byte[] or XML) jms service --> component: JmsInput2InputTransformer (JMS --> Object[]) componet --> jms service: Output2JmsOutputTransformer (Object --> JMS) jms reference --> component: JmsOutput2OutputTransformer (JMS --> Object) 3) Inject the "org.apache.tuscany.spi.databinding.Mediator" into the JMS binding invoker code. Then the JMS code will be responsible to create a JMS message from the Object[] with the help from the "Mediator" which can transform data by databindings. Right now, we're pursuing option 2 which seems to be a middle-ground of option 1 and option 2. Thanks, Raymond ----- Original Message ----- From: "Rajith Attapattu" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Friday, December 15, 2006 6:39 AM Subject: Re: Hi > Venkat, > > Answers inline > > On 12/15/06, Venkata Krishnan <[EMAIL PROTECTED]> wrote: >> >> HI, >> >> I am making some attempts to understand the DataBinding fwk and so shall >> say >> something here so that others will help me understand better. My >> apologies >> if I have mentioned something outrageous as I am just about entering into >> this discussion :) >> >> - By employing the databinding interceptors we expect that when the data >> comes into the JMS Target Invoker as payload, it is already transformed >> and >> ready to be dispatched. Is that so? >> [RA] This is correct > > > > > - Why not do this transformation that is specific to the JMS Binding in > the >> JMS Target invoker. Can we not simply invoke the transformers or the >> tranformer chain providing the source and target data types from within >> the >> invoker? Why is it that we must do it as part of the DataBinding >> inceptor >> in the middle of the invocation chain.? Why not do it at the end of the >> chain which is in the invoker and do this transformation explicitly? > > > [RA] It's best that Raymond answer this question > > Thanks >> >> - Venkat >> >> On 12/14/06, Rajith Attapattu <[EMAIL PROTECTED]> wrote: >> > >> > Hi Raymond, >> > >> > I just checked the new changes and still the problem is there. >> > The source operation data type and the target operation data types are >> the >> > same, hence the DatabindingInterceptor ignores the mediation. >> > >> > It currently works for axis2 bcos your source and target data types are >> > different and also the interfaces are different (one is a WSDL and the >> > other >> > is a java interface). >> > But for JMS interfaces at both ends are java and the data types are >> going >> > to >> > be the same most of the time. >> > >> > So we need to (trick ?) get the data binding framework to think about >> the >> > interim data format which is XML (ADB/XMLBeans etc) instead of the >> > final >> > data format. >> > >> > It should be object[] ------> XML Blob -------> object[] >> > >> > How can this be done? do u need to do more changes on the data binding >> > framework or do I have to do more changes on my end ? >> > >> > Regards, >> > >> > Rajith >> > >> > On 12/13/06, Raymond Feng <[EMAIL PROTECTED]> wrote: >> > > >> > > Hi, Rajith. >> > > >> > > Sorry for the ignorance. I checked in the fix to change the modifier >> > from >> > > "protected" to "public". >> > > >> > > Thanks, >> > > Raymond >> > > >> > > ----- Original Message ----- >> > > *From:* Rajith Attapattu <[EMAIL PROTECTED]> >> > > *To:* Raymond Feng <[EMAIL PROTECTED]> >> > > *Sent:* Tuesday, December 12, 2006 3:22 PM >> > > *Subject:* Re: Hi >> > > >> > > Raymond, >> > > >> > > The clone method is protected, so I can't call it from my code. >> > > I see that u have copied operations, callback operations and meta >> data. >> > > >> > > I wil change it to public and test it out and let you know. >> > > >> > > Regards, >> > > >> > > Rajith >> > > >> > > On 12/12/06, Rajith Attapattu <[EMAIL PROTECTED]> wrote: >> > > > >> > > > Hey Ramond, >> > > > >> > > > I just checked the ServiceContract stuff and couldn't find a clone >> > > > method. >> > > > What exactly is this method ? >> > > > >> > > > Also as u mentioned the only thing need to be done is to >> > > > a) make the interface remotable >> > > > b) clone the service contract and then set the data binding >> > > > >> > > > Is that good enough? what are the checks u are doing to figure out >> if >> > > > the service contract is different? >> > > > >> > > > Regards, >> > > > >> > > > Rajith >> > > > >> > > > On 11/30/06, Raymond Feng <[EMAIL PROTECTED]> wrote: >> > > > > >> > > > > Hi, Rajith. >> > > > > >> > > > > As you might have seen from the mailing list, I already checked >> > > > > in >> > the >> > > > > clone support for ServiceContract yesterday. Do you need anything >> > beyond >> > > > > that? >> > > > > >> > > > > Thanks, >> > > > > Raymond >> > > > > >> > > > > ----- Original Message ----- >> > > > > *From:* Rajith Attapattu <[EMAIL PROTECTED]> >> > > > > *To:* Raymond Feng <[EMAIL PROTECTED]> >> > > > > *Sent:* Monday, November 27, 2006 10:29 AM >> > > > > *Subject:* Re: Hi >> > > > > >> > > > > Thanks Raymond, I really appreciate that. >> > > > > >> > > > > Rajith >> > > > > >> > > > > On 11/27/06, Raymond Feng <[EMAIL PROTECTED]> wrote: >> > > > > > >> > > > > > Hi, Rajith. >> > > > > > >> > > > > > Sorry for not responding promptly as I was on vacation last >> week. >> > > > > > >> > > > > > I'll take a look to see if I can add that support. >> > > > > > >> > > > > > Thanks, >> > > > > > Raymond >> > > > > > >> > > > > > ----- Original Message ----- >> > > > > > From: "Rajith Attapattu" <[EMAIL PROTECTED]> >> > > > > > To: "Raymond Feng" <[EMAIL PROTECTED]> >> > > > > > Sent: Tuesday, November 21, 2006 3:01 PM >> > > > > > Subject: Re: Hi >> > > > > > >> > > > > > >> > > > > > > Hi Raymond, >> > > > > > > >> > > > > > > any news on the clonning stuff? >> > > > > > > >> > > > > > > Btw, u mentioned that before u do anything with data binding, >> > your >> > > > > > > framework will test to see if the interface is remotable and >> > then >> > > > > > if >> > > > > > > the ServiceContracts are different. >> > > > > > > >> > > > > > > how do u compare the service contracts ? what are the fields >> > that >> > > > > > u check? >> > > > > > > >> > > > > > > regards, >> > > > > > > >> > > > > > > Rajith >> > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> > >> >> > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
