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]