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 2006/09/09 03:13:48 UTC

svn commit: r441719 - /incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java

Author: rfeng
Date: Fri Sep  8 18:13:47 2006
New Revision: 441719

URL: http://svn.apache.org/viewvc?view=rev&rev=441719
Log:
Use WireService to test wireability

Modified:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java?view=diff&rev=441719&r1=441718&r2=441719
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java Fri Sep  8 18:13:47 2006
@@ -354,32 +354,32 @@
                 e.setIdentifier(targetName.getPortName());
                 throw e;
             }
-            if (wireService == null) {
-                // FIXME: [rfeng] wireService won't be injected for the system connector?
-                Class sourceInterface = sourceWire.getServiceContract().getInterfaceClass();
-                Class targetInterface = targetWire.getServiceContract().getInterfaceClass();
-                if (!sourceInterface.isAssignableFrom(targetInterface)) {
-                    throw new BuilderConfigException("Incompatible source and target interfaces");
-                }
-            } else if (!wireService.isWireable(sourceWire.getServiceContract(), targetWire.getServiceContract())) {
-                throw new BuilderConfigException("Incompatible source and target interfaces");
-            }
+            checkIfWireable(sourceWire, targetWire);
             boolean optimizable = isOptimizable(source.getScope(), target.getScope());
             connect(source, target, sourceWire, targetWire, optimizable);
         } else if (target instanceof Reference) {
             InboundWire<T> targetWire = ((Reference) target).getInboundWire();
             assert targetWire != null;
-            Class sourceInterface = sourceWire.getServiceContract().getInterfaceClass();
-            Class targetInterface = targetWire.getServiceContract().getInterfaceClass();
-            if (!sourceInterface.isAssignableFrom(targetInterface)) {
-                throw new BuilderConfigException("Incompatible source and target interfaces");
-            }
+            checkIfWireable(sourceWire, targetWire);
             boolean optimizable = isOptimizable(source.getScope(), target.getScope());
             connect(source, target, sourceWire, targetWire, optimizable);
         } else {
             String name = sourceWire.getReferenceName();
             BuilderConfigException e = new BuilderConfigException("Invalid target type for reference " + name);
             e.setIdentifier(targetName.getQualifiedName());
+        }
+    }
+
+    private <T> void checkIfWireable(OutboundWire<T> sourceWire, InboundWire<T> targetWire) {
+        if (wireService == null) {
+            // FIXME: [rfeng] wireService won't be injected for the system connector?
+            Class sourceInterface = sourceWire.getServiceContract().getInterfaceClass();
+            Class targetInterface = targetWire.getServiceContract().getInterfaceClass();
+            if (!sourceInterface.isAssignableFrom(targetInterface)) {
+                throw new BuilderConfigException("Incompatible source and target interfaces");
+            }
+        } else if (!wireService.isWireable(sourceWire.getServiceContract(), targetWire.getServiceContract())) {
+            throw new BuilderConfigException("Incompatible source and target interfaces");
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org