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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to