Re: PassByValueInterceptor always copying data now?
Please see my comments inline. Thanks, Raymond - Original Message - From: Jean-Sebastien Delfino [EMAIL PROTECTED] To: tuscany-dev@ws.apache.org Sent: Monday, February 25, 2008 8:36 AM Subject: PassByValueInterceptor always copying data now? With the latest trunk code, PassByValueInterceptor seems to always copy data returned by my Java component to my service (with a feed binding). Is this on the service binding side? If it's for the reference binding, you can simply have the binding invoker implements the PassByValueAware interface and return true for the allowsPassByReference() method. The final SPI is being discussed on the ML. I don't think it's right (and it's actually breaking me now as the JAXBDataBinding fails to copy my objects). Is it the failure that was reported by Luciano (CloneNotSupportedException)? If so, I have a fix coming in. Or is the feed binding not doing what it should do to tell the databinding framework not to copy? The changes are in progress. At this moment, the PBV is still an interceptor if none of the invokers return true for allowsPassByReference(). There is an interim way you can use to disable it by calling InvocationChain.setAllowsPassByReference(true). BTW it's again another example of some databinding magic happening on the invocation chain and making things complicated to follow. Where are we with the discussion about not having so much databinding magic happen at invocation time? As we discussed before, the control should be a combination of the client, invokers and runtime. But we are yet to refactor the code so that the client of the invocation chain handles the PBV and PBV interceptor becomes a utility class. How can I, in my binding, disable the automatic databinding processing? -- 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]
Re: PassByValueInterceptor always copying data now?
This is a side effect of a workaround that was added in the databinding based on the following discussion thread [1], and I'm also seeing issues as described in [2]. Maybe Raymond could give us other choices here. [1] http://www.mail-archive.com/tuscany-dev%40ws.apache.org/msg28222.html [2] http://www.mail-archive.com/tuscany-dev%40ws.apache.org/msg28241.html On Mon, Feb 25, 2008 at 8:36 AM, Jean-Sebastien Delfino [EMAIL PROTECTED] wrote: With the latest trunk code, PassByValueInterceptor seems to always copy data returned by my Java component to my service (with a feed binding). I don't think it's right (and it's actually breaking me now as the JAXBDataBinding fails to copy my objects). Or is the feed binding not doing what it should do to tell the databinding framework not to copy? BTW it's again another example of some databinding magic happening on the invocation chain and making things complicated to follow. Where are we with the discussion about not having so much databinding magic happen at invocation time? How can I, in my binding, disable the automatic databinding processing? -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Luciano Resende Apache Tuscany Committer http://people.apache.org/~lresende http://lresende.blogspot.com/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: PassByValueInterceptor always copying data now?
Raymond Feng wrote: Please see my comments inline. Thanks, Raymond - Original Message - From: Jean-Sebastien Delfino [EMAIL PROTECTED] To: tuscany-dev@ws.apache.org Sent: Monday, February 25, 2008 8:36 AM Subject: PassByValueInterceptor always copying data now? With the latest trunk code, PassByValueInterceptor seems to always copy data returned by my Java component to my service (with a feed binding). Is this on the service binding side? If it's for the reference binding, you can simply have the binding invoker implements the PassByValueAware interface and return true for the allowsPassByReference() method. The final SPI is being discussed on the ML. I don't think it's right (and it's actually breaking me now as the JAXBDataBinding fails to copy my objects). Is it the failure that was reported by Luciano (CloneNotSupportedException)? If so, I have a fix coming in. Or is the feed binding not doing what it should do to tell the databinding framework not to copy? The changes are in progress. At this moment, the PBV is still an interceptor if none of the invokers return true for allowsPassByReference(). There is an interim way you can use to disable it by calling InvocationChain.setAllowsPassByReference(true). BTW it's again another example of some databinding magic happening on the invocation chain and making things complicated to follow. Where are we with the discussion about not having so much databinding magic happen at invocation time? As we discussed before, the control should be a combination of the client, invokers and runtime. But we are yet to refactor the code so that the client of the invocation chain handles the PBV and PBV interceptor becomes a utility class. How can I, in my binding, disable the automatic databinding processing? -- Jean-Sebastien OK, Thanks. I'm short-circuiting JAXBDataBinding.copy() for now in my local copy until you resolve the above issues. Another issue: when JAXBDataBinding creates a new JAXB Context it does not pass all the necessary classes, causing JAXB to throw: javax.xml.bind.JAXBException: class org.apache.tuscany.sca.implementation.data.collection.Item nor any of its super class is known to this context. -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: PassByValueInterceptor always copying data now?
I checked in a few fixes under r630942 and r630935 to get you going now. For the JAXBContext issue, can you open a JIRA to track it? The current introspection-based databinding might have some flaws in some cases as you see. We need to have a separate discussion. Thanks, Raymond - Original Message - From: Jean-Sebastien Delfino [EMAIL PROTECTED] To: tuscany-dev@ws.apache.org Sent: Monday, February 25, 2008 9:00 AM Subject: Re: PassByValueInterceptor always copying data now? Raymond Feng wrote: Please see my comments inline. Thanks, Raymond - Original Message - From: Jean-Sebastien Delfino [EMAIL PROTECTED] To: tuscany-dev@ws.apache.org Sent: Monday, February 25, 2008 8:36 AM Subject: PassByValueInterceptor always copying data now? With the latest trunk code, PassByValueInterceptor seems to always copy data returned by my Java component to my service (with a feed binding). Is this on the service binding side? If it's for the reference binding, you can simply have the binding invoker implements the PassByValueAware interface and return true for the allowsPassByReference() method. The final SPI is being discussed on the ML. I don't think it's right (and it's actually breaking me now as the JAXBDataBinding fails to copy my objects). Is it the failure that was reported by Luciano (CloneNotSupportedException)? If so, I have a fix coming in. Or is the feed binding not doing what it should do to tell the databinding framework not to copy? The changes are in progress. At this moment, the PBV is still an interceptor if none of the invokers return true for allowsPassByReference(). There is an interim way you can use to disable it by calling InvocationChain.setAllowsPassByReference(true). BTW it's again another example of some databinding magic happening on the invocation chain and making things complicated to follow. Where are we with the discussion about not having so much databinding magic happen at invocation time? As we discussed before, the control should be a combination of the client, invokers and runtime. But we are yet to refactor the code so that the client of the invocation chain handles the PBV and PBV interceptor becomes a utility class. How can I, in my binding, disable the automatic databinding processing? -- Jean-Sebastien OK, Thanks. I'm short-circuiting JAXBDataBinding.copy() for now in my local copy until you resolve the above issues. Another issue: when JAXBDataBinding creates a new JAXB Context it does not pass all the necessary classes, causing JAXB to throw: javax.xml.bind.JAXBException: class org.apache.tuscany.sca.implementation.data.collection.Item nor any of its super class is known to this context. -- 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]