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/24 03:26:12 UTC

svn commit: r511192 - in /incubator/tuscany/java/sca/kernel: core/src/main/java/org/apache/tuscany/core/builder/ core/src/main/java/org/apache/tuscany/core/implementation/composite/ core/src/test/java/org/apache/tuscany/core/builder/ spi/src/main/java/...

Author: jmarino
Date: Fri Feb 23 18:26:11 2007
New Revision: 511192

URL: http://svn.apache.org/viewvc?view=rev&rev=511192
Log:
simplify connector by delegating target invoker creation to composites for service and referece bindings

Modified:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/AtomicConnectorTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ReferenceConnectorTestCase.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ServiceConnectorTestCase.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/WireDefinition.java
    incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java?view=diff&rev=511192&r1=511191&r2=511192
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java Fri Feb 23 18:26:11 2007
@@ -56,7 +56,6 @@
 import org.apache.tuscany.spi.wire.Wire;
 import org.apache.tuscany.spi.wire.WirePostProcessorRegistry;
 
-import org.apache.tuscany.core.binding.local.LocalServiceBinding;
 import org.apache.tuscany.core.component.ComponentManager;
 import org.apache.tuscany.core.wire.InvocationChainImpl;
 import org.apache.tuscany.core.wire.InvokerInterceptor;
@@ -91,8 +90,38 @@
         this.workContext = workContext;
     }
 
-
+    /**
+     * <strong>Note this method will not work yet</strong>
+     * <p/>
+     * Wires a source and target component based on a wire defintion
+     *
+     * @param definition the wire definition
+     * @throws WiringException
+     */
     public void connect(WireDefinition definition) throws WiringException {
+        URI sourceUri = definition.getSourceUri();
+        assert sourceUri != null;
+        URI targetUri = definition.getTargetUri();
+        assert targetUri != null;
+        URI baseSourceUri = UriHelper.getDefragmentedName(sourceUri);
+        URI baseTargetUri = UriHelper.getDefragmentedName(targetUri);
+        String targetFragment = targetUri.getFragment();
+        Component source = componentManager.getComponent(baseSourceUri);
+        if (source == null) {
+            throw new ComponentNotFoundException("Wire source component not found", baseSourceUri);
+        }
+        Component target = componentManager.getComponent(baseTargetUri);
+        if (target == null) {
+            throw new ComponentNotFoundException("Wire target component not found", baseTargetUri);
+        }
+        ServiceContract<?> contract = null;
+        Wire wire = createWire(sourceUri, targetUri, contract, definition.getBindingType());
+        try {
+            attachInvokers(targetFragment, wire, source, target);
+        } catch (TargetInvokerCreationException e) {
+            throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
+        }
+        source.attachWire(wire);
         throw new UnsupportedOperationException();
     }
 
@@ -135,54 +164,10 @@
                 String fragment = uri.getFragment();
                 URI sourceURI = refDefinition.getUri();
                 Wire wire = createWire(sourceURI, uri, refDefinition.getServiceContract(), Wire.LOCAL_BINDING);
-                if (fragment == null) {
-                    try {
-                        // add target invokers
-                        attachInvokers(wire, source, target);
-                    } catch (TargetInvokerCreationException e) {
-                        throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
-                    }
-                } else {
-                    if (target instanceof CompositeComponent) {
-                        CompositeComponent composite = (CompositeComponent) target;
-                        Service service = composite.getService(fragment);
-                        if (service != null) {
-                            if (service.getServiceBindings().isEmpty()) {
-                                // for now, throw an assertion exception.
-                                // We will need to choose bindings during allocation
-                                throw new AssertionError();
-                            }
-                            ServiceBinding binding = service.getServiceBindings().get(0);
-                            try {
-                                // add target invokers
-                                attachInvokers(wire, source, binding);
-                            } catch (TargetInvokerCreationException e) {
-                                throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
-                            }
-                        }
-                        Reference reference = composite.getReference(fragment);
-                        if (reference != null) {
-                            ReferenceBinding binding = reference.getReferenceBindings().get(0);
-                            try {
-                                // add target invokers
-                                attachInvokers(wire, source, binding);
-                            } catch (TargetInvokerCreationException e) {
-                                throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
-                            }
-                        } else if (refDefinition.isRequired()) {
-                            throw new ComponentNotFoundException("Target not found", targetUri);
-                        } else if (wire == null) {
-                            continue;
-                        }
-                    } else {
-                        // atomic component
-                        try {
-                            // add target invokers
-                            attachInvokers(wire, source, target);
-                        } catch (TargetInvokerCreationException e) {
-                            throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
-                        }
-                    }
+                try {
+                    attachInvokers(fragment, wire, source, target);
+                } catch (TargetInvokerCreationException e) {
+                    throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
                 }
                 if (postProcessorRegistry != null) {
                     postProcessorRegistry.process(wire);
@@ -204,81 +189,50 @@
         }
     }
 
+    /**
+     * @deprecated
+     */
     protected void connect(ServiceDefinition definition) throws WiringException {
         URI uri = definition.getUri();
         URI sourceUri = UriHelper.getDefragmentedName(uri);
-        URI targetUri = UriHelper.getDefragmentedName(definition.getTarget());
+        URI targetUri = definition.getTarget();
+        URI baseTargetUri = UriHelper.getDefragmentedName(targetUri);
         Component source = componentManager.getComponent(sourceUri);
         if (source == null) {
             throw new ComponentNotFoundException("Source not found", sourceUri);
         }
         if (!(source instanceof CompositeComponent)) {
             // this should not happen
-            throw new InvalidSourceTypeException("Illegal source type", uri, targetUri);
+            throw new InvalidSourceTypeException("Illegal source type", uri, baseTargetUri);
         }
         CompositeComponent sourceComposite = (CompositeComponent) source;
         Service service = sourceComposite.getService(uri.getFragment());
         if (service == null) {
             throw new SourceServiceNotFoundException("Service not found on composite", uri);
         }
-        Component target = componentManager.getComponent(targetUri);
+        Component target = componentManager.getComponent(baseTargetUri);
         if (target == null) {
             throw new ComponentNotFoundException("Target not found", sourceUri);
         }
         ServiceContract<?> contract = definition.getServiceContract();
-        if (target instanceof CompositeComponent) {
-            String fragment = definition.getTarget().getFragment();
-            CompositeComponent targetComposite = (CompositeComponent) target;
-            Invocable invocable;
-            Reference targetReference = targetComposite.getReference(fragment);
-            if (targetReference == null) {
-                Service targetService = targetComposite.getService(fragment);
-                if (targetService == null) {
-                    throw new TargetServiceNotFoundException("Service not found", sourceUri, definition.getTarget());
-                }
-                // TODO select binding in allocator
-                if (targetService.getServiceBindings().isEmpty()) {
-                    invocable = new LocalServiceBinding(service.getUri());
-                } else {
-                    invocable = targetService.getServiceBindings().get(0);
-                }
-            } else {
-                if (targetReference.getReferenceBindings().isEmpty()) {
-                    throw new NoBindingException("No binding specified for wire", sourceUri, targetUri);
-                } else {
-                    invocable = targetReference.getReferenceBindings().get(0);
-                }
-            }
-            for (ServiceBinding binding : service.getServiceBindings()) {
-                Wire wire = createWire(uri, targetUri, contract, binding.getBindingType());
-                binding.setWire(wire);
-                if (postProcessorRegistry != null) {
-                    postProcessorRegistry.process(wire);
-                }
-                try {
-                    attachInvokers(wire, binding, invocable);
-                } catch (TargetInvokerCreationException e) {
-                    throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
-                }
+        // TODO if no binding, do local
+        for (ServiceBinding binding : service.getServiceBindings()) {
+            Wire wire = createWire(uri, targetUri, contract, binding.getBindingType());
+            binding.setWire(wire);
+            if (postProcessorRegistry != null) {
+                postProcessorRegistry.process(wire);
             }
-
-        } else {
-            // TODO if no binding, do local
-            for (ServiceBinding binding : service.getServiceBindings()) {
-                Wire wire = createWire(uri, targetUri, contract, binding.getBindingType());
-                binding.setWire(wire);
-                if (postProcessorRegistry != null) {
-                    postProcessorRegistry.process(wire);
-                }
-                try {
-                    attachInvokers(wire, binding, target);
-                } catch (TargetInvokerCreationException e) {
-                    throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
-                }
+            try {
+                attachInvokers(definition.getTarget().getFragment(), wire, binding, target);
+            } catch (TargetInvokerCreationException e) {
+                throw new WireCreationException("Error creating invoker", sourceUri, baseTargetUri, e);
             }
         }
     }
 
+    /**
+     * @deprecated
+     */
     protected void connect(ReferenceDefinition definition) throws WiringException {
         URI uri = definition.getUri();
         URI sourceUri = UriHelper.getDefragmentedName(uri);
@@ -308,40 +262,10 @@
                 if (target == null) {
                     throw new ComponentNotFoundException("Target not found", sourceUri);
                 }
-                if (target instanceof CompositeComponent) {
-                    String fragment = targetUri.getFragment();
-                    CompositeComponent targetComposite = (CompositeComponent) target;
-                    Invocable invocable;
-                    Reference targetReference = targetComposite.getReference(fragment);
-                    if (targetReference == null) {
-                        Service targetService = targetComposite.getService(fragment);
-                        if (targetService == null) {
-                            throw new TargetServiceNotFoundException("Service not found", sourceUri, targetUri);
-                        }
-                        // TODO select binding in allocator
-                        if (targetService.getServiceBindings().isEmpty()) {
-                            throw new NoBindingException("No binding specified for wire", sourceUri, targetUri);
-                        } else {
-                            invocable = targetService.getServiceBindings().get(0);
-                        }
-                    } else {
-                        if (targetReference.getReferenceBindings().isEmpty()) {
-                            throw new NoBindingException("No binding specified for wire", sourceUri, targetUri);
-                        } else {
-                            invocable = targetReference.getReferenceBindings().get(0);
-                        }
-                    }
-                    try {
-                        attachInvokers(wire, binding, invocable);
-                    } catch (TargetInvokerCreationException e) {
-                        throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
-                    }
-                } else {
-                    try {
-                        attachInvokers(wire, binding, target);
-                    } catch (TargetInvokerCreationException e) {
-                        throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
-                    }
+                try {
+                    attachInvokers(targetUri.getFragment(), wire, binding, target);
+                } catch (TargetInvokerCreationException e) {
+                    throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
                 }
             } else {
                 Wire wire = createWire(sourceUri, null, binding.getBindingServiceContract(), binding.getBindingType());
@@ -378,10 +302,10 @@
         return wire;
     }
 
-    private void attachInvokers(Wire wire, Invocable source, Invocable target)
+    private void attachInvokers(String name, Wire wire, Invocable source, Invocable target)
         throws TargetInvokerCreationException {
         for (InvocationChain chain : wire.getInvocationChains().values()) {
-            String name = target.getUri().getFragment();
+            //String name = target.getUri().getFragment();
             chain.setTargetInvoker(target.createTargetInvoker(name, chain.getOperation()));
         }
         for (InvocationChain chain : wire.getCallbackInvocationChains().values()) {

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java?view=diff&rev=511192&r1=511191&r2=511192
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java Fri Feb 23 18:26:11 2007
@@ -25,11 +25,8 @@
 
 import org.w3c.dom.Document;
 
-import org.apache.tuscany.spi.component.TargetInvokerCreationException;
 import org.apache.tuscany.spi.event.Event;
 import org.apache.tuscany.spi.extension.CompositeComponentExtension;
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.wire.TargetInvoker;
 
 import org.apache.tuscany.core.component.event.ComponentStop;
 
@@ -63,7 +60,6 @@
             initialized = true;
             lifecycleState = INITIALIZED;
         }
-//        publish(new ComponentStart(this, getUri()));
     }
 
     public void stop() {
@@ -87,11 +83,6 @@
         }
         checkInit();
         super.publish(event);
-    }
-
-    public TargetInvoker createTargetInvoker(String targetName, Operation operation)
-        throws TargetInvokerCreationException {
-        return null;
     }
 
     /**

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/AtomicConnectorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/AtomicConnectorTestCase.java?view=diff&rev=511192&r1=511191&r2=511192
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/AtomicConnectorTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/AtomicConnectorTestCase.java Fri Feb 23 18:26:11 2007
@@ -35,9 +35,9 @@
 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.model.ServiceContract;
 import org.apache.tuscany.spi.model.ServiceDefinition;
-import org.apache.tuscany.spi.model.Scope;
 import org.apache.tuscany.spi.wire.Wire;
 
 import junit.framework.TestCase;
@@ -113,7 +113,6 @@
         manager.register(source);
 
         ReferenceBinding binding = EasyMock.createMock(ReferenceBinding.class);
-        EasyMock.expect(binding.getUri()).andReturn(TARGET).atLeastOnce();
         binding.createTargetInvoker(EasyMock.isA(String.class), EasyMock.isA(Operation.class));
         EasyMock.expectLastCall().andReturn(null);
         EasyMock.replay(binding);
@@ -155,7 +154,6 @@
         manager.register(source);
 
         ServiceBinding binding = EasyMock.createMock(ServiceBinding.class);
-        EasyMock.expect(binding.getUri()).andReturn(TARGET).atLeastOnce();
         binding.createTargetInvoker(EasyMock.isA(String.class), EasyMock.isA(Operation.class));
         EasyMock.expectLastCall().andReturn(null);
         EasyMock.replay(binding);

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=511192&r1=511191&r2=511192
==============================================================================
--- 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 Fri Feb 23 18:26:11 2007
@@ -108,7 +108,6 @@
         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);

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=511192&r1=511191&r2=511192
==============================================================================
--- 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 Fri Feb 23 18:26:11 2007
@@ -105,7 +105,6 @@
         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);

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java?view=diff&rev=511192&r1=511191&r2=511192
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java Fri Feb 23 18:26:11 2007
@@ -18,8 +18,6 @@
  */
 package org.apache.tuscany.spi.component;
 
-import java.util.List;
-
 import org.w3c.dom.Document;
 
 import org.apache.tuscany.spi.event.RuntimeEventListener;
@@ -66,25 +64,11 @@
     Service getService(String name);
 
     /**
-     * Returns the services for the component
-     *
-     * @return the services for the component
-     */
-    List<Service> getServices();
-
-    /**
      * Returns the reference with the given name or null if not found
      *
      * @param name the reference name which is relative to the composite
      * @return the reference with the given name or null if not found
      */
     Reference getReference(String name);
-
-    /**
-     * Returns the references for the component
-     *
-     * @return the references for the component
-     */
-    List<Reference> getReferences();
 
 }

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=511192&r1=511191&r2=511192
==============================================================================
--- 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 Fri Feb 23 18:26:11 2007
@@ -20,7 +20,6 @@
 
 import java.net.URI;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
@@ -30,11 +29,16 @@
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.component.DuplicateNameException;
 import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.ReferenceBinding;
 import org.apache.tuscany.spi.component.RegistrationException;
 import org.apache.tuscany.spi.component.SCAObject;
 import org.apache.tuscany.spi.component.Service;
+import org.apache.tuscany.spi.component.ServiceBinding;
+import org.apache.tuscany.spi.component.TargetInvokerCreationException;
 import org.apache.tuscany.spi.event.Event;
+import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.wire.TargetInvoker;
 
 /**
  * An extension point for composite components, which new types may extend
@@ -64,14 +68,6 @@
         return propertyValues.get(name);
     }
 
-    public List<Service> getServices() {
-        return Collections.unmodifiableList(services);
-    }
-
-    public List<Reference> getReferences() {
-        return Collections.unmodifiableList(references);
-    }
-
     public Service getService(String name) {
         if (name == null) {
             if (services.size() == 1) {
@@ -128,4 +124,28 @@
         }
     }
 
+    public TargetInvoker createTargetInvoker(String name, Operation operation)
+        throws TargetInvokerCreationException {
+        Service service = getService(name);
+        if (service != null) {
+            if (service.getServiceBindings().isEmpty()) {
+                // for now, throw an assertion exception.
+                // We will need to choose bindings during allocation
+                throw new AssertionError();
+            }
+            ServiceBinding binding = service.getServiceBindings().get(0);
+            return binding.createTargetInvoker(name, operation);
+        }
+        Reference reference = getReference(name);
+        if (reference != null) {
+            if (reference.getReferenceBindings().isEmpty()) {
+                // for now, throw an assertion exception.
+                // We will need to choose bindings during allocation
+                throw new AssertionError();
+            }
+            ReferenceBinding binding = reference.getReferenceBindings().get(0);
+            binding.createTargetInvoker(name, operation);
+        }
+        return null;
+    }
 }

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/WireDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/WireDefinition.java?view=diff&rev=511192&r1=511191&r2=511192
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/WireDefinition.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/WireDefinition.java Fri Feb 23 18:26:11 2007
@@ -22,6 +22,7 @@
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
+import javax.xml.namespace.QName;
 
 import org.apache.tuscany.spi.model.ModelObject;
 
@@ -32,15 +33,35 @@
  * @version $Rev$ $Date$
  */
 public class WireDefinition extends ModelObject {
-
-    // The resolved URI of the wire
-    private URI wireUri;
-
+    private QName bindingType;
+    // The resolved source URI of the wire
+    private URI sourceUri;
+    // The resolved source URI of the wire
+    private URI targetUri;
     // Interceptors defined against the wire
     private final Set<InterceptorDefinition> interceptors = new HashSet<InterceptorDefinition>();
 
     /**
+     * Returns the wire binding type.
+     *
+     * @return the binding type of the wire.
+     */
+    public QName getBindingType() {
+        return bindingType;
+    }
+
+    /**
+     * Sets the wire binding type
+     *
+     * @param bindingType the wire binding type
+     */
+    public void setBindingType(QName bindingType) {
+        this.bindingType = bindingType;
+    }
+
+    /**
      * Returns a read-only view of the available interceptors.
+     *
      * @return List of interceptors available on the wire.
      */
     public Set<InterceptorDefinition> getInterceptors() {
@@ -49,6 +70,7 @@
 
     /**
      * Adds an interceptor definition.
+     *
      * @param interceptorDefinition Interceptor definition to add to the wire.
      */
     public void addInterceptor(InterceptorDefinition interceptorDefinition) {
@@ -61,19 +83,40 @@
     }
 
     /**
-     * Sets the Wire URI.
-     * @param wireUri Wire URI.
+     * Sets the Wire source URI.
+     *
+     * @param sourceUri Wire source URI.
+     */
+    public void setSourceUri(URI sourceUri) {
+        this.sourceUri = sourceUri;
+    }
+
+    /**
+     * Gets the Wire source URI.
+     *
+     * @return Wire source URI.
+     */
+    public URI getSourceUri() {
+        return sourceUri;
+    }
+
+
+    /**
+     * Sets the Wire target URI.
+     *
+     * @param targetUri Wire source URI.
      */
-    public void setWireUri(URI wireUri) {
-        this.wireUri = wireUri;
+    public void setTargetUri(URI targetUri) {
+        this.targetUri = targetUri;
     }
 
     /**
-     * Gets the Wire URI.
-     * @return Wire URI.
+     * Gets the Wire target URI.
+     *
+     * @return Wire target URI.
      */
-    public URI getWireUri() {
-        return wireUri;
+    public URI getTargetUri() {
+        return targetUri;
     }
 
 }

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=511192&r1=511191&r2=511192
==============================================================================
--- 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 Fri Feb 23 18:26:11 2007
@@ -18,17 +18,17 @@
  */
 package org.apache.tuscany.spi.extension;
 
+import java.lang.reflect.Type;
 import java.net.URI;
+import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.component.Reference;
-import org.apache.tuscany.spi.component.ScopeContainer;
 import org.apache.tuscany.spi.component.Service;
-import org.apache.tuscany.spi.component.TargetInvokerCreationException;
+import org.apache.tuscany.spi.component.ServiceBinding;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.wire.TargetInvoker;
 import org.apache.tuscany.spi.wire.Wire;
 
 import junit.framework.TestCase;
@@ -73,21 +73,30 @@
         assertNotNull(composite.getReference(null));
     }
 
+    public void testCreateTargetInvoker() throws Exception {
+        ServiceBinding binding = EasyMock.createMock(ServiceBinding.class);
+        EasyMock.expect(binding.createTargetInvoker(EasyMock.eq("service"), EasyMock.isA(Operation.class)))
+            .andReturn(null);
+        EasyMock.replay(binding);
+        List<ServiceBinding> bindings = new ArrayList<ServiceBinding>();
+        bindings.add(binding);
+        Service service = EasyMock.createMock(Service.class);
+        EasyMock.expect(service.getUri()).andReturn(URI.create("composite#service")).atLeastOnce();
+        EasyMock.expect(service.getServiceBindings()).andReturn(bindings).atLeastOnce();
+        EasyMock.replay(service);
+        composite.register(service);
+        Operation<Type> operation = new Operation<Type>("op", null, null, null);
+        composite.createTargetInvoker("service", operation);
+        EasyMock.verify(binding);
+
+    }
+
     protected void setUp() throws Exception {
         super.setUp();
         contract = new ServiceContract<Object>(Object.class) {
 
         };
         composite = new CompositeComponentExtension(new URI("foo"), null) {
-
-            public TargetInvoker createTargetInvoker(String targetName, Operation operation)
-                throws TargetInvokerCreationException {
-                throw new UnsupportedOperationException();
-            }
-
-            public void setScopeContainer(ScopeContainer scopeContainer) {
-                throw new UnsupportedOperationException();
-            }
 
             public List<Wire> getWires(String name) {
                 throw new UnsupportedOperationException();



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