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