On Wed, Apr 23, 2008 at 12:43 PM, Ramkumar R <[EMAIL PROTECTED]> wrote:

> On 4/18/08, Ramkumar R <[EMAIL PROTECTED]> wrote:
> >
> >  On 4/18/08, Simon Laws <[EMAIL PROTECTED]> wrote:
> >>
> >> On Fri, Apr 18, 2008 at 9:18 AM, Ramkumar R <[EMAIL PROTECTED]>
> >> wrote:
> >>
> >> > TUSCANY 1881, talks about throwing a warning msg when adding remote
> >> > bindings
> >> > to services with interfaces not marked as remotable, by which the
> data
> >> > transformation might get messed up.
> >> >
> >> > From the current implementation, I understand that the
> >> datatransformation
> >> > interceptor will not be inserted in the invocation chain if the
> target
> >> > interface is not marked as remotable. Not having this interceptor
> will
> >> end
> >> > up with binding specific data transformations not being done.. So
> unless
> >> > the
> >> > target binding does have any trouble with the arguments and
> returntypes
> >> > because of the absence of transformations... we do not have any
> issues.
> >> > But
> >> > otherwise we might end up in runtime exceptions being thrown.
> >> >
> >> > While thinking at a solution to this issue, i could think of various
> >> > options
> >> > as shown below, but not sure which one is the right approach?
> >> >
> >> > OPTION 1: About issue shows how lack of Remotable ends up in runtime
> >> > exception when service methods are invoked, can't we somehow trap
> this
> >> > during component build or activatoin time itself?
> >> >
> >> > OPTION 2: I believe this whole thing can be solved if we can simply
> >> check
> >> > in
> >> > the binding if the interface is marked remote.
> >> >
> >> > OPTION 3: Currently DataBindingRuntimeWireProcessor.process() method
> >> > checks
> >> > if the source and target interfaces is remotable before it validates
> to
> >> > see
> >> > if data transformation is required. One way of solution to throw a
> >> warning
> >> > msg is to check the source and target datatypes, if their datatypes
> are
> >> > diff
> >> > we assume that data transformation is required and we look if the
> >> > interfaces
> >> > are marked remotable, if not we throw a warning msg to alert that
> there
> >> > could be an unexpected behaviour in data transformation.
> >> >
> >> > OPTION 4: In the DataBindingRuntimeWireProcessor.process() method,
> just
> >> > check if the source and target interface is remotable OR if the
> source
> >> and
> >> > target datatypes are different. If any one condition is satisfied
> then
> >> we
> >> > assume that data transformation is required.
> >> >
> >> > Apart from the above mentioned issue, do we need to make such checks
> for
> >> > ws
> >> > binding as well OR do we need this checks for all kind of bindings.
> Like
> >> > to
> >> > know people's view on this regard. Thanks.
> >> >
> >> > --
> >> > Thanks & Regards,
> >> > Ramkumar Ramalingam
> >> >
> >>
> >> Hi Ramkumar
> >>
> >> When I originally raised the JIRA I had imagined the solution would be
> >> your
> >> OPTION 1. So that we get a warning that at least tells the user that
> they
> >> are doing something odd. In my case it took me a while to work out what
> >> the
> >> problem was so it would have been nice if the runtime had at least said
> >> "you
> >> are dong something strange are you sure you want to do this".
> >>
> >> I hadn't imagines that we could introduce a data transformation in this
> >> case. Is there code in there that tries and optimizes away the remote
> >> binding if it detects that the components are running locally?
> >>
> >> Simon
> >>
> >
> > Hi Simon,
> > I believe, we don't do any validatation to identify if the component is
> > local / remote. But anyway we assume that the component is remote by
> > checking if the interface is remotable. I could see that we only check
> if
> > the interfaces are remotable and we try to apply appropriate binding and
> > data transformation upon them.
> >
> > I agree with your idea of identifying the component as local/remote and
> do
> > some optimization on binding and data transformation part. If everyone
> > agrees that we need this in place we can probably think of taking this
> > suggestion forward.
> >
> > --
> > Thanks & Regards,
> > Ramkumar Ramalingam
> >
>
> Hi Simon,
> In the mean time, while leaving the optimization part. To fix the issue
> mentioned in TUSCANY-1881, i believe the best solution would be to
> identify
> at the bindingProvider level (except for binding.sca) to check if the
> source
> and target interface is remotable and throw a warning message as required.
>
> Hope this helps.
>
> --
> Thanks & Regards,
> Ramkumar Ramalingam
>

Sounds good to me.

Simon

Reply via email to