You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2007/01/02 15:32:33 UTC

svn commit: r491798 - in /incubator/tuscany/java/sca/kernel/core/src: main/java/org/apache/tuscany/core/builder/ConnectorImpl.java test/java/org/apache/tuscany/core/builder/LocalReferenceWiringTestCase.java

Author: jmarino
Date: Tue Jan  2 06:32:32 2007
New Revision: 491798

URL: http://svn.apache.org/viewvc?view=rev&rev=491798
Log:
handle illegal target types

Modified:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/LocalReferenceWiringTestCase.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=491798&r1=491797&r2=491798
==============================================================================
--- 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 Tue Jan  2 06:32:32 2007
@@ -420,6 +420,13 @@
                         serviceName);
                 }
                 SCAObject target = parent.getChild(targetName);
+                if (target instanceof Reference) {
+                    throw new InvalidTargetTypeException("Invalid target type",
+                        reference.getName(),
+                        null,
+                        targetName,
+                        serviceName);
+                }
                 connect(reference, outboundWire, target);
             }
 

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/LocalReferenceWiringTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/LocalReferenceWiringTestCase.java?view=diff&rev=491798&r1=491797&r2=491798
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/LocalReferenceWiringTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/LocalReferenceWiringTestCase.java Tue Jan  2 06:32:32 2007
@@ -1,5 +1,6 @@
 package org.apache.tuscany.core.builder;
 
+import java.util.Collections;
 import javax.xml.namespace.QName;
 
 import org.apache.tuscany.spi.QualifiedName;
@@ -111,6 +112,16 @@
         }
     }
 
+    public void testConnectLocalReferenceBindingToInvalidTarget() throws Exception {
+        createLocalReferenceToInvalidTarget();
+        try {
+            connector.connect(reference);
+            fail();
+        } catch (InvalidTargetTypeException e) {
+            // expected
+        }
+    }
+
     protected void setUp() throws Exception {
         super.setUp();
     }
@@ -220,6 +231,21 @@
         EasyMock.replay(parent);
         atomicComponent = createAtomicTarget();
         reference = createLocalReference(parent, TARGET_SERVICE_NAME);
+    }
+
+    private void createLocalReferenceToInvalidTarget() throws Exception {
+        CompositeComponent topComposite = EasyMock.createMock(CompositeComponent.class);
+        Reference reference = EasyMock.createNiceMock(Reference.class);
+        reference.getReferenceBindings();
+        EasyMock.expectLastCall().andReturn(Collections.emptyList());
+        EasyMock.replay(reference);
+        EasyMock.expect(topComposite.getChild(TARGET)).andReturn(reference);
+        EasyMock.replay(topComposite);
+
+        CompositeComponent parent = EasyMock.createMock(CompositeComponent.class);
+        EasyMock.expect(parent.getParent()).andReturn(topComposite);
+        EasyMock.replay(parent);
+        this.reference = createLocalReference(parent, TARGET_NAME);
     }
 
     private Service createService() throws WireConnectException {



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