Author: jmarino
Date: Tue Jan 9 09:31:51 2007
New Revision: 494498
URL: http://svn.apache.org/viewvc?view=rev&rev=494498
Log:
limit direct wiring of outbound and inbound wires to local binding
Modified:
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java
Modified:
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java?view=diff&rev=494498&r1=494497&r2=494498
==============================================================================
---
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
(original)
+++
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
Tue Jan 9 09:31:51 2007
@@ -20,9 +20,9 @@
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.HashMap;
import java.util.concurrent.ConcurrentHashMap;
import org.w3c.dom.Document;
@@ -57,7 +57,6 @@
* @version $$Rev$$ $$Date$$
*/
public abstract class CompositeComponentExtension extends
AbstractComponentExtension implements CompositeComponent {
-
protected final Map<String, SCAObject> children = new
ConcurrentHashMap<String, SCAObject>();
protected final List<Service> services = new ArrayList<Service>();
protected final List<Reference> references = new ArrayList<Reference>();
@@ -187,7 +186,10 @@
List<OutboundWire> wires = new ArrayList<OutboundWire>();
map.put(reference.getName(), wires);
for (ReferenceBinding binding :
reference.getReferenceBindings()) {
- wires.add(binding.getOutboundWire());
+ OutboundWire wire = binding.getOutboundWire();
+ if (Wire.LOCAL_BINDING.equals(wire.getBindingType())) {
+ wires.add(wire);
+ }
}
}
return map;
@@ -245,7 +247,10 @@
List<InboundWire> map = new ArrayList<InboundWire>();
for (Service service : services) {
for (ServiceBinding binding : service.getServiceBindings()) {
- map.add(binding.getInboundWire());
+ InboundWire wire = binding.getInboundWire();
+ if (Wire.LOCAL_BINDING.equals(wire.getBindingType())) {
+ map.add(wire);
+ }
}
}
return map;
Modified:
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java?view=diff&rev=494498&r1=494497&r2=494498
==============================================================================
---
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java
(original)
+++
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java
Tue Jan 9 09:31:51 2007
@@ -153,26 +153,115 @@
assertNotNull(composite.getInboundWire("service"));
}
+ public void testInboundWires() throws Exception {
+ ServiceContract<Object> contract = new
ServiceContract<Object>(Object.class) {
+ };
+ InboundWire wire = EasyMock.createMock(InboundWire.class);
+ EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING);
+ wire.getServiceContract();
+ EasyMock.expectLastCall().andReturn(contract).atLeastOnce();
+ EasyMock.replay(wire);
+ ServiceBinding binding = EasyMock.createMock(ServiceBinding.class);
+
EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce();
+ EasyMock.replay(binding);
- public void testGetOutboundWires() throws Exception {
+ Service service = EasyMock.createMock(Service.class);
+ EasyMock.expect(service.getName()).andReturn("service").atLeastOnce();
+ EasyMock.expect(service.isSystem()).andReturn(false).atLeastOnce();
+ List<ServiceBinding> bindings = new ArrayList<ServiceBinding>();
+ bindings.add(binding);
+ service.getServiceBindings();
+ EasyMock.expectLastCall().andReturn(bindings).atLeastOnce();
+ EasyMock.replay(service);
+ composite.register(service);
+ assertEquals(1, composite.getInboundWires().size());
+ }
+
+ public void testInboundWiresNonLocalBinding() throws Exception {
ServiceContract<Object> contract = new
ServiceContract<Object>(Object.class) {
};
InboundWire wire = EasyMock.createMock(InboundWire.class);
+ EasyMock.expect(wire.getBindingType()).andReturn(new QName("foo",
"foo"));
wire.getServiceContract();
EasyMock.expectLastCall().andReturn(contract).atLeastOnce();
EasyMock.replay(wire);
- ReferenceBinding binding = EasyMock.createMock(ReferenceBinding.class);
+ ServiceBinding binding = EasyMock.createMock(ServiceBinding.class);
EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce();
EasyMock.replay(binding);
+
+ Service service = EasyMock.createMock(Service.class);
+ EasyMock.expect(service.getName()).andReturn("service").atLeastOnce();
+ EasyMock.expect(service.isSystem()).andReturn(false).atLeastOnce();
+ List<ServiceBinding> bindings = new ArrayList<ServiceBinding>();
+ bindings.add(binding);
+ service.getServiceBindings();
+ EasyMock.expectLastCall().andReturn(bindings).atLeastOnce();
+ EasyMock.replay(service);
+ composite.register(service);
+ assertEquals(0, composite.getInboundWires().size());
+ }
+
+
+ public void testGetOutboundWires() throws Exception {
+ ServiceContract<Object> contract = new
ServiceContract<Object>(Object.class) {
+ };
+ InboundWire inboundWire = EasyMock.createMock(InboundWire.class);
+ inboundWire.getServiceContract();
+ EasyMock.expectLastCall().andReturn(contract).atLeastOnce();
+ EasyMock.replay(inboundWire);
+
+ OutboundWire outboundWire = EasyMock.createMock(OutboundWire.class);
+ outboundWire.getServiceContract();
+ EasyMock.expectLastCall().andReturn(contract).atLeastOnce();
+
EasyMock.expect(outboundWire.getBindingType()).andReturn(Wire.LOCAL_BINDING);
+ EasyMock.replay(outboundWire);
+
+ ReferenceBinding binding = EasyMock.createMock(ReferenceBinding.class);
+
EasyMock.expect(binding.getInboundWire()).andReturn(inboundWire).atLeastOnce();
+
EasyMock.expect(binding.getOutboundWire()).andReturn(outboundWire).atLeastOnce();
+ EasyMock.replay(binding);
+ Reference reference = EasyMock.createMock(Reference.class);
+
EasyMock.expect(reference.getName()).andReturn("reference").atLeastOnce();
+ EasyMock.expect(reference.isSystem()).andReturn(false).atLeastOnce();
+ List<ReferenceBinding> bindings = new ArrayList<ReferenceBinding>();
+ bindings.add(binding);
+
EasyMock.expect(reference.getReferenceBindings()).andReturn(bindings).atLeastOnce();
+ EasyMock.replay(reference);
+ composite.register(reference);
+ Map<String, List<OutboundWire>> wires = composite.getOutboundWires();
+ assertEquals(1, wires.get("reference").size());
+ }
+
+ public void testGetOutboundWiresWithNonLocalBinding() throws Exception {
+ ServiceContract<Object> contract = new
ServiceContract<Object>(Object.class) {
+ };
+ QName qName = new QName("foo", "foo");
+ InboundWire inboundWire = EasyMock.createMock(InboundWire.class);
+ EasyMock.expect(inboundWire.getBindingType()).andReturn(qName);
+ inboundWire.getServiceContract();
+ EasyMock.expectLastCall().andReturn(contract).atLeastOnce();
+ EasyMock.replay(inboundWire);
+
+ OutboundWire outboundWire = EasyMock.createMock(OutboundWire.class);
+ outboundWire.getServiceContract();
+ EasyMock.expectLastCall().andReturn(contract).atLeastOnce();
+ EasyMock.expect(outboundWire.getBindingType()).andReturn(qName);
+ EasyMock.replay(outboundWire);
+
+ ReferenceBinding binding = EasyMock.createMock(ReferenceBinding.class);
+
EasyMock.expect(binding.getInboundWire()).andReturn(inboundWire).atLeastOnce();
+
EasyMock.expect(binding.getOutboundWire()).andReturn(outboundWire).atLeastOnce();
+ EasyMock.replay(binding);
Reference reference = EasyMock.createMock(Reference.class);
EasyMock.expect(reference.getName()).andReturn("reference").atLeastOnce();
EasyMock.expect(reference.isSystem()).andReturn(false).atLeastOnce();
List<ReferenceBinding> bindings = new ArrayList<ReferenceBinding>();
+ bindings.add(binding);
EasyMock.expect(reference.getReferenceBindings()).andReturn(bindings).atLeastOnce();
EasyMock.replay(reference);
composite.register(reference);
Map<String, List<OutboundWire>> wires = composite.getOutboundWires();
- assertNotNull(wires.get("reference"));
+ assertEquals(0, wires.get("reference").size());
}
public void testInboundSystemWire() throws Exception {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]