[
https://issues.apache.org/jira/browse/TUSCANY-1930?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Venkatakrishnan resolved TUSCANY-1930.
--------------------------------------
Resolution: Fixed
Fixed in r606128. I've made changes to the itest-wires to test this out and
seems fine. The things you have pointed out seem to be puzzling but I figured
out that there are reasons for that. We'll take a relook at the design to see
if we can make it more obvious. Thanks.
> Wire specified in composite file not working
> --------------------------------------------
>
> Key: TUSCANY-1930
> URL: https://issues.apache.org/jira/browse/TUSCANY-1930
> Project: Tuscany
> Issue Type: Bug
> Components: Java SCA Assembly Model
> Affects Versions: Java-SCA-1.0, Java-SCA-1.0.1, Java-SCA-1.1
> Environment: jre1.5.0_11 and jre1.6.0_03
> Reporter: Andy Verberne
> Assignee: Venkatakrishnan
> Fix For: Java-SCA-1.1
>
> Attachments: TUSCANY-1930 (3) - CompositeWireBuilderImpl.java
>
>
> When using a wire in my own composite file I got the error message and stack
> trace as specified further down.
> After debugging the source code of the SCA Assembly Model component I found
> that this error can easily be reproduced by modifying the existing
> integration test:
> org.apache.tuscany.sca.itest.WireTestCase.java
> This integration test does run successful but will fail when one makes the
> following changes in the accompanying WireTest.composite file:
> Chnage:
> <component name="WireService">
> <implementation.java
> class="org.apache.tuscany.sca.itest.WireServiceImpl"/>
> </component>
> <wire source="WireClient/aWireService"
> target="WireService/WireService"/>
> into:
> <component name="WireServiceComponent">
> <implementation.java
> class="org.apache.tuscany.sca.itest.WireServiceImpl"/>
> </component>
> <wire source="WireClient/aWireService"
> target="WireServiceComponent/WireService"/>
> Notice the change of the component name. The bug in the code is such that the
> wire will only work when the component and service name, specified in the
> target of the wire (i.e. target="WireService/WireService) are equal. As is
> the case in the current integration test. When the component name and service
> name are different the wire will fail.
> I was able to fix the bug by modifying one line in the file:
> org.apache.tuscany.sca.assembly.builder.impl.CompositeWireBuilderImpl.java
> I have attached this as a patch.
> I will also create a new issue in Jira proposing to modify the integration
> test in order to detect this bug.
> However, I am not entirely sure whether this fix doesn't break other things.
> The code preceding the line of of code I modified is rather suspicious:
> // Resolve the target service
> ComponentService target = wire.getTarget();
> if (target != null && target.isUnresolved()) {
> resolvedService = componentServices.get(target.getName());
> if (resolvedService != null) {
> wire.setTarget(target);
> The last line doesn't really do anything useful. So maybe this code needs
> refactoring ...
>
> >>> Error message:
> 5-dec-2007 14:03:33
> org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl$1 problem
> WARNING: Component reference target not found, it might be a remote service:
> WireService
> >>> Stack trace:
> org.osoa.sca.ServiceUnavailableException: No service invoker is available for
> reference aWireService (bindingURI=null operation=sayHello).
> at
> org.apache.tuscany.sca.binding.sca.impl.RuntimeSCAReferenceBindingProvider.createInvoker(RuntimeSCAReferenceBindingProvider.java:192)
> at
> org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.addBindingInterceptor(RuntimeWireImpl.java:214)
> at
> org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.initInvocationChains(RuntimeWireImpl.java:156)
> at
> org.apache.tuscany.sca.core.assembly.RuntimeWireImpl.getInvocationChains(RuntimeWireImpl.java:97)
> at
> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.getInvocationChain(JDKInvocationHandler.java:190)
> at
> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:124)
> at $Proxy7.sayHello(Unknown Source)
> at
> org.apache.tuscany.sca.itest.WireClientImpl.runTests(WireClientImpl.java:46)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.apache.tuscany.sca.implementation.java.invocation.JavaImplementationInvoker.invoke(JavaImplementationInvoker.java:105)
> at
> org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:49)
> at
> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:233)
> at
> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:130)
> at $Proxy6.runTests(Unknown Source)
> at
> org.apache.tuscany.sca.itest.WireTestCase.testWire(WireTestCase.java:46)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at junit.framework.TestCase.runTest(TestCase.java:164)
> at junit.framework.TestCase.runBare(TestCase.java:130)
> at junit.framework.TestResult$1.protect(TestResult.java:106)
> at junit.framework.TestResult.runProtected(TestResult.java:124)
> at junit.framework.TestResult.run(TestResult.java:109)
> at junit.framework.TestCase.run(TestCase.java:120)
> at junit.framework.TestSuite.runTest(TestSuite.java:230)
> at junit.framework.TestSuite.run(TestSuite.java:225)
> at
> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
> at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
--
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]