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]

Reply via email to