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