You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/07/21 21:14:20 UTC

svn commit: r558370 - in /incubator/tuscany/java/sca/modules: assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ core-databinding/src/main/java/org/apache/tuscany/sca/core/databinding/wire/ core/src/main/java/org/apache/tuscany/sca/co...

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: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org