----- Original Message ----- From: "Jean-Sebastien Delfino" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Wednesday, February 06, 2008 9:56 AM
Subject: Re: Bypassing unnecessary transforms by Tuscany databinding framework


Raymond Feng wrote:
I was initially thinking about the interceptors. But I realized that service binding providers usually don't add an interceptor to the invocation chain. Instead, they register a listener to the binding protocol layer to route the call into SCA. If the service provider receives data from a transport and it knows the data won't be mutated by reference, it should be able to express it to help the runtime to bypass PBV.

Thanks,
Raymond


I was envisioning a simpler scheme, the main questions would be:
a) is the business data in a message a copy of user data or not?
b) is the piece of code getting the business data altering it?

We'd track that with:
1. a boolean in Message to cover (a)
2. a boolean on Interceptor to cover (b)


To be precise, flag (a) should tell if the business data in the message is safe to be altered. Flag (b) should tell if the code will keep the input business data untouched and if it's safe to have the output data to be altered by others.

That would provide enough info to decide whether to copy/transform the data or not.

And we would let the interceptors, invokers or binding listeners drive that copy/transform explicitly instead of having it auto-magically called in the invocation chain, which seems more difficult to control.

I guess now the question is whether we need to have the generic PBV interceptor to be inserted if a==false and none of the interceptors/invokers claim it's PBV garaunteed (I still don't know how we test accross the invokers in the invocation chain).


Thoughts?
--
Jean-Sebastien

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