Author: bdaniel
Date: Wed Jun 29 20:16:05 2011
New Revision: 1141229

URL: http://svn.apache.org/viewvc?rev=1141229&view=rev
Log:
Return correct interface contract when interfaces are compatible but not 
assignable from each other

Modified:
    
tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java

Modified: 
tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java?rev=1141229&r1=1141228&r2=1141229&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java
 Wed Jun 29 20:16:05 2011
@@ -470,6 +470,12 @@ public class ComponentContextImpl implem
                     }
                     InterfaceContractMapper ifcm = 
registry.getExtensionPoint(InterfaceContractMapper.class);
                     compatible = ifcm.isCompatibleSubset(biContract, 
interfaceContract);
+                   // If the business interface class is not assignable from 
the service interface class but
+                   // they are compatible, we need to return an 
InterfaceContract with the business interface
+                   // class to store on the reference side. 
+                   if ( compatible ) {
+                       return biContract;
+                   }
                 }
 
             }


Reply via email to