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]


Reply via email to