Author: rfeng
Date: Fri Sep 14 11:06:23 2007
New Revision: 575766

URL: http://svn.apache.org/viewvc?rev=575766&view=rev
Log:
Create the source interface contract if target is not a java interface

Modified:
    
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextHelper.java
    
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextImpl.java

Modified: 
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextHelper.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextHelper.java?rev=575766&r1=575765&r2=575766&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextHelper.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextHelper.java
 Fri Sep 14 11:06:23 2007
@@ -134,14 +134,19 @@
     private InterfaceContract getInterfaceContract(InterfaceContract 
interfaceContract, Class<?> businessInterface)
         throws CloneNotSupportedException, InvalidInterfaceException {
         Interface interfaze = interfaceContract.getInterface();
+        boolean compatible = false;
         if (interfaze instanceof JavaInterface) {
             Class<?> cls = ((JavaInterface)interfaze).getJavaClass();
-            if (!businessInterface.isAssignableFrom(cls)) {
-                // The interface is not assignable from the interface contract
-                interfaceContract = 
(InterfaceContract)interfaceContract.clone();
-                
interfaceContract.setInterface(javaInterfaceFactory.createJavaInterface(businessInterface));
+            if (businessInterface.isAssignableFrom(cls)) {
+                compatible = true;
             }
         }
+        if (!compatible) {
+            // The interface is not assignable from the interface contract
+            interfaceContract = (InterfaceContract)interfaceContract.clone();
+            
interfaceContract.setInterface(javaInterfaceFactory.createJavaInterface(businessInterface));
+        }
+
         return interfaceContract;
     }
 

Modified: 
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextImpl.java?rev=575766&r1=575765&r2=575766&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/ComponentContextImpl.java
 Fri Sep 14 11:06:23 2007
@@ -308,14 +308,19 @@
     private InterfaceContract getInterfaceContract(InterfaceContract 
interfaceContract, Class<?> businessInterface)
         throws CloneNotSupportedException, InvalidInterfaceException {
         Interface interfaze = interfaceContract.getInterface();
+        boolean compatible = false;
         if (interfaze instanceof JavaInterface) {
             Class<?> cls = ((JavaInterface)interfaze).getJavaClass();
-            if (!businessInterface.isAssignableFrom(cls)) {
-                // The interface is not assignable from the interface contract
-                interfaceContract = 
(InterfaceContract)interfaceContract.clone();
-                
interfaceContract.setInterface(javaInterfaceFactory.createJavaInterface(businessInterface));
+            if (businessInterface.isAssignableFrom(cls)) {
+                compatible = true;
             }
         }
+        if (!compatible) {
+            // The interface is not assignable from the interface contract
+            interfaceContract = (InterfaceContract)interfaceContract.clone();
+            
interfaceContract.setInterface(javaInterfaceFactory.createJavaInterface(businessInterface));
+        }
+
         return interfaceContract;
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to