This did break invocations where only one end is using
@AllowsPassByReference so the conformance tests had started failing,
I've fixed that now and raised a TUSCANY-3479 to cover what to do
about the client APIs which isn't defined in the specs, though that
doesn't seem like a major issue to me. So all the tests are passing
now and its all looking ok.

   ...ant

On Sat, Feb 27, 2010 at 11:31 AM, Raymond Feng <[email protected]> wrote:
> Hi,
>
> I have now successfully brought up all the test cases under
> itest/nodes/binding-sca-tribes:
>
> BindingSCATestCase:
>   * Same classloader for two nodes
>   * Three cases:
>       * One NodeFactory, One Node to contain two deployable composites
> (Client/Service)
>       * One NodeFactory, Two Node (each contain a deployable composite)
>       * Two NodeFactory, Two Node (each contain a deployable composite)
>
> ClientNodeSharedCustomerTestCase (test Pass-By-Reference and
> Allows-Pass-By-Reference):
>   * Different ClassLoaders for the Local and Remote implementation classes,
> Local interface and Customer class are shared
>   * One NodeFactory, Two Node (each contain a deployable composite)
>
> ClientNodeSharedLocalTestCase: (test Pass-By-Reference and Pass-By-Value):
>   * Different ClassLoaders for the Local and Remote implementation classes
> and Customer class, only Local interface is shared (Customer will be copied
> across the classloaders)
>   * One NodeFactory, Two Node (each contain a deployable composite)
>
> ClientSharedCustomerTestCase: Similar with ClientNodeSharedCustomerTestCase
> but using SCAClientFactory API instead of a client node
> ClientSharedLocalTestCase: Similar with ClientNodeSharedLocalTestCase but
> using SCAClientFactory API instead of a client node
>
> To support these cases, I made the following changes:
> * Improve InterfaceContractMapper to support different compatibility styles
> to check by-reference or by-value
> * Adjust SCABindingInvoker to allow In-VM invocations for PBR, and PBV by
> coping data
> * Add a getHeadInvoker(String phase) method to Invocation chain so that we
> can connect the endpoint reference invocation chain the endpoint invocation
> but bypass the interceptors for the service binding related processing. For
> example, a remote binding.sca endpoint invocation chain will have a
> DataTransformationInterceptor to convert OM data but it's not needed for the
> in-VM invocation.
> * Rationalize the "remote" flag to endpoint and only set it upon
> deserialization (I.e, the endpoint is from a foreign endpoint registry).
> Remove the remote flag on endpoint reference.
>
> Thanks,
> Raymond
> --------------------------------------------------
> From: "Raymond Feng" <[email protected]>
> Sent: Tuesday, February 23, 2010 4:47 PM
> To: <[email protected]>; <[email protected]>
> Subject: Re: [2.x] In-VM invocation between components
>
>> Hi,
>>
>> I just checked in an itest [1] to cover the various combinations.
>>
>> The test cases fail at this moment as we try to connect the endpoint
>> reference invocation chain to the target endpoint invocation chain. But the
>> target invocation chain for the remote service expects OM data for the
>> databinding interceptor.
>>
>> I'll look into the issues and try to bring up this itest.
>>
>> [1]
>> https://svn.apache.org/repos/asf/tuscany/sca-java-2.x/trunk/itest/nodes/binding-sca-tribes
>>
>> Thanks,
>> Raymond
>> --------------------------------------------------
>> From: "Simon Laws" <[email protected]>
>> Sent: Tuesday, February 23, 2010 7:09 AM
>> To: <[email protected]>; <[email protected]>
>> Subject: Re: [2.x] In-VM invocation between components
>>
>>> Don't know if this is going to come out on email so have added it to [1]
>>> also.
>>>
>>> remote = endpoint is in a different JVM from the endpoint reference
>>> local = endpoint is in the same JVM as the endpoint reference
>>> cl = classloader
>>> pbv = pass by value
>>> pbr = pass by reference
>>> apbr = allows pass by reference
>>>
>>>                           remote        local (same cl)      local
>>> (different cl)
>>> local interface       1. error       4. pbr                7. pbv (or
>>> error?)
>>> remote interface   2. pbv         5. pbv                8. pbv
>>> remote apbr          3. pbv         6. pbr (or pbr)       9. pbv
>>>
>>> So for each numbered entry what test(s) identify the entry.
>>>
>>> Simon
>>>
>>> [1] http://cwiki.apache.org/confluence/display/TUSCANYWIKI/SCA+Binding
>>
>

Reply via email to