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