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]

Reply via email to