Re: PassByValueInterceptor always copying data now?

2008-02-25 Thread Raymond Feng

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?

2008-02-25 Thread Luciano Resende
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?

2008-02-25 Thread Jean-Sebastien Delfino

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?

2008-02-25 Thread Raymond Feng

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]