Author: rfeng
Date: Sat Jul 21 12:14:19 2007
New Revision: 558370

URL: http://svn.apache.org/viewvc?view=rev&rev=558370
Log:
Fix for TUSCANY-1473

Modified:
    
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java
    
incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/DataBindingRuntimeWireProcessor.java
    
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java
    
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/RuntimeSCAReferenceBindingProvider.java
    
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java

Modified: 
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java?view=diff&rev=558370&r1=558369&r2=558370
==============================================================================
--- 
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java
 Sat Jul 21 12:14:19 2007
@@ -49,6 +49,7 @@
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilderMonitor;
 import org.apache.tuscany.sca.assembly.builder.Problem;
 import org.apache.tuscany.sca.assembly.builder.Problem.Severity;
+import org.apache.tuscany.sca.interfacedef.InterfaceContract;
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 
 /**
@@ -1583,7 +1584,14 @@
         componentReference.getTargets().add(service);
         componentReference.getPolicySets().addAll(service.getPolicySets());
         
componentReference.getRequiredIntents().addAll(service.getRequiredIntents());
-        
componentReference.setInterfaceContract(service.getInterfaceContract());
+        
+        // FIXME: What interface contract should be used?
+        InterfaceContract interfaceContract = service.getInterfaceContract();
+        Service componentTypeService = service.getService();
+        if (componentTypeService != null && 
componentTypeService.getInterfaceContract() != null) {
+            interfaceContract = componentTypeService.getInterfaceContract();
+        }
+        componentReference.setInterfaceContract(interfaceContract);
         componentReference.setMultiplicity(Multiplicity.ONE_ONE);
         component.getReferences().add(componentReference);
         return componentReference;

Modified: 
incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/DataBindingRuntimeWireProcessor.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/DataBindingRuntimeWireProcessor.java?view=diff&rev=558370&r1=558369&r2=558370
==============================================================================
--- 
incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/DataBindingRuntimeWireProcessor.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/DataBindingRuntimeWireProcessor.java
 Sat Jul 21 12:14:19 2007
@@ -63,7 +63,8 @@
             return false;
         }
         if (sourceDataBinding == null || targetDataBinding == null) {
-            return true;
+            // TODO: If any of the databinding is null, then no transformation
+            return false;
         }
         return !sourceDataBinding.equals(targetDataBinding);
     }

Modified: 
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java?view=diff&rev=558370&r1=558369&r2=558370
==============================================================================
--- 
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java
 Sat Jul 21 12:14:19 2007
@@ -88,7 +88,7 @@
         if (types.size() == params.length && 
method.getName().equals(operation.getName())) {
             for (int i = 0; i < params.length; i++) {
                 Class<?> clazz = params[i];
-                if 
(!clazz.equals(operation.getInputType().getLogical().get(i).getPhysical())) {
+                if 
(!operation.getInputType().getLogical().get(i).getPhysical().isAssignableFrom(clazz))
 {
                     matched = false;
                 }
             }

Modified: 
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/RuntimeSCAReferenceBindingProvider.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/RuntimeSCAReferenceBindingProvider.java?view=diff&rev=558370&r1=558369&r2=558370
==============================================================================
--- 
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/RuntimeSCAReferenceBindingProvider.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/RuntimeSCAReferenceBindingProvider.java
 Sat Jul 21 12:14:19 2007
@@ -93,14 +93,15 @@
                             if (targetChain != null) {
                                 
((Interceptor)sourceChain.getTailInvoker()).setNext(targetChain.getHeadInvoker());
                                 if (!dynamicService) {
-                                    
sourceChain.setTargetOperation(targetChain.getSourceOperation());
+                                    // FIXME: [rfeng] Change the target 
operation will impact the interceptors
+                                    
sourceChain.setTargetOperation(targetChain.getTargetOperation());
                                 }
                             } else {
                                 throw new RuntimeException("Incompatible 
operations for source and target wires");
                             }
                         }
                         if (!dynamicService) {
-                            
sourceWire.getTarget().setInterfaceContract(targetWire.getSource().getInterfaceContract());
+                            
sourceWire.getTarget().setInterfaceContract(targetWire.getTarget().getInterfaceContract());
                         }
                     }
                 }

Modified: 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java?view=diff&rev=558370&r1=558369&r2=558370
==============================================================================
--- 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java
 Sat Jul 21 12:14:19 2007
@@ -42,7 +42,7 @@
                 return false;
             }
             // For local case
-            return target.getPhysical() == source.getPhysical();
+            return target.getPhysical().isAssignableFrom(source.getPhysical());
         } else {
             // FIXME: How to test if two remotable data type is compatible?
             // return target.getLogical().equals(source.getLogical());



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

Reply via email to