Problem using implementation.composite that is another implementation.composite with promoted references --------------------------------------------------------------------------------------------------------
Key: TUSCANY-2027 URL: https://issues.apache.org/jira/browse/TUSCANY-2027 Project: Tuscany Issue Type: Bug Components: Java SCA Core Runtime Affects Versions: Java-SCA-Next Environment: svn revision 609904 Linux Reporter: Mark Combellack Fix For: Java-SCA-Next Attachments: recursive2.jar I am having problems with a sample application that attempts to use nested implementation.composites and references I have an application that has: A lowest level composite (Called CComposite) that has two promoted references: <service name="CService" promote="CComponent"> <interface.java interface="samples.C"/> <binding.sca/> </service> <reference name="PromotedRefX" promote="CComponent/refX"> <interface.java interface="samples.X"/> <binding.sca/> </reference> <reference name="PromotedRefY" promote="CComponent/refY"> <interface.java interface="samples.Y"/> <binding.sca/> </reference> <component name="CComponent"> <implementation.java class="samples.CImpl"/> <reference name="refX"/> <reference name="refY"/> </component> This is then used by another Composite (called BComposite): <service name="BService" promote="BComponent"> <interface.java interface="samples.C"/> <binding.sca/> </service> <component name="BComponent"> <implementation.composite name="sample:CComposite"/> <reference name="PromotedRefX" target="XComponent"/> <reference name="PromotedRefY" target="YComponent"/> </component> <component name="XComponent"> <implementation.java class="samples.XImpl"/> </component> <component name="YComponent"> <implementation.java class="samples.YImpl"/> </component> This is then used by another composite (called AComposite): <service name="AService" promote="AComponent"> <interface.java interface="samples.C"/> </service> <component name="AComponent"> <implementation.composite name="sample:BComposite"/> </component> I have a unit test that tries to use AComponent. However, when I invoke an operation on the Service, I get the following exception: ------------------------------------------------------- T E S T S ------------------------------------------------------- Running nested.NestedTestCase Deployed names = [XComponent, AComponent, BComponent, YComponent, CComponent] Setting X on CImpl to [Proxy - [EMAIL PROTECTED] Setting Y on CImpl to [Proxy - [EMAIL PROTECTED] Deployed names = [XComponent, AComponent, BComponent, YComponent, CComponent] Setting X on CImpl to [Proxy - [EMAIL PROTECTED] Setting Y on CImpl to [Proxy - [EMAIL PROTECTED] Method call returned [C:cOp() - xResult = X:xOp() yResult = Y:yOp()] Tests run: 2, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.667 sec <<< FAILURE! testAComponent(nested.NestedTestCase) Time elapsed: 1.434 sec <<< ERROR! org.osoa.sca.ServiceUnavailableException: Service not found for component CComponent reference refX (bindingURI=null operation=xOp). Ensure that the composite containing the service is loaded and started somewhere in the SCA domain and that if running in a remote node that the interface of the target service marked as @Remotable at org.apache.tuscany.sca.binding.sca.impl.RuntimeSCAReferenceBindingProvider.createInvoker(RuntimeSCAReferenceBindingProvider.java:225) at org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.addBindingInterceptor(RuntimeWireImpl.java:213) at org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.initInvocationChains(RuntimeWireImpl.java:155) at org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.getInvocationChains(RuntimeWireImpl.java:97) at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.getInvocationChain(JDKInvocationHandler.java:205) at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:139) at $Proxy6.xOp(Unknown Source) at samples.CImpl.cOp(CImpl.java:33) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:105) at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:248) at org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:145) at $Proxy5.cOp(Unknown Source) at nested.NestedTestCase.testAComponent(NestedTestCase.java:42) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at junit.framework.TestCase.runTest(TestCase.java:168) at junit.framework.TestCase.runBare(TestCase.java:134) at junit.framework.TestResult$1.protect(TestResult.java:110) at junit.framework.TestResult.runProtected(TestResult.java:128) at junit.framework.TestResult.run(TestResult.java:113) at junit.framework.TestCase.run(TestCase.java:124) at junit.framework.TestSuite.runTest(TestSuite.java:232) at junit.framework.TestSuite.run(TestSuite.java:227) at org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:35) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62) at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:138) at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:125) at org.apache.maven.surefire.Surefire.run(Surefire.java:132) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:308) at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:879) Results : Tests in error: testAComponent(nested.NestedTestCase) Tests run: 2, Failures: 0, Errors: 1, Skipped: 0 I have a second test that looks up BComponent directly and runs the same code and this test passes. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]