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/02/17 09:35:25 UTC

svn commit: r508732 [4/8] - in /incubator/tuscany/java/sca: kernel/core/src/main/java/org/apache/tuscany/core/binding/local/ kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/ kernel/core/src/main/java/org/apache/tuscany/core/builder/ kernel/...

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryTestCase.java?view=diff&rev=508732&r1=508731&r2=508732
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryTestCase.java Sat Feb 17 00:35:19 2007
@@ -43,9 +43,7 @@
 import static org.apache.tuscany.spi.model.Multiplicity.ONE_ONE;
 import org.apache.tuscany.spi.model.ReferenceDefinition;
 import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.model.ServiceDefinition;
-import org.apache.tuscany.spi.wire.WireService;
 
 import junit.framework.TestCase;
 import org.apache.tuscany.core.component.ComponentManager;
@@ -63,7 +61,7 @@
     public void testRegistration() throws Exception {
         MockBuilder builder = new MockBuilder();
         ComponentManager componentManager = EasyMock.createNiceMock(ComponentManager.class);
-        BuilderRegistry registry = new BuilderRegistryImpl(null, null, componentManager);
+        BuilderRegistry registry = new BuilderRegistryImpl(null, componentManager);
         registry.register(CompositeImplementation.class, builder);
         CompositeImplementation implementation = new CompositeImplementation();
         ComponentDefinition<CompositeImplementation> componentDefinition =
@@ -74,13 +72,7 @@
 
     @SuppressWarnings({"unchecked"})
     public void testServiceBindingBuilderDispatch() throws Exception {
-        WireService wireService = EasyMock.createMock(WireService.class);
-        wireService.createWires(EasyMock.isA(ServiceBinding.class),
-            (ServiceContract) EasyMock.isNull(), EasyMock.isA(String.class)
-        );
-        EasyMock.expectLastCall().times(2);
-        EasyMock.replay(wireService);
-        BuilderRegistry registry = new BuilderRegistryImpl(null, wireService, null);
+        BuilderRegistry registry = new BuilderRegistryImpl(null, null);
         ServiceBinding binding = EasyMock.createNiceMock(ServiceBinding.class);
         EasyMock.replay(binding);
         BindingBuilder<MockBindingDefinition> builder = EasyMock.createMock(BindingBuilder.class);
@@ -96,18 +88,11 @@
         definition.setTarget(new URI("foo"));
         Service service = registry.build(parent, definition, deploymentContext);
         assertEquals(2, service.getServiceBindings().size());
-        EasyMock.verify(wireService);
     }
 
     @SuppressWarnings({"unchecked"})
     public void testReferenceBindingBuilderDispatch() throws Exception {
-        WireService wireService = EasyMock.createMock(WireService.class);
-        wireService.createWires(EasyMock.isA(ReferenceBinding.class),
-            (ServiceContract) EasyMock.isNull(), (URI) EasyMock.isNull()
-        );
-        EasyMock.expectLastCall().times(2);
-        EasyMock.replay(wireService);
-        BuilderRegistry registry = new BuilderRegistryImpl(null, wireService, null);
+        BuilderRegistry registry = new BuilderRegistryImpl(null, null);
         ReferenceBinding binding = EasyMock.createNiceMock(ReferenceBinding.class);
         EasyMock.replay(binding);
         BindingBuilder<MockBindingDefinition> builder = EasyMock.createMock(BindingBuilder.class);
@@ -122,7 +107,6 @@
         definition.addBinding(new MockBindingDefinition());
         Reference reference = registry.build(parent, definition, deploymentContext);
         assertEquals(2, reference.getReferenceBindings().size());
-        EasyMock.verify(wireService);
     }
 
     @SuppressWarnings({"unchecked"})
@@ -131,12 +115,8 @@
         ScopeContainer scopeContainer = EasyMock.createNiceMock(ScopeContainer.class);
         EasyMock.expect(scopeRegistry.getScopeContainer(EasyMock.isA(Scope.class))).andReturn(scopeContainer);
         EasyMock.replay(scopeRegistry);
-        WireService wireService = EasyMock.createMock(WireService.class);
-        wireService.createWires(EasyMock.isA(AtomicComponent.class),
-            EasyMock.isA(ComponentDefinition.class));
-        EasyMock.replay(wireService);
         ComponentManager componentManager = EasyMock.createNiceMock(ComponentManager.class);
-        BuilderRegistry registry = new BuilderRegistryImpl(scopeRegistry, wireService, componentManager);
+        BuilderRegistry registry = new BuilderRegistryImpl(scopeRegistry, componentManager);
 
         AtomicComponent component = EasyMock.createNiceMock(AtomicComponent.class);
         EasyMock.replay(component);
@@ -153,7 +133,6 @@
         ComponentDefinition<FooImplementation> definition = new ComponentDefinition<FooImplementation>(uri, impl);
         Component ret = registry.build(parent, definition, deploymentContext);
         assertNotNull(ret);
-        EasyMock.verify(wireService);
     }
 
     @SuppressWarnings({"unchecked"})
@@ -162,11 +141,7 @@
         ScopeContainer scopeContainer = EasyMock.createNiceMock(ScopeContainer.class);
         EasyMock.expect(scopeRegistry.getScopeContainer(EasyMock.isA(Scope.class))).andReturn(scopeContainer);
         EasyMock.replay(scopeRegistry);
-        WireService wireService = EasyMock.createMock(WireService.class);
-        wireService.createWires(EasyMock.isA(AtomicComponent.class),
-            EasyMock.isA(ComponentDefinition.class));
-        EasyMock.replay(wireService);
-        BuilderRegistry registry = new BuilderRegistryImpl(scopeRegistry, wireService, null);
+        BuilderRegistry registry = new BuilderRegistryImpl(scopeRegistry, null);
 
         AtomicComponent component = EasyMock.createNiceMock(AtomicComponent.class);
         EasyMock.replay(component);

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplTestCase.java?view=diff&rev=508732&r1=508731&r2=508732
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplTestCase.java Sat Feb 17 00:35:19 2007
@@ -21,173 +21,147 @@
 import java.lang.reflect.Type;
 import java.net.URI;
 import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import javax.xml.namespace.QName;
 
 import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.ReferenceBinding;
-import org.apache.tuscany.spi.component.SCAObject;
+import org.apache.tuscany.spi.component.Component;
+import org.apache.tuscany.spi.model.ComponentDefinition;
+import org.apache.tuscany.spi.model.ComponentType;
+import org.apache.tuscany.spi.model.Implementation;
 import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.spi.model.Property;
+import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.ReferenceTarget;
 import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.wire.InboundInvocationChain;
-import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.model.ServiceContract;
+import org.apache.tuscany.spi.model.ServiceDefinition;
 import org.apache.tuscany.spi.wire.Interceptor;
-import org.apache.tuscany.spi.wire.Message;
-import org.apache.tuscany.spi.wire.MessageImpl;
-import org.apache.tuscany.spi.wire.OutboundInvocationChain;
-import org.apache.tuscany.spi.wire.OutboundWire;
-import org.apache.tuscany.spi.wire.TargetInvoker;
+import org.apache.tuscany.spi.wire.InvocationChain;
+import org.apache.tuscany.spi.wire.Wire;
 
-import org.apache.tuscany.core.wire.InboundInvocationChainImpl;
-import org.apache.tuscany.core.wire.InboundWireImpl;
+import junit.framework.TestCase;
+import org.apache.tuscany.core.component.ComponentManager;
+import org.apache.tuscany.core.component.ComponentManagerImpl;
 import org.apache.tuscany.core.wire.InvokerInterceptor;
-import org.apache.tuscany.core.wire.OutboundInvocationChainImpl;
-import org.apache.tuscany.core.wire.OutboundWireImpl;
-import org.apache.tuscany.core.wire.SynchronousBridgingInterceptor;
+import org.apache.tuscany.core.wire.NonBlockingInterceptor;
 import org.easymock.EasyMock;
 
 /**
  * @version $Rev$ $Date$
  */
-public class ConnectorImplTestCase extends AbstractConnectorImplTestCase {
+public class ConnectorImplTestCase extends TestCase {
+    private TestConnector connector;
+    private ComponentManager manager;
 
     public void testConnectTargetNotFound() throws Exception {
-        CompositeComponent parent = EasyMock.createMock(CompositeComponent.class);
-        EasyMock.replay(parent);
+        Implementation<ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>> impl =
+            new Implementation<ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>>() {
+            };
+        ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
+            new ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
+        URI refUri = URI.create("ref");
+        ReferenceDefinition referenceDefinition = new ReferenceDefinition(refUri, null);
+        referenceDefinition.setRequired(true);
+        type.add(referenceDefinition);
+        impl.setComponentType(type);
+
+        URI sourceUri = URI.create("source");
+        ComponentDefinition<?> definition =
+            new ComponentDefinition<Implementation<ComponentType<ServiceDefinition,
+                ReferenceDefinition, Property<?>>>>(impl);
+        definition.setUri(sourceUri);
+        ReferenceTarget referenceTarget = new ReferenceTarget();
+        referenceTarget.setReferenceName(refUri);
+        referenceTarget.addTarget(URI.create("NotThere"));
+        definition.add(referenceTarget);
+        Component component = EasyMock.createMock(Component.class);
+        EasyMock.expect(component.getUri()).andReturn(sourceUri);
+        EasyMock.replay(component);
+        manager.register(component);
         try {
-            AtomicComponent source = createAtomicSource(parent);
-            connector.connect(source);
+            connector.connect(definition);
             fail();
-        } catch (TargetComponentNotFoundException e) {
+        } catch (ComponentNotFoundException e) {
             // expected
         }
     }
 
     /**
-     * Verifies that stateless targets with a destructor are not optimized as the destructor callback event must be
-     * issued by the TargetInvoker after it dispatches to the target
+     * Verifies a non-existent target does not throw an error.
+     * <p/>
+     * TODO JFM when the allocator is in place it should optimize connecting to non-existent targets but keep it for
+     * now
      */
-    public void testOutboundToInboundNonOptimizableComponent() throws Exception {
-        AtomicComponent container = EasyMock.createMock(AtomicComponent.class);
-        EasyMock.expect(container.getUri()).andReturn(URI.create("source"));
-        EasyMock.expect(container.isOptimizable()).andReturn(false);
-        EasyMock.replay(container);
-        InboundWire inboundWire = new InboundWireImpl();
-        inboundWire.setSourceUri(URI.create("target"));
-        OutboundWire outboundWire = EasyMock.createMock(OutboundWire.class);
-        outboundWire.getOutboundInvocationChains();
-        EasyMock.expectLastCall().andReturn(Collections.emptyMap()).atLeastOnce();
-        outboundWire.getTargetCallbackInvocationChains();
-        EasyMock.expectLastCall().andReturn(Collections.emptyMap()).atLeastOnce();
-        EasyMock.expect(outboundWire.getTargetUri()).andReturn(URI.create("target")).atLeastOnce();
-        EasyMock.replay(outboundWire);
-        connector.connect(container, outboundWire, container, inboundWire, true);
-        EasyMock.verify(container);
-        EasyMock.verify(outboundWire);
-    }
-
-    /**
-     * Verifies non-Atomic targets are not optimized
-     */
-    public void testOutboundToInboundNoOptimizationNonAtomicTarget() throws Exception {
-        ReferenceBinding container = EasyMock.createMock(ReferenceBinding.class);
-        EasyMock.expect(container.getUri()).andReturn(URI.create("source"));
-        EasyMock.replay(container);
-        InboundWire inboundWire = new InboundWireImpl();
-        inboundWire.setSourceUri(URI.create("target"));
-        OutboundWire outboundWire = EasyMock.createMock(OutboundWire.class);
-        outboundWire.getOutboundInvocationChains();
-        EasyMock.expectLastCall().andReturn(Collections.emptyMap()).atLeastOnce();
-        outboundWire.getTargetCallbackInvocationChains();
-        EasyMock.expectLastCall().andReturn(Collections.emptyMap()).atLeastOnce();
-        EasyMock.expect(outboundWire.getTargetUri()).andReturn(URI.create("target")).atLeastOnce();
-        EasyMock.replay(outboundWire);
-
-        connector.connect(container, outboundWire, container, inboundWire, true);
-        EasyMock.verify(container);
-        EasyMock.verify(outboundWire);
-    }
-
-    public void testOutboundToInboundChainConnect() throws Exception {
-        TargetInvoker invoker = new MockInvoker();
-        InboundInvocationChain inboundChain = new InboundInvocationChainImpl(operation);
-        inboundChain.addInterceptor(new InvokerInterceptor());
-        OutboundInvocationChain outboundChain = new OutboundInvocationChainImpl(operation);
-        connector.connect(outboundChain, inboundChain, invoker, false);
-        Interceptor interceptor = outboundChain.getHeadInterceptor();
-        assertTrue(interceptor instanceof SynchronousBridgingInterceptor);
-        MessageImpl msg = new MessageImpl();
-        msg.setTargetInvoker(new MockInvoker());
-        Message resp = interceptor.invoke(msg);
-        assertEquals(RESPONSE, resp.getBody());
-    }
-
-    public void testOutboundToInboundChainConnectNoInboundInterceptor() {
-        TargetInvoker invoker = new MockInvoker();
-        InboundInvocationChain inboundChain = new InboundInvocationChainImpl(operation);
-        OutboundInvocationChain outboundChain = new OutboundInvocationChainImpl(operation);
-        try {
-            connector.connect(outboundChain, inboundChain, invoker, false);
-            fail();
-        } catch (WireConnectException e) {
-            // expected
-        }
-    }
-
-    public void testInboundToOutboundChainConnect() throws Exception {
-        InboundInvocationChain inboundChain = new InboundInvocationChainImpl(operation);
-        OutboundInvocationChain outboundChain = new OutboundInvocationChainImpl(operation);
-        outboundChain.addInterceptor(new InvokerInterceptor());
-        connector.connect(inboundChain, outboundChain);
-        Interceptor interceptor = inboundChain.getHeadInterceptor();
-        assertTrue(interceptor instanceof SynchronousBridgingInterceptor);
-        MessageImpl msg = new MessageImpl();
-        msg.setTargetInvoker(new MockInvoker());
-        Message resp = interceptor.invoke(msg);
-        assertEquals(RESPONSE, resp.getBody());
-    }
-
-    public void testInboundToOutboundChainConnectNoOutboundInterceptors() throws Exception {
-        InboundInvocationChain inboundChain = new InboundInvocationChainImpl(operation);
-        OutboundInvocationChain outboundChain = new OutboundInvocationChainImpl(operation);
-        try {
-            connector.connect(inboundChain, outboundChain);
-            fail();
-        } catch (WireConnectException e) {
-            // expected
-        }
-    }
-
-    public void testIncompatibleInboundOutboundWiresConnect() throws Exception {
-        Operation<Type> operation = new Operation<Type>("bar", null, null, null);
-        InboundWire inboundWire = new InboundWireImpl();
-        inboundWire.addInboundInvocationChain(operation, new InboundInvocationChainImpl(operation));
-        OutboundWire outboundWire = new OutboundWireImpl();
-        outboundWire.setSourceUri(URI.create("target"));
-        try {
-            connector.connect(null, inboundWire, null, outboundWire, false);
-            fail();
-        } catch (IncompatibleInterfacesException e) {
-            // expected
-        }
-
-    }
-
-    public void testIncompatibleOutboundInboundWiresConnect() throws Exception {
-        SCAObject container = EasyMock.createNiceMock(SCAObject.class);
-        EasyMock.replay(container);
-        Operation<Type> operation = new Operation<Type>("bar", null, null, null);
-        InboundWire inboundWire = new InboundWireImpl();
-        inboundWire.setSourceUri(URI.create("sca://foo"));
-        OutboundWire outboundWire = new OutboundWireImpl();
-        outboundWire.setTargetUri(URI.create("target"));
-        outboundWire.addOutboundInvocationChain(operation, new OutboundInvocationChainImpl(operation));
-        try {
-            connector.connect(container, outboundWire, container, inboundWire, false);
-            fail();
-        } catch (IncompatibleInterfacesException e) {
-            // expected
-        }
-
+    public void testConnectTargetNotFoundNonRequiredReference() throws Exception {
+        Implementation<ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>> impl =
+            new Implementation<ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>>() {
+            };
+        ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
+            new ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
+        URI refUri = URI.create("ref");
+        ReferenceDefinition referenceDefinition = new ReferenceDefinition(refUri, null);
+        referenceDefinition.setRequired(false);
+        type.add(referenceDefinition);
+        impl.setComponentType(type);
+
+        URI sourceUri = URI.create("source");
+        ComponentDefinition<?> definition =
+            new ComponentDefinition<Implementation<ComponentType<ServiceDefinition,
+                ReferenceDefinition, Property<?>>>>(impl);
+        definition.setUri(sourceUri);
+        ReferenceTarget referenceTarget = new ReferenceTarget();
+        referenceTarget.setReferenceName(refUri);
+        referenceTarget.addTarget(URI.create("NotThere"));
+        definition.add(referenceTarget);
+        Component component = EasyMock.createMock(Component.class);
+        EasyMock.expect(component.getUri()).andReturn(sourceUri);
+        EasyMock.replay(component);
+        manager.register(component);
+        connector.connect(definition);
+    }
+
+    public void testNonOptimizableTargetComponent() throws Exception {
+        AtomicComponent source = EasyMock.createMock(AtomicComponent.class);
+        EasyMock.expect(source.getScope()).andReturn(Scope.COMPOSITE);
+        EasyMock.replay(source);
+
+        AtomicComponent target = EasyMock.createMock(AtomicComponent.class);
+        EasyMock.expect(target.getScope()).andReturn(Scope.COMPOSITE);
+        EasyMock.expect(target.isOptimizable()).andReturn(false);
+        EasyMock.replay(target);
+
+        Wire wire = EasyMock.createMock(Wire.class);
+        wire.setOptimizable(false);
+        EasyMock.replay(wire);
+        connector.optimize(source, target, wire);
+        EasyMock.verify(source);
+        EasyMock.verify(target);
+        EasyMock.verify(wire);
+    }
+
+    public void testOptimizableTargetComponent() throws Exception {
+        AtomicComponent source = EasyMock.createMock(AtomicComponent.class);
+        EasyMock.expect(source.getScope()).andReturn(Scope.COMPOSITE);
+        EasyMock.replay(source);
+
+        AtomicComponent target = EasyMock.createMock(AtomicComponent.class);
+        EasyMock.expect(target.getScope()).andReturn(Scope.COMPOSITE);
+        EasyMock.expect(target.isOptimizable()).andReturn(true);
+        EasyMock.replay(target);
+
+        Wire wire = EasyMock.createMock(Wire.class);
+        wire.setOptimizable(true);
+        wire.setTarget(EasyMock.eq(target));
+        wire.getInvocationChains();
+        EasyMock.expectLastCall().andReturn(Collections.emptyMap());
+        wire.getCallbackInvocationChains();
+        EasyMock.expectLastCall().andReturn(Collections.emptyMap());
+        EasyMock.replay(wire);
+        connector.optimize(source, target, wire);
+        EasyMock.verify(source);
+        EasyMock.verify(target);
     }
 
     public void testIsOptimizable() {
@@ -242,17 +216,105 @@
 
     }
 
-    public void testInvalidConnectObject() throws Exception {
-        try {
-            connector.connect(EasyMock.createNiceMock(SCAObject.class));
-            fail();
-        } catch (AssertionError e) {
-            // expected
-        }
+    public void testCreateSyncForwardWire() throws Exception {
+        ServiceContract<Type> contract = new ServiceContract<Type>() {
+
+        };
+        Operation<Type> operation = new Operation<Type>("operation", null, null, null);
+        Map<String, Operation<Type>> operations = new HashMap<String, Operation<Type>>();
+        operations.put("operation", operation);
+        contract.setOperations(operations);
+        Wire wire = connector.createWire(URI.create("target"), URI.create("#ref"), contract, Wire.LOCAL_BINDING);
+        assertEquals(1, wire.getInvocationChains().size());
+        InvocationChain chain = wire.getInvocationChains().get(operation);
+        Interceptor head = chain.getHeadInterceptor();
+        assertTrue(head instanceof InvokerInterceptor);
+    }
+
+    public void testCreateSyncCallbackWire() throws Exception {
+        ServiceContract<Type> contract = new ServiceContract<Type>() {
+
+        };
+
+        Operation<Type> operation = new Operation<Type>("operation", null, null, null);
+        Map<String, Operation<Type>> operations = new HashMap<String, Operation<Type>>();
+        operations.put("operation", operation);
+        contract.setOperations(operations);
+
+        Operation<Type> callbackOperation = new Operation<Type>("operation", null, null, null);
+        Map<String, Operation<Type>> callbackOperations = new HashMap<String, Operation<Type>>();
+        callbackOperations.put("operation", callbackOperation);
+        contract.setCallbackOperations(callbackOperations);
+
+        Wire wire = connector.createWire(URI.create("target"), URI.create("#ref"), contract, Wire.LOCAL_BINDING);
+        assertEquals(1, wire.getCallbackInvocationChains().size());
+        InvocationChain chain = wire.getCallbackInvocationChains().get(callbackOperation);
+        Interceptor head = chain.getHeadInterceptor();
+        assertTrue(head instanceof InvokerInterceptor);
+    }
+
+    public void testCreateNonBlockingForwardWire() throws Exception {
+        ServiceContract<Type> contract = new ServiceContract<Type>() {
+
+        };
+        Operation<Type> operation = new Operation<Type>("operation", null, null, null);
+        operation.setNonBlocking(true);
+        Map<String, Operation<Type>> operations = new HashMap<String, Operation<Type>>();
+        operations.put("operation", operation);
+        contract.setOperations(operations);
+        Wire wire = connector.createWire(URI.create("target"), URI.create("#ref"), contract, Wire.LOCAL_BINDING);
+        assertEquals(1, wire.getInvocationChains().size());
+        InvocationChain chain = wire.getInvocationChains().get(operation);
+        Interceptor head = chain.getHeadInterceptor();
+        assertTrue(head instanceof NonBlockingInterceptor);
+        assertTrue(head.getNext() instanceof InvokerInterceptor);
+    }
+
+    public void testCreateNonBlockingCallbackWire() throws Exception {
+        ServiceContract<Type> contract = new ServiceContract<Type>() {
+
+        };
+
+        Operation<Type> operation = new Operation<Type>("operation", null, null, null);
+        operation.setNonBlocking(true);
+        Map<String, Operation<Type>> operations = new HashMap<String, Operation<Type>>();
+        operations.put("operation", operation);
+        contract.setOperations(operations);
+
+        Operation<Type> callbackOperation = new Operation<Type>("operation", null, null, null);
+        callbackOperation.setNonBlocking(true);
+        Map<String, Operation<Type>> callbackOperations = new HashMap<String, Operation<Type>>();
+        callbackOperations.put("operation", callbackOperation);
+        contract.setCallbackOperations(callbackOperations);
+
+        Wire wire = connector.createWire(URI.create("target"), URI.create("#ref"), contract, Wire.LOCAL_BINDING);
+        assertEquals(1, wire.getCallbackInvocationChains().size());
+        InvocationChain chain = wire.getCallbackInvocationChains().get(callbackOperation);
+        Interceptor head = chain.getHeadInterceptor();
+        assertTrue(head instanceof NonBlockingInterceptor);
+        assertTrue(head.getNext() instanceof InvokerInterceptor);
     }
 
     protected void setUp() throws Exception {
         super.setUp();
+        manager = new ComponentManagerImpl();
+        connector = new TestConnector(manager);
+    }
+
+    private class TestConnector extends ConnectorImpl {
+
+        public TestConnector(ComponentManager componentManager) {
+            super(componentManager);
+        }
+
+        protected Wire createWire(URI sourceURI, URI targetUri, ServiceContract<?> contract, QName bindingType) {
+            return super.createWire(sourceURI, targetUri, contract, bindingType);
+        }
+
+        public boolean isOptimizable(Scope pReferrer, Scope pReferee) {
+            return super.isOptimizable(pReferrer, pReferee);
+        }
+
     }
 
 }

Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/InvalidSourceTypeExceptionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/InvalidSourceTypeExceptionTestCase.java?view=auto&rev=508732
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/InvalidSourceTypeExceptionTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/InvalidSourceTypeExceptionTestCase.java Sat Feb 17 00:35:19 2007
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.core.builder;
+
+import java.net.URI;
+
+import junit.framework.TestCase;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class InvalidSourceTypeExceptionTestCase extends TestCase {
+
+    public void testInstantiation() throws Exception {
+        URI sourceUri = URI.create("source");
+        URI targetUri = URI.create("target");
+        InvalidSourceTypeException e = new InvalidSourceTypeException("message", sourceUri, targetUri);
+        assertEquals("message", e.getMessage());
+        assertEquals(sourceUri, e.getSourceUri());
+        assertEquals(targetUri, e.getTargetUri());
+
+    }
+}

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/InvalidSourceTypeExceptionTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/InvalidSourceTypeExceptionTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ReferenceConnectorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ReferenceConnectorTestCase.java?view=diff&rev=508732&r1=508731&r2=508732
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ReferenceConnectorTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ReferenceConnectorTestCase.java Sat Feb 17 00:35:19 2007
@@ -20,143 +20,138 @@
 
 import java.net.URI;
 
+import org.apache.tuscany.spi.builder.WiringException;
 import org.apache.tuscany.spi.component.AtomicComponent;
+import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.component.Reference;
 import org.apache.tuscany.spi.component.ReferenceBinding;
+import org.apache.tuscany.spi.idl.java.JavaInterfaceProcessorRegistry;
+import org.apache.tuscany.spi.model.BindingDefinition;
 import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.spi.model.ReferenceDefinition;
 import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.wire.InboundInvocationChain;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.Interceptor;
-import org.apache.tuscany.spi.wire.Message;
-import org.apache.tuscany.spi.wire.MessageImpl;
-import org.apache.tuscany.spi.wire.OutboundInvocationChain;
-import org.apache.tuscany.spi.wire.OutboundWire;
+import org.apache.tuscany.spi.wire.Wire;
 
+import junit.framework.TestCase;
+import org.apache.tuscany.core.component.ComponentManager;
+import org.apache.tuscany.core.component.ComponentManagerImpl;
+import org.apache.tuscany.core.idl.java.JavaInterfaceProcessorRegistryImpl;
+import org.apache.tuscany.core.implementation.composite.CompositeComponentImpl;
 import org.apache.tuscany.core.implementation.composite.ReferenceImpl;
-import org.apache.tuscany.core.wire.InboundInvocationChainImpl;
-import org.apache.tuscany.core.wire.InboundWireImpl;
-import org.apache.tuscany.core.wire.InvokerInterceptor;
-import org.apache.tuscany.core.wire.OutboundInvocationChainImpl;
-import org.apache.tuscany.core.wire.OutboundWireImpl;
 import org.easymock.EasyMock;
 
 /**
  * @version $Rev$ $Date$
  */
-public class ReferenceConnectorTestCase extends AbstractConnectorImplTestCase {
+public class ReferenceConnectorTestCase extends TestCase {
+    private static final URI PARENT = URI.create("parent");
+    private static final URI SOURCE = URI.create("parent#source");
+    private static final URI TARGET = URI.create("parent/target");
+    private static final URI REFERENCE_TARGET = URI.create("parent#target");
+    private ComponentManager manager;
+    private MockConnnector connector;
+    private ServiceContract<?> contract;
+
+    /**
+     * Verifies connecting a wire from an atomic component to a target atomic component
+     */
+    @SuppressWarnings({"unchecked"})
+    public void testConnectToAtomic() throws Exception {
+        ReferenceBinding binding = EasyMock.createMock(ReferenceBinding.class);
+        EasyMock.expect(binding.getTargetUri()).andReturn(TARGET);
+        EasyMock.expect(binding.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce();
+        binding.getBindingServiceContract();
+        EasyMock.expectLastCall().andReturn(contract);
+        binding.setWire(EasyMock.isA(Wire.class));
+        EasyMock.replay(binding);
+
+        Reference reference = new ReferenceImpl(SOURCE, contract);
+        reference.addReferenceBinding(binding);
+
+        CompositeComponent component = new CompositeComponentImpl(PARENT);
+        component.register(reference);
+        manager.register(component);
+
+
+        AtomicComponent target = EasyMock.createMock(AtomicComponent.class);
+        EasyMock.expect(target.getUri()).andReturn(TARGET).atLeastOnce();
+        target.createTargetInvoker((String) EasyMock.isNull(), EasyMock.isA(Operation.class));
+        EasyMock.expectLastCall().andReturn(null);
+        EasyMock.replay(target);
+        manager.register(target);
 
-    public void testConnectReferenceWiresNoInboundInterceptors() throws Exception {
-        URI referenceUri = URI.create("foo");
-        InboundInvocationChain inboundChain = new InboundInvocationChainImpl(operation);
-        InboundWire inboundWire = new InboundWireImpl();
-        inboundWire.setServiceContract(contract);
-        inboundWire.addInboundInvocationChain(operation, inboundChain);
-        inboundWire.setSourceUri(referenceUri);
-
-        OutboundInvocationChain outboundChain = new OutboundInvocationChainImpl(operation);
-        // Outbound chains always contains at least one interceptor
-        outboundChain.addInterceptor(new InvokerInterceptor());
-        OutboundWire outboundWire = new OutboundWireImpl();
-        outboundWire.setServiceContract(contract);
-        outboundWire.setTargetUri(TARGET_NAME);
-        outboundWire.addOutboundInvocationChain(operation, outboundChain);
-        outboundWire.setSourceUri(referenceUri);
-
-        ReferenceBinding referenceBinding = EasyMock.createMock(ReferenceBinding.class);
-        referenceBinding.setReference(EasyMock.isA(Reference.class));
-        EasyMock.expect(referenceBinding.createTargetInvoker(contract, operation)).andReturn(null);
-        EasyMock.expect(referenceBinding.getInboundWire()).andReturn(inboundWire);
-        EasyMock.expect(referenceBinding.getOutboundWire()).andReturn(outboundWire);
-        EasyMock.replay(referenceBinding);
-
-        Reference reference = new ReferenceImpl(referenceUri, contract);
-        reference.addReferenceBinding(referenceBinding);
-
-        connector.connect(reference);
-
-        EasyMock.verify(referenceBinding);
-        Interceptor interceptor = inboundChain.getHeadInterceptor();
-        MessageImpl msg = new MessageImpl();
-        msg.setTargetInvoker(new MockInvoker());
-        Message resp = interceptor.invoke(msg);
-        assertEquals(RESPONSE, resp.getBody());
-    }
+        ReferenceDefinition definition = new ReferenceDefinition(SOURCE, contract);
+        BindingDefinition bindingDefinition = new BindingDefinition(TARGET) {
+        };
+        definition.addBinding(bindingDefinition);
 
-    public void testConnectReferenceWiresWithInboundInterceptors() throws Exception {
-        URI referenceUri = URI.create("foo");
-        MockInterceptor inboundInterceptor = new MockInterceptor();
-        InboundInvocationChain inboundChain = new InboundInvocationChainImpl(operation);
-        inboundChain.addInterceptor(inboundInterceptor);
-        InboundWire inboundWire = new InboundWireImpl();
-        inboundWire.setServiceContract(contract);
-        inboundWire.addInboundInvocationChain(operation, inboundChain);
-        inboundWire.setSourceUri(referenceUri);
-        OutboundInvocationChain outboundChain = new OutboundInvocationChainImpl(operation);
-        // Outbound always contains at lease one interceptor
-        outboundChain.addInterceptor(new InvokerInterceptor());
-        OutboundWire outboundWire = new OutboundWireImpl();
-        outboundWire.setServiceContract(contract);
-        outboundWire.setSourceUri(referenceUri);
-        outboundWire.setTargetUri(TARGET_NAME);
-        outboundWire.addOutboundInvocationChain(operation, outboundChain);
-
-        ReferenceBinding referenceBinding = EasyMock.createMock(ReferenceBinding.class);
-        referenceBinding.setReference(EasyMock.isA(Reference.class));
-        EasyMock.expect(referenceBinding.createTargetInvoker(contract, operation)).andReturn(null);
-        EasyMock.expect(referenceBinding.getInboundWire()).andReturn(inboundWire);
-        EasyMock.expect(referenceBinding.getOutboundWire()).andReturn(outboundWire);
-        EasyMock.replay(referenceBinding);
-
-        Reference reference = new ReferenceImpl(referenceUri, contract);
-        reference.addReferenceBinding(referenceBinding);
-
-        connector.connect(reference);
-
-        EasyMock.verify(referenceBinding);
-        Interceptor interceptor = inboundChain.getHeadInterceptor();
-        MessageImpl msg = new MessageImpl();
-        msg.setTargetInvoker(new MockInvoker());
-        Message resp = interceptor.invoke(msg);
-        assertEquals(RESPONSE, resp.getBody());
-        assertTrue(inboundInterceptor.isInvoked());
+        connector.connect(definition);
+
+        EasyMock.verify(binding);
+        EasyMock.verify(target);
     }
 
-    public void testOutboundWireToInboundReferenceTarget() throws Exception {
-        AtomicComponent source = EasyMock.createMock(AtomicComponent.class);
-        EasyMock.expect(source.getUri()).andReturn(URI.create("source"));
-        EasyMock.replay(source);
-
-        ReferenceBinding target = EasyMock.createMock(ReferenceBinding.class);
-        EasyMock.expect(target.createTargetInvoker(EasyMock.isA(ServiceContract.class), EasyMock.isA(Operation.class)))
-            .andReturn(new MockInvoker());
-        EasyMock.replay(target);
+    @SuppressWarnings({"unchecked"})
+    public void testConnectToReference() throws Exception {
+        ReferenceBinding binding = EasyMock.createMock(ReferenceBinding.class);
+        EasyMock.expect(binding.getTargetUri()).andReturn(REFERENCE_TARGET);
+        EasyMock.expect(binding.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce();
+        binding.getBindingServiceContract();
+        EasyMock.expectLastCall().andReturn(contract);
+        binding.setWire(EasyMock.isA(Wire.class));
+        EasyMock.replay(binding);
+
+        Reference reference = new ReferenceImpl(SOURCE, contract);
+        reference.addReferenceBinding(binding);
+
+        CompositeComponent component = new CompositeComponentImpl(PARENT);
+        component.register(reference);
+
+        ReferenceBinding refBinding = EasyMock.createMock(ReferenceBinding.class);
+        EasyMock.expect(refBinding.getUri()).andReturn(REFERENCE_TARGET).atLeastOnce();
+        refBinding.createTargetInvoker(EasyMock.isA(String.class), EasyMock.isA(Operation.class));
+        EasyMock.expectLastCall().andReturn(null);
+        EasyMock.replay(refBinding);
+        Reference target = new ReferenceImpl(REFERENCE_TARGET, contract);
+        target.addReferenceBinding(refBinding);
+        component.register(target);
+        manager.register(component);
+
+        ReferenceDefinition definition = new ReferenceDefinition(SOURCE, contract);
+        BindingDefinition bindingDefinition = new BindingDefinition(TARGET) {
+        };
+        definition.addBinding(bindingDefinition);
 
-        InboundInvocationChain inboundChain = new InboundInvocationChainImpl(operation);
-        inboundChain.addInterceptor(new InvokerInterceptor());
-        InboundWire targetWire = new InboundWireImpl();
-        targetWire.setServiceContract(contract);
-        targetWire.addInboundInvocationChain(operation, inboundChain);
-        targetWire.setSourceUri(TARGET_NAME);
-        // create the outbound wire and chain from the source component
-        OutboundInvocationChain sourceChain = new OutboundInvocationChainImpl(operation);
-        OutboundWire sourceWire = new OutboundWireImpl();
-        sourceWire.setServiceContract(contract);
-        sourceWire.setTargetUri(TARGET_NAME);
-        sourceWire.addOutboundInvocationChain(operation, sourceChain);
-
-        connector.connect(source, sourceWire, target, targetWire, false);
-        Interceptor interceptor = sourceChain.getHeadInterceptor();
-        MessageImpl msg = new MessageImpl();
-        msg.setTargetInvoker(new MockInvoker());
-        Message resp = interceptor.invoke(msg);
-        assertEquals(RESPONSE, resp.getBody());
+        connector.connect(definition);
+
+        EasyMock.verify(binding);
+        EasyMock.verify(refBinding);
     }
 
+
     protected void setUp() throws Exception {
         super.setUp();
-        AtomicComponent source = EasyMock.createNiceMock(AtomicComponent.class);
-        EasyMock.replay(source);
+        manager = new ComponentManagerImpl();
+        connector = new MockConnnector(manager);
+        JavaInterfaceProcessorRegistry registry = new JavaInterfaceProcessorRegistryImpl();
+        contract = registry.introspect(Foo.class);
     }
+
+
+    private interface Foo {
+        void bar();
+    }
+
+    private class MockConnnector extends ConnectorImpl {
+
+        public MockConnnector(ComponentManager componentManager) {
+            super(componentManager);
+        }
+
+        public void connect(ReferenceDefinition definition) throws WiringException {
+            super.connect(definition);
+        }
+    }
+
 
 }

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ServiceConnectorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ServiceConnectorTestCase.java?view=diff&rev=508732&r1=508731&r2=508732
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ServiceConnectorTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ServiceConnectorTestCase.java Sat Feb 17 00:35:19 2007
@@ -20,121 +20,134 @@
 
 import java.net.URI;
 
+import org.apache.tuscany.spi.builder.WiringException;
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.Reference;
-import org.apache.tuscany.spi.component.ReferenceBinding;
 import org.apache.tuscany.spi.component.Service;
 import org.apache.tuscany.spi.component.ServiceBinding;
+import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.ReferenceBinding;
+import org.apache.tuscany.spi.idl.java.JavaInterfaceProcessorRegistry;
+import org.apache.tuscany.spi.model.BindingDefinition;
 import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.wire.InboundInvocationChain;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.Interceptor;
-import org.apache.tuscany.spi.wire.Message;
-import org.apache.tuscany.spi.wire.MessageImpl;
-import org.apache.tuscany.spi.wire.OutboundInvocationChain;
-import org.apache.tuscany.spi.wire.OutboundWire;
-
-import org.apache.tuscany.core.implementation.composite.ReferenceImpl;
+import org.apache.tuscany.spi.model.ServiceContract;
+import org.apache.tuscany.spi.model.ServiceDefinition;
+import org.apache.tuscany.spi.wire.Wire;
+
+import junit.framework.TestCase;
+import org.apache.tuscany.core.component.ComponentManager;
+import org.apache.tuscany.core.component.ComponentManagerImpl;
+import org.apache.tuscany.core.idl.java.JavaInterfaceProcessorRegistryImpl;
+import org.apache.tuscany.core.implementation.composite.CompositeComponentImpl;
 import org.apache.tuscany.core.implementation.composite.ServiceImpl;
-import org.apache.tuscany.core.mock.binding.MockServiceBinding;
-import org.apache.tuscany.core.wire.InboundInvocationChainImpl;
-import org.apache.tuscany.core.wire.InboundWireImpl;
-import org.apache.tuscany.core.wire.InvokerInterceptor;
-import org.apache.tuscany.core.wire.OutboundInvocationChainImpl;
-import org.apache.tuscany.core.wire.OutboundWireImpl;
-import org.apache.tuscany.core.wire.SynchronousBridgingInterceptor;
+import org.apache.tuscany.core.implementation.composite.ReferenceImpl;
 import org.easymock.EasyMock;
 
 /**
  * @version $Rev$ $Date$
  */
-public class ServiceConnectorTestCase extends AbstractConnectorImplTestCase {
-    private static final URI SOURCE = URI.create("source");
-    private CompositeComponent parent;
-    private InboundInvocationChain inboundChain;
-    private ServiceBinding sourceServiceBinding;
-
-    public void testConnectServiceToAtomicComponent() throws Exception {
-        configureAtomicTarget();
-        Service sourceService = new ServiceImpl(SOURCE, contract);
-        sourceService.addServiceBinding(sourceServiceBinding);
-        connector.connect(sourceService);
-        Interceptor interceptor = inboundChain.getHeadInterceptor();
-        MessageImpl msg = new MessageImpl();
-        msg.setTargetInvoker(new MockInvoker());
-        Message resp = interceptor.invoke(msg);
-        assertEquals(RESPONSE, resp.getBody());
+public class ServiceConnectorTestCase extends TestCase {
+    private static final URI PARENT = URI.create("parent");
+    private static final URI SOURCE = URI.create("parent#source");
+    private static final URI TARGET = URI.create("parent/target");
+    private static final URI REFERENCE_TARGET = URI.create("parent#target");
+    private ComponentManager manager;
+    private MockConnnector connector;
+    private ServiceContract<?> contract;
+
+    /**
+     * Verifies connecting a wire from an atomic component to a target atomic component
+     */
+    @SuppressWarnings({"unchecked"})
+    public void testConnectToAtomic() throws Exception {
+        ServiceBinding binding = EasyMock.createMock(ServiceBinding.class);
+        EasyMock.expect(binding.getBindingType()).andReturn(Wire.LOCAL_BINDING);
+        binding.setWire(EasyMock.isA(Wire.class));
+        EasyMock.replay(binding);
+
+        Service service = new ServiceImpl(SOURCE, contract);
+        service.addServiceBinding(binding);
+
+        CompositeComponent component = new CompositeComponentImpl(PARENT);
+        component.register(service);
+        manager.register(component);
+
+
+        AtomicComponent target = EasyMock.createMock(AtomicComponent.class);
+        EasyMock.expect(target.getUri()).andReturn(TARGET).atLeastOnce();
+        target.createTargetInvoker((String) EasyMock.isNull(), EasyMock.isA(Operation.class));
+        EasyMock.expectLastCall().andReturn(null);
+        EasyMock.replay(target);
+        manager.register(target);
+
+        ServiceDefinition definition = new ServiceDefinition(SOURCE, contract, false);
+        definition.setTarget(TARGET);
+        BindingDefinition bindingDefinition = new BindingDefinition(TARGET) {
+        };
+        definition.addBinding(bindingDefinition);
+        connector.connect(definition);
+
+        EasyMock.verify(binding);
+        EasyMock.verify(target);
     }
 
-    public void testConnectServiceToReference() throws Exception {
-        configureReferenceTarget();
-        Service sourceService = new ServiceImpl(URI.create("source"), contract);
-        sourceService.addServiceBinding(sourceServiceBinding);
-        connector.connect(sourceService);
-        Interceptor interceptor = inboundChain.getHeadInterceptor();
-        MessageImpl msg = new MessageImpl();
-        msg.setTargetInvoker(new MockInvoker());
-        Message resp = interceptor.invoke(msg);
-        assertEquals(RESPONSE, resp.getBody());
+    @SuppressWarnings({"unchecked"})
+    public void testConnectToReference() throws Exception {
+        ServiceBinding binding = EasyMock.createMock(ServiceBinding.class);
+        EasyMock.expect(binding.getBindingType()).andReturn(Wire.LOCAL_BINDING);
+        binding.setWire(EasyMock.isA(Wire.class));
+        EasyMock.replay(binding);
+
+        Service service = new ServiceImpl(SOURCE, contract);
+        service.addServiceBinding(binding);
+
+        CompositeComponent component = new CompositeComponentImpl(PARENT);
+        component.register(service);
+
+        ReferenceBinding refBinding = EasyMock.createMock(ReferenceBinding.class);
+        EasyMock.expect(refBinding.getUri()).andReturn(REFERENCE_TARGET).atLeastOnce();
+        refBinding.createTargetInvoker(EasyMock.isA(String.class), EasyMock.isA(Operation.class));
+        EasyMock.expectLastCall().andReturn(null);
+        EasyMock.replay(refBinding);
+        Reference target = new ReferenceImpl(REFERENCE_TARGET, contract);
+        target.addReferenceBinding(refBinding);
+        component.register(target);
+        manager.register(component);
+
+        ServiceDefinition definition = new ServiceDefinition(SOURCE, contract, false);
+        definition.setTarget(REFERENCE_TARGET);
+        BindingDefinition bindingDefinition = new BindingDefinition(REFERENCE_TARGET) {
+        };
+        definition.addBinding(bindingDefinition);
+        connector.connect(definition);
+
+        EasyMock.verify(binding);
+        EasyMock.verify(refBinding);
     }
 
+
     protected void setUp() throws Exception {
         super.setUp();
-        inboundChain = new InboundInvocationChainImpl(operation);
-        InboundWire inboundWire = new InboundWireImpl();
-        inboundWire.setServiceContract(contract);
-        inboundWire.addInboundInvocationChain(operation, inboundChain);
-        inboundWire.setSourceUri(SOURCE);
-        OutboundInvocationChain outboundChain = new OutboundInvocationChainImpl(operation);
-        // Outbound chains always contains at least one interceptor
-        outboundChain.addInterceptor(new SynchronousBridgingInterceptor());
-        OutboundWire outboundWire = new OutboundWireImpl();
-        outboundWire.setServiceContract(contract);
-        outboundWire.setTargetUri(TARGET_NAME);
-        outboundWire.addOutboundInvocationChain(operation, outboundChain);
-        outboundWire.setSourceUri(SOURCE);
-
-        sourceServiceBinding = new MockServiceBinding(SOURCE);
-        sourceServiceBinding.setInboundWire(inboundWire);
-        sourceServiceBinding.setOutboundWire(outboundWire);
+        manager = new ComponentManagerImpl();
+        connector = new MockConnnector(manager);
+        JavaInterfaceProcessorRegistry registry = new JavaInterfaceProcessorRegistryImpl();
+        contract = registry.introspect(Foo.class);
     }
 
-    private void configureAtomicTarget() throws Exception {
-        InboundInvocationChain inboundChain = new InboundInvocationChainImpl(operation);
-        inboundChain.addInterceptor(new InvokerInterceptor());
-        InboundWire inboundWire = new InboundWireImpl();
-        inboundWire.setServiceContract(contract);
-        inboundWire.addInboundInvocationChain(operation, inboundChain);
-        inboundWire.setSourceUri(TARGET);
-        AtomicComponent atomicTarget = EasyMock.createMock(AtomicComponent.class);
-        EasyMock.expect(atomicTarget.getTargetWire(EasyMock.isA(String.class))).andReturn(inboundWire).atLeastOnce();
-        EasyMock.expect(atomicTarget.getUri()).andReturn(TARGET);
-        EasyMock.expect(atomicTarget.isOptimizable()).andReturn(true);
-        EasyMock.expect(atomicTarget.getScope()).andReturn(Scope.COMPOSITE);
-        EasyMock.expect(atomicTarget.createTargetInvoker(EasyMock.isA(String.class),
-            EasyMock.isA(Operation.class),
-            EasyMock.isA(InboundWire.class))).andReturn(new MockInvoker());
-        EasyMock.replay(atomicTarget);
-
-        parent = EasyMock.createNiceMock(CompositeComponent.class);
-        EasyMock.replay(parent);
-        componentManager.register(atomicTarget);
+
+    private interface Foo {
+        void bar();
     }
 
-    private void configureReferenceTarget() throws Exception {
-        ReferenceBinding binding = createLocalReferenceBinding(TARGET, URI.create("OtherTarget"));
-        Reference referenceTarget = new ReferenceImpl(TARGET, contract);
-        referenceTarget.addReferenceBinding(binding);
-        // put a terminating interceptor on the outbound wire of the reference for testing an invocation
-        binding.getOutboundWire().getOutboundInvocationChains().get(operation).addInterceptor(new InvokerInterceptor());
-        connector.connect(binding, binding.getInboundWire(), binding, binding.getOutboundWire(), true);
-        parent = EasyMock.createNiceMock(CompositeComponent.class);
-        EasyMock.expect(parent.getUri()).andReturn(TARGET);
-        EasyMock.expect(parent.getTargetWire(TARGET_FRAGMENT)).andReturn(binding.getInboundWire());
-        EasyMock.replay(parent);
-        componentManager.register(parent);
+    private class MockConnnector extends ConnectorImpl {
+
+        public MockConnnector(ComponentManager componentManager) {
+            super(componentManager);
+        }
+
+        public void connect(ServiceDefinition definition) throws WiringException {
+            super.connect(definition);
+        }
     }
 
 }

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/WirePostProcessorRegistryImplTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/WirePostProcessorRegistryImplTestCase.java?view=diff&rev=508732&r1=508731&r2=508732
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/WirePostProcessorRegistryImplTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/WirePostProcessorRegistryImplTestCase.java Sat Feb 17 00:35:19 2007
@@ -18,9 +18,7 @@
  */
 package org.apache.tuscany.core.builder;
 
-import org.apache.tuscany.spi.component.SCAObject;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.OutboundWire;
+import org.apache.tuscany.spi.wire.Wire;
 import org.apache.tuscany.spi.wire.WirePostProcessor;
 import org.apache.tuscany.spi.wire.WirePostProcessorRegistry;
 
@@ -35,32 +33,16 @@
 public class WirePostProcessorRegistryImplTestCase extends TestCase {
 
     public void testRegisterUnregister() throws Exception {
-        SCAObject container = EasyMock.createMock(SCAObject.class);
         WirePostProcessorRegistry registry = new WirePostProcessorRegistryImpl();
-        OutboundWire owire = EasyMock.createMock(OutboundWire.class);
-        InboundWire iwire = EasyMock.createMock(InboundWire.class);
+        Wire wire = EasyMock.createMock(Wire.class);
         WirePostProcessor processor = createMock(WirePostProcessor.class);
-        processor.process(EasyMock.eq(container), EasyMock.eq(owire), EasyMock.eq(container), EasyMock.eq(iwire));
+        processor.process(EasyMock.eq(wire));
         EasyMock.replay(processor);
         registry.register(processor);
-        registry.process(container, owire, container, iwire);
+        registry.process(wire);
         registry.unregister(processor);
-        registry.process(container, owire, container, iwire);
+        registry.process(wire);
         verify(processor);
     }
-
-    public void testProcessInboundToOutbound() throws Exception {
-        WirePostProcessorRegistry registry = new WirePostProcessorRegistryImpl();
-        SCAObject container = EasyMock.createMock(SCAObject.class);
-        OutboundWire owire = EasyMock.createMock(OutboundWire.class);
-        InboundWire iwire = EasyMock.createMock(InboundWire.class);
-        WirePostProcessor processor = createMock(WirePostProcessor.class);
-        processor.process(EasyMock.eq(container), EasyMock.eq(iwire), EasyMock.eq(container), EasyMock.eq(owire));
-        EasyMock.replay(processor);
-        registry.register(processor);
-        registry.process(container, iwire, container, owire);
-        verify(processor);
-    }
-
 
 }

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/MockFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/MockFactory.java?view=diff&rev=508732&r1=508731&r2=508732
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/MockFactory.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/MockFactory.java Sat Feb 17 00:35:19 2007
@@ -31,15 +31,13 @@
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.ScopeContainer;
 import org.apache.tuscany.spi.idl.java.JavaServiceContract;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.OutboundWire;
+import org.apache.tuscany.spi.wire.Wire;
 
 import org.apache.tuscany.core.implementation.PojoConfiguration;
 import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponentImpl;
 import org.apache.tuscany.core.injection.MethodEventInvoker;
 import org.apache.tuscany.core.injection.PojoObjectFactory;
-import org.apache.tuscany.core.wire.InboundWireImpl;
-import org.apache.tuscany.core.wire.OutboundWireImpl;
+import org.apache.tuscany.core.wire.WireImpl;
 
 /**
  * @version $$Rev$$ $$Date$$
@@ -62,18 +60,14 @@
         AtomicComponent targetComponent = createAtomicComponent(target, targetScopeContainer, targetClass);
         PojoConfiguration sourceConfig = new PojoConfiguration();
         sourceConfig.setInstanceFactory(new PojoObjectFactory(sourceClass.getConstructor()));
-
-        //create target wire
         Method[] sourceMethods = sourceClass.getMethods();
         Class[] interfaces = targetClass.getInterfaces();
         EagerInit eager = targetClass.getAnnotation(EagerInit.class);
         if (eager != null) {
             sourceConfig.setInitLevel(eager.value());
         }
-
         Method setter = null;
         for (Class interfaze : interfaces) {
-
             for (Method method : sourceMethods) {
                 if (method.getParameterTypes().length == 1) {
                     if (interfaze.isAssignableFrom(method.getParameterTypes()[0])) {
@@ -87,25 +81,19 @@
                     sourceConfig.setDestroyInvoker(new MethodEventInvoker<Object>(method));
                 }
             }
-
         }
         if (setter == null) {
             throw new IllegalArgumentException("No setter found on source for target");
         }
-
         sourceConfig.addReferenceSite(setter.getName(), setter);
         sourceConfig.setName(new URI(source));
         AtomicComponent sourceComponent = new SystemAtomicComponentImpl(sourceConfig);
         sourceComponent.setScopeContainer(sourceScopeContainer);
-        OutboundWire wire = new OutboundWireImpl();
+        Wire wire = new WireImpl();
         wire.setSourceUri(URI.create("#" + setter.getName()));
-        wire.setServiceContract(new JavaServiceContract(targetClass));
-        InboundWire inboundWire = new InboundWireImpl();
-        inboundWire.setComponent(targetComponent);
-        inboundWire.setServiceContract(new JavaServiceContract(targetClass));
-        inboundWire.setSourceUri(URI.create("#" + target));
-        wire.setTargetWire(inboundWire);
-        sourceComponent.addOutboundWire(wire);
+        wire.setSourceContract(new JavaServiceContract(targetClass));
+        wire.setTarget(targetComponent);
+        sourceComponent.attachWire(wire);
         components.put(source, sourceComponent);
         components.put(target, targetComponent);
         return components;

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/DataBindingInterceptorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/DataBindingInterceptorTestCase.java?view=diff&rev=508732&r1=508731&r2=508732
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/DataBindingInterceptorTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/DataBindingInterceptorTestCase.java Sat Feb 17 00:35:19 2007
@@ -29,10 +29,9 @@
 import org.apache.tuscany.spi.model.DataType;
 import org.apache.tuscany.spi.model.Operation;
 import static org.apache.tuscany.spi.model.Operation.NO_CONVERSATION;
-import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.Interceptor;
 import org.apache.tuscany.spi.wire.Message;
-import org.apache.tuscany.spi.wire.OutboundWire;
+import org.apache.tuscany.spi.wire.Wire;
 
 import junit.framework.Assert;
 import junit.framework.TestCase;
@@ -71,11 +70,10 @@
         DataType<DataType> outputType2 =
             new DataType<DataType>("idl:output", Object.class, operation2.getOutputType());
 
-        OutboundWire outboundWire = EasyMock.createMock(OutboundWire.class);
-        InboundWire inboundWire = EasyMock.createMock(InboundWire.class);
+        Wire outboundWire = EasyMock.createMock(Wire.class);
         CompositeComponent composite = EasyMock.createMock(CompositeComponent.class);
         Component component = EasyMock.createMock(Component.class);
-        EasyMock.replay(outboundWire, inboundWire, composite, component);
+        EasyMock.replay(outboundWire, composite, component);
 
         DataBindingInteceptor interceptor = new DataBindingInteceptor(outboundWire, operation1, operation2);
         Mediator mediator = createMock(Mediator.class);

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/DataBindingWirePostProcessorOptimizationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/DataBindingWirePostProcessorOptimizationTestCase.java?view=diff&rev=508732&r1=508731&r2=508732
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/DataBindingWirePostProcessorOptimizationTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/DataBindingWirePostProcessorOptimizationTestCase.java Sat Feb 17 00:35:19 2007
@@ -23,15 +23,12 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.tuscany.spi.component.SCAObject;
 import org.apache.tuscany.spi.databinding.Mediator;
 import org.apache.tuscany.spi.idl.java.JavaServiceContract;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.wire.InboundInvocationChain;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.OutboundInvocationChain;
-import org.apache.tuscany.spi.wire.OutboundWire;
+import org.apache.tuscany.spi.wire.InvocationChain;
+import org.apache.tuscany.spi.wire.Wire;
 
 import junit.framework.TestCase;
 import org.easymock.EasyMock;
@@ -44,33 +41,18 @@
  */
 public class DataBindingWirePostProcessorOptimizationTestCase extends TestCase {
     private DataBindingWirePostProcessor processor;
-    private OutboundInvocationChain outboundChain;
-    private OutboundWire outboundWire;
-    private InboundInvocationChain inboundChain;
-    private InboundWire inboundWire;
-    private SCAObject container;
+    private InvocationChain outboundChain;
+    private InvocationChain callbackChain;
+    private Wire wire;
 
-    public void testNoInterceptorInterposedOutboundToInbound() {
-        processor.process(container, outboundWire, container, inboundWire);
+    public void testNoInterceptorInterposed() {
+        processor.process(wire);
         EasyMock.verify(outboundChain);
-        EasyMock.verify(inboundChain);
-        EasyMock.verify(outboundWire);
-        EasyMock.verify(inboundWire);
+        EasyMock.verify(callbackChain);
     }
 
-    public void testNoInterceptorInterposedInboundToOutbound() {
-        processor.process(container, inboundWire, container, outboundWire);
-        EasyMock.verify(outboundChain);
-        EasyMock.verify(inboundChain);
-        EasyMock.verify(outboundWire);
-        EasyMock.verify(inboundWire);
-    }
-
-
     protected void setUp() throws Exception {
         super.setUp();
-        container = EasyMock.createMock(SCAObject.class);
-        EasyMock.replay(container);
 
         Mediator mediator = new MediatorImpl();
         processor = new DataBindingWirePostProcessor(mediator);
@@ -83,31 +65,25 @@
         contract.setOperations(operations);
         contract.setCallbackOperations(operations);
 
-        inboundChain = EasyMock.createMock(InboundInvocationChain.class);
-        EasyMock.replay(inboundChain);
-        Map<Operation<?>, InboundInvocationChain> inboundChains = new HashMap<Operation<?>, InboundInvocationChain>();
-        inboundChains.put(operation, inboundChain);
-
-        outboundChain = EasyMock.createMock(OutboundInvocationChain.class);
+        outboundChain = EasyMock.createMock(InvocationChain.class);
         EasyMock.replay(outboundChain);
-        Map<Operation<?>, OutboundInvocationChain> outboundChains =
-            new HashMap<Operation<?>, OutboundInvocationChain>();
+        Map<Operation<?>, InvocationChain> outboundChains = new HashMap<Operation<?>, InvocationChain>();
         outboundChains.put(operation, outboundChain);
 
-        outboundWire = EasyMock.createMock(OutboundWire.class);
-        EasyMock.expect(outboundWire.getOutboundInvocationChains()).andReturn(outboundChains);
-        EasyMock.expect(outboundWire.getServiceContract()).andReturn(contract).anyTimes();
-        EasyMock.expect(outboundWire.getTargetCallbackInvocationChains()).andReturn(inboundChains).anyTimes();
+        callbackChain = EasyMock.createMock(InvocationChain.class);
+        EasyMock.replay(callbackChain);
+        Map<Operation<?>, InvocationChain> callbackChains = new HashMap<Operation<?>, InvocationChain>();
+        callbackChains.put(operation, callbackChain);
+
+        wire = EasyMock.createMock(Wire.class);
+        EasyMock.expect(wire.getInvocationChains()).andReturn(outboundChains);
+        EasyMock.expect(wire.getSourceContract()).andReturn(contract).anyTimes();
+        EasyMock.expect(wire.getTargetContract()).andReturn(contract).anyTimes();
+        EasyMock.expect(wire.getCallbackInvocationChains()).andReturn(callbackChains).anyTimes();
         URI uri = URI.create("foo");
-        EasyMock.expect(outboundWire.getSourceUri()).andReturn(uri).anyTimes();
-
-        EasyMock.replay(outboundWire);
+        EasyMock.expect(wire.getSourceUri()).andReturn(uri).anyTimes();
 
-        inboundWire = EasyMock.createMock(InboundWire.class);
-        EasyMock.expect(inboundWire.getInboundInvocationChains()).andReturn(inboundChains);
-        EasyMock.expect(inboundWire.getSourceCallbackInvocationChains(EasyMock.eq(uri))).andReturn(outboundChains)
-            .anyTimes();
-        EasyMock.replay(inboundWire);
+        EasyMock.replay(wire);
 
     }
 }

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/DataBindingWirePostProcessorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/DataBindingWirePostProcessorTestCase.java?view=diff&rev=508732&r1=508731&r2=508732
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/DataBindingWirePostProcessorTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/DataBindingWirePostProcessorTestCase.java Sat Feb 17 00:35:19 2007
@@ -26,22 +26,16 @@
 import java.util.List;
 import java.util.Map;
 
-import org.w3c.dom.Node;
-
 import org.apache.tuscany.spi.component.Component;
 import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.ReferenceBinding;
-import org.apache.tuscany.spi.component.ServiceBinding;
 import org.apache.tuscany.spi.databinding.Mediator;
 import org.apache.tuscany.spi.idl.java.JavaServiceContract;
 import org.apache.tuscany.spi.model.DataType;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.wire.InboundInvocationChain;
-import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.Interceptor;
-import org.apache.tuscany.spi.wire.OutboundInvocationChain;
-import org.apache.tuscany.spi.wire.OutboundWire;
+import org.apache.tuscany.spi.wire.InvocationChain;
+import org.apache.tuscany.spi.wire.Wire;
 
 import junit.framework.TestCase;
 import org.easymock.EasyMock;
@@ -54,9 +48,6 @@
 public class DataBindingWirePostProcessorTestCase extends TestCase {
     private DataBindingWirePostProcessor processor;
 
-    /**
-     * @see junit.framework.TestCase#setUp()
-     */
     protected void setUp() throws Exception {
         super.setUp();
         Mediator mediator = new MediatorImpl();
@@ -64,14 +55,13 @@
     }
 
     public void testProcess1() {
-        InboundWire inboundWire = createMock(InboundWire.class);
-        OutboundWire outboundWire = createMock(OutboundWire.class);
+        Wire outboundWire = createMock(Wire.class);
 
         Component component = createMock(Component.class);
         CompositeComponent composite = createMock(CompositeComponent.class);
 
-        Map<Operation<?>, OutboundInvocationChain> outboundChains =
-            new HashMap<Operation<?>, OutboundInvocationChain>();
+        Map<Operation<?>, InvocationChain> outboundChains =
+            new HashMap<Operation<?>, InvocationChain>();
         DataType<Type> type1 = new DataType<Type>(String.class, String.class);
         List<DataType<Type>> types = new ArrayList<DataType<Type>>();
         types.add(type1);
@@ -81,142 +71,25 @@
         ServiceContract<Type> outboundContract = new JavaServiceContract(null);
         outboundContract.setDataBinding(String.class.getName());
         op1.setServiceContract(outboundContract);
+        Map<String, Operation<Type>> outboundOperations = new HashMap<String, Operation<Type>>();
+        outboundOperations.put("test", op1);
 
-        OutboundInvocationChain outboundChain = createMock(OutboundInvocationChain.class);
+        outboundContract.setOperations(outboundOperations);
+        InvocationChain outboundChain = createMock(InvocationChain.class);
         outboundChains.put(op1, outboundChain);
-        expect(outboundWire.getOutboundInvocationChains()).andReturn(outboundChains);
+        expect(outboundWire.getInvocationChains()).andReturn(outboundChains);
         outboundChain.addInterceptor(EasyMock.anyInt(), (Interceptor) EasyMock.anyObject());
 
-        Map<Operation<?>, InboundInvocationChain> inboundChains =
-            new HashMap<Operation<?>, InboundInvocationChain>();
-        DataType<Type> type2 = new DataType<Type>(Node.class, Node.class);
-        List<DataType<Type>> types2 = new ArrayList<DataType<Type>>();
-        types2.add(type2);
-        DataType<List<DataType<Type>>> inputType2 =
-            new DataType<List<DataType<Type>>>(Object[].class, types2);
-        DataType<Type> outputType2 = new DataType<Type>(String.class, String.class);
-        Operation<Type> op2 = new Operation<Type>("test", inputType2, outputType2, null);
-        ServiceContract<Type> inboundContract = new JavaServiceContract(null);
-        inboundContract.setDataBinding(Node.class.getName());
-        op2.setServiceContract(inboundContract);
-
-        InboundInvocationChain inboundChain = createMock(InboundInvocationChain.class);
-        inboundChains.put(op2, inboundChain);
-        expect(inboundWire.getInboundInvocationChains()).andReturn(inboundChains);
-
-        ServiceContract<Type> contract = new JavaServiceContract();
-        Map<String, Operation<Type>> operations = Collections.emptyMap();
-        contract.setCallbackOperations(operations);
-        expect(outboundWire.getServiceContract()).andReturn(contract);
-
-        EasyMock.replay(composite, component, inboundWire, outboundWire, inboundChain, outboundChain);
-
-        processor.process(component, outboundWire, component, inboundWire);
-    }
-
-    public void testProcess2() {
-        InboundWire inboundWire = createMock(InboundWire.class);
-        OutboundWire outboundWire = createMock(OutboundWire.class);
-
-        ReferenceBinding referenceBinding = createMock(ReferenceBinding.class);
-        CompositeComponent composite = createMock(CompositeComponent.class);
-
-        Map<Operation<?>, OutboundInvocationChain> outboundChains =
-            new HashMap<Operation<?>, OutboundInvocationChain>();
-        DataType<Type> type1 = new DataType<Type>(String.class, String.class);
-        List<DataType<Type>> types = new ArrayList<DataType<Type>>();
-        types.add(type1);
-        DataType<List<DataType<Type>>> inputType1 = new DataType<List<DataType<Type>>>(Object[].class, types);
-        DataType<Type> outputType1 = new DataType<Type>(String.class, String.class);
-        Operation<Type> op1 = new Operation<Type>("test", inputType1, outputType1, null);
-        ServiceContract<Type> outboundContract = new JavaServiceContract(null);
-        outboundContract.setDataBinding(String.class.getName());
-        op1.setServiceContract(outboundContract);
-
-        OutboundInvocationChain outboundChain = createMock(OutboundInvocationChain.class);
-        outboundChains.put(op1, outboundChain);
-        expect(outboundWire.getOutboundInvocationChains()).andReturn(outboundChains).anyTimes();
-        outboundChain.addInterceptor(EasyMock.anyInt(), (Interceptor) EasyMock.anyObject());
-
-        Map<Operation<?>, InboundInvocationChain> inboundChains =
-            new HashMap<Operation<?>, InboundInvocationChain>();
-        DataType<Type> type2 = new DataType<Type>(Node.class, Node.class);
-        List<DataType<Type>> types2 = new ArrayList<DataType<Type>>();
-        types2.add(type2);
-        DataType<List<DataType<Type>>> inputType2 =
-            new DataType<List<DataType<Type>>>(Object[].class, types2);
-        DataType<Type> outputType2 = new DataType<Type>(String.class, String.class);
-        Operation<Type> op2 = new Operation<Type>("test", inputType2, outputType2, null);
-        ServiceContract<Type> inboundContract = new JavaServiceContract(null);
-        inboundContract.setDataBinding(Node.class.getName());
-        op2.setServiceContract(inboundContract);
-
-        InboundInvocationChain inboundChain = createMock(InboundInvocationChain.class);
-        inboundChains.put(op2, inboundChain);
-        expect(inboundWire.getInboundInvocationChains()).andReturn(inboundChains).anyTimes();
-
-        ServiceContract<Type> contract = new JavaServiceContract();
-        Map<String, Operation<Type>> operations = Collections.emptyMap();
-        contract.setCallbackOperations(operations);
-        expect(inboundWire.getServiceContract()).andReturn(contract);
-        expect(inboundChain.getTailInterceptor()).andReturn(null);
-
-        EasyMock.replay(composite, referenceBinding, inboundWire, outboundWire, inboundChain, outboundChain);
-
-        processor.process(referenceBinding, inboundWire, referenceBinding, outboundWire);
-    }
-
-    public void testProcess3() {
-        InboundWire inboundWire = createMock(InboundWire.class);
-        OutboundWire outboundWire = createMock(OutboundWire.class);
-
-        ServiceBinding serviceBinding = createMock(ServiceBinding.class);
-        CompositeComponent composite = createMock(CompositeComponent.class);
-
-        Map<Operation<?>, OutboundInvocationChain> outboundChains =
-            new HashMap<Operation<?>, OutboundInvocationChain>();
-        DataType<Type> type1 = new DataType<Type>(String.class, String.class);
-        List<DataType<Type>> types = new ArrayList<DataType<Type>>();
-        types.add(type1);
-        DataType<List<DataType<Type>>> inputType1 = new DataType<List<DataType<Type>>>(Object[].class, types);
-        DataType<Type> outputType1 = new DataType<Type>(String.class, String.class);
-        Operation<Type> op1 = new Operation<Type>("test", inputType1, outputType1, null);
-        ServiceContract<Type> outboundContract = new JavaServiceContract(null);
-        outboundContract.setDataBinding(String.class.getName());
-        op1.setServiceContract(outboundContract);
-
-        OutboundInvocationChain outboundChain = createMock(OutboundInvocationChain.class);
-        outboundChains.put(op1, outboundChain);
-        expect(outboundWire.getOutboundInvocationChains()).andReturn(outboundChains).anyTimes();
-        // outboundChain.addInterceptor(EasyMock.anyInt(), (Interceptor)
-        // EasyMock.anyObject());
-
-        Map<Operation<?>, InboundInvocationChain> inboundChains =
-            new HashMap<Operation<?>, InboundInvocationChain>();
-        DataType<Type> type2 = new DataType<Type>(Node.class, Node.class);
-        List<DataType<Type>> types2 = new ArrayList<DataType<Type>>();
-        types2.add(type2);
-        DataType<List<DataType<Type>>> inputType2 =
-            new DataType<List<DataType<Type>>>(Object[].class, types2);
-        DataType<Type> outputType2 = new DataType<Type>(String.class, String.class);
-        Operation<Type> op2 = new Operation<Type>("test", inputType2, outputType2, null);
-        ServiceContract<Type> inboundContract = new JavaServiceContract(null);
-        inboundContract.setDataBinding(Node.class.getName());
-        op2.setServiceContract(inboundContract);
-
-        InboundInvocationChain inboundChain = createMock(InboundInvocationChain.class);
-        inboundChains.put(op2, inboundChain);
-        expect(inboundWire.getInboundInvocationChains()).andReturn(inboundChains).anyTimes();
-        inboundChain.addInterceptor(EasyMock.anyInt(), (Interceptor) EasyMock.anyObject());
 
         ServiceContract<Type> contract = new JavaServiceContract();
         Map<String, Operation<Type>> operations = Collections.emptyMap();
         contract.setCallbackOperations(operations);
-        expect(inboundWire.getServiceContract()).andReturn(contract);
+        expect(outboundWire.getSourceContract()).andReturn(outboundContract);
+        expect(outboundWire.getTargetContract()).andReturn(outboundContract);
 
-        EasyMock.replay(composite, serviceBinding, inboundWire, outboundWire, inboundChain, outboundChain);
+        EasyMock.replay(composite, component, outboundWire, outboundChain);
 
-        processor.process(serviceBinding, inboundWire, serviceBinding, outboundWire);
+        processor.process(outboundWire);
     }
 
 }



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