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