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 2006/12/31 19:59:02 UTC

svn commit: r491465 [3/3] - 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/builder/ kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/ ...

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=491465&r1=491464&r2=491465
==============================================================================
--- 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 Sun Dec 31 10:58:58 2006
@@ -40,6 +40,7 @@
 import org.apache.tuscany.spi.component.InvalidAutowireInterface;
 import org.apache.tuscany.spi.component.PrepareException;
 import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.ReferenceBinding;
 import org.apache.tuscany.spi.component.SCAObject;
 import org.apache.tuscany.spi.component.Service;
 import org.apache.tuscany.spi.component.ServiceBinding;
@@ -64,7 +65,7 @@
 
     protected final Map<String, SCAObject> systemChildren = new ConcurrentHashMap<String, SCAObject>();
     protected final List<Service> systemServices = new ArrayList<Service>();
-    protected final List<Reference> systemReferences = new ArrayList<Reference>();
+    protected final List<Reference> systemReferenceBindings = new ArrayList<Reference>();
 
     // autowire mappings
     protected final Map<Class, InboundWire> autowireInternal = new ConcurrentHashMap<Class, InboundWire>();
@@ -122,7 +123,7 @@
     }
 
     public List<Reference> getSystemReferences() {
-        return Collections.unmodifiableList(systemReferences);
+        return Collections.unmodifiableList(systemReferenceBindings);
     }
 
     public List<SCAObject> getChildren() {
@@ -138,6 +139,7 @@
     }
 
     public void register(SCAObject child) throws ComponentRegistrationException {
+        assert child instanceof Service || child instanceof Reference || child instanceof Component;
         if (child.isSystem()) {
             if (systemChildren.get(child.getName()) != null) {
                 throw new DuplicateNameException("A system child is already registered with the name", child.getName());
@@ -163,7 +165,7 @@
             Reference reference = (Reference) child;
             synchronized (references) {
                 if (reference.isSystem()) {
-                    systemReferences.add(reference);
+                    systemReferenceBindings.add(reference);
                 } else {
                     references.add(reference);
                 }
@@ -246,7 +248,7 @@
         InboundWire wire = autowireInternal.get(instanceInterface);
         if (wire != null) {
             SCAObject parent = wire.getContainer();
-            if (parent instanceof AtomicComponent || parent instanceof Reference
+            if (parent instanceof AtomicComponent || parent instanceof ReferenceBinding
                 || parent instanceof ServiceBinding) {
                 return wire;
             } else {
@@ -430,7 +432,12 @@
             if (systemAutowireInternal.containsKey(interfaze)) {
                 return;
             }
-            InboundWire wire = reference.getInboundWire();
+            List<ReferenceBinding> bindings = reference.getReferenceBindings();
+            if (bindings.size() == 0) {
+                return;
+            }
+            // pick the first binding until autowire allows multiple interfaces
+            InboundWire wire = bindings.get(0).getInboundWire();
             if (!interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) {
                 throw new InvalidAutowireInterface("Matching inbound wire not found for interface",
                     interfaze.getName());
@@ -440,12 +447,17 @@
             if (autowireInternal.containsKey(interfaze)) {
                 return;
             }
-            InboundWire wire = reference.getInboundWire();
+            List<ReferenceBinding> bindings = reference.getReferenceBindings();
+            if (bindings.size() == 0) {
+                return;
+            }
+            // pick the first binding until autowire allows multiple interfaces
+            InboundWire wire = bindings.get(0).getInboundWire();
             if (!interfaze.isAssignableFrom(wire.getServiceContract().getInterfaceClass())) {
                 String iName = interfaze.getName();
                 throw new InvalidAutowireInterface("Matching inbound wire not found for interface", iName);
             }
-            autowireInternal.put(interfaze, reference.getInboundWire());
+            autowireInternal.put(interfaze, wire);
         }
     }
 
@@ -503,8 +515,17 @@
     }
 
     protected void registerAutowire(Reference reference) throws InvalidAutowireInterface {
-        Class<?> clazz = reference.getInboundWire().getServiceContract().getInterfaceClass();
+        // TODO autowire should allow multiple interfaces
+        List<ReferenceBinding> bindings = reference.getReferenceBindings();
+        if (bindings.size() == 0) {
+            return;
+        }
+        // pick the first binding until autowire allows multiple interfaces
+        InboundWire wire = bindings.get(0).getInboundWire();
+        Class<?> clazz = wire.getServiceContract().getInterfaceClass();
         registerAutowireInternal(clazz, reference);
+
+
     }
 
     protected void registerAutowire(Service service) throws InvalidAutowireInterface {

Copied: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceBindingExtension.java (from r491316, incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceExtension.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceBindingExtension.java?view=diff&rev=491465&p1=incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceExtension.java&r1=491316&p2=incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceBindingExtension.java&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceExtension.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceBindingExtension.java Sun Dec 31 10:58:58 2006
@@ -20,8 +20,9 @@
 
 import org.apache.tuscany.spi.component.AbstractSCAObject;
 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.TargetInvokerCreationException;
+import org.apache.tuscany.spi.component.Reference;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.Scope;
 import org.apache.tuscany.spi.model.ServiceContract;
@@ -34,12 +35,13 @@
  *
  * @version $Rev$ $Date$
  */
-public abstract class ReferenceExtension extends AbstractSCAObject implements Reference {
+public abstract class ReferenceBindingExtension extends AbstractSCAObject implements ReferenceBinding {
+    protected Reference reference;
     protected InboundWire inboundWire;
     protected OutboundWire outboundWire;
     protected ServiceContract<?> bindingServiceContract;
 
-    protected ReferenceExtension(String name, CompositeComponent parent) {
+    protected ReferenceBindingExtension(String name, CompositeComponent parent) {
         super(name, parent);
     }
 
@@ -47,6 +49,10 @@
         return Scope.SYSTEM;
     }
 
+    public void setReference(Reference reference) {
+        this.reference = reference;
+    }
+
     public void setInboundWire(InboundWire wire) {
         this.inboundWire = wire;
     }
@@ -74,6 +80,11 @@
 
     public void setBindingServiceContract(ServiceContract<?> serviceContract) {
         this.bindingServiceContract = serviceContract;
+    }
+
+    @Override
+    public boolean isSystem() {
+        return reference != null && reference.isSystem();
     }
 
 }

Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceBindingExtension.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceBindingExtension.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BindingDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BindingDefinition.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BindingDefinition.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BindingDefinition.java Sun Dec 31 10:58:58 2006
@@ -18,10 +18,28 @@
  */
 package org.apache.tuscany.spi.model;
 
+import java.net.URI;
+
 /**
  * The base representation of a binding specified in an assembly
  *
  * @version $Rev$ $Date$
  */
 public abstract class BindingDefinition extends ModelObject {
+    private URI targetUri;
+
+    protected BindingDefinition() {
+    }
+
+    public BindingDefinition(URI targetUri) {
+        this.targetUri = targetUri;
+    }
+
+    public URI getTargetUri() {
+        return targetUri;
+    }
+
+    public void setTargetUri(URI targetUri) {
+        this.targetUri = targetUri;
+    }
 }

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BoundReferenceDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BoundReferenceDefinition.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BoundReferenceDefinition.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/BoundReferenceDefinition.java Sun Dec 31 10:58:58 2006
@@ -18,19 +18,35 @@
  */
 package org.apache.tuscany.spi.model;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
 /**
- * Represents a reference configured with a binding in a composite
+ * Represents a reference in a composite
  *
  * @version $Rev$ $Date$
  */
-public class BoundReferenceDefinition<B extends BindingDefinition> extends ReferenceDefinition {
-    private B binding;
+public class BoundReferenceDefinition extends ReferenceDefinition {
+    private List<BindingDefinition> bindings;
+
+    public BoundReferenceDefinition(String name, ServiceContract contract,
+                                    List<BindingDefinition> bindings,
+                                    Multiplicity multiplicity) {
+        super(name, contract);
+        this.bindings = bindings;
+        setMultiplicity(multiplicity);
+    }
+
+    public BoundReferenceDefinition() {
+        bindings = new ArrayList<BindingDefinition>();
+    }
 
-    public B getBinding() {
-        return binding;
+    public List<BindingDefinition> getBindings() {
+        return Collections.unmodifiableList(bindings);
     }
 
-    public void setBinding(B binding) {
-        this.binding = binding;
+    public void addBinding(BindingDefinition binding) {
+        this.bindings.add(binding);
     }
 }

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceDefinition.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceDefinition.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ServiceDefinition.java Sun Dec 31 10:58:58 2006
@@ -76,8 +76,12 @@
         return callbackRefName;
     }
 
-    public void setCallbackReferenceName(String callbackRefName) {
-        this.callbackRefName = callbackRefName;
+    /**
+     * Sets the callback name
+     * @param name
+     */
+    public void setCallbackReferenceName(String name) {
+        this.callbackRefName = name;
     }
 
 }

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java Sun Dec 31 10:58:58 2006
@@ -21,8 +21,9 @@
 import java.lang.reflect.Method;
 import java.util.Map;
 
+import org.apache.tuscany.spi.QualifiedName;
 import org.apache.tuscany.spi.component.Component;
-import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.ReferenceBinding;
 import org.apache.tuscany.spi.component.ServiceBinding;
 import org.apache.tuscany.spi.model.ComponentDefinition;
 import org.apache.tuscany.spi.model.Operation;
@@ -120,17 +121,19 @@
     /**
      * Creates wires for a reference and injects them on the reference
      *
-     * @param reference the reference
-     * @param contract  the model artifact representing the service contract for the reference
+     * @param referenceBinding the reference
+     * @param contract         the model artifact representing the service contract for the reference
+     * @param targetName       the qualified target name or null if the reference referes to a target outside the SCA
+     *                         domain
      */
-    void createWires(Reference reference, ServiceContract<?> contract);
+    void createWires(ReferenceBinding referenceBinding, ServiceContract<?> contract, QualifiedName targetName);
 
     /**
      * Creates wires for a serviceBinding and injects them on the serviceBinding
      *
-     * @param serviceBinding    the serviceBinding
-     * @param targetName the target nane
-     * @param contract   the serviceBinding contract
+     * @param serviceBinding the serviceBinding
+     * @param targetName     the target nane
+     * @param contract       the serviceBinding contract
      */
     void createWires(ServiceBinding serviceBinding, String targetName, ServiceContract<?> contract);
 

Added: incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceBindingExtensionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceBindingExtensionTestCase.java?view=auto&rev=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceBindingExtensionTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceBindingExtensionTestCase.java Sun Dec 31 10:58:58 2006
@@ -0,0 +1,61 @@
+package org.apache.tuscany.spi.extension;
+
+import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.TargetInvokerCreationException;
+import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.model.ServiceContract;
+import org.apache.tuscany.spi.wire.TargetInvoker;
+
+import junit.framework.TestCase;
+import org.easymock.EasyMock;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class ReferenceBindingExtensionTestCase extends TestCase {
+
+    public void testScope() throws Exception {
+        ReferenceBindingExtension binding = new MockBindingExtension();
+        assertEquals(Scope.SYSTEM, binding.getScope());
+    }
+
+    public void testPrepare() throws Exception {
+        ReferenceBindingExtension binding = new MockBindingExtension();
+        binding.prepare();
+    }
+
+    public void testIsSystemNoParent() throws Exception {
+        ReferenceBindingExtension binding = new MockBindingExtension();
+        assertFalse(binding.isSystem());
+    }
+
+    public void testIsSystem() throws Exception {
+        Reference reference = EasyMock.createMock(Reference.class);
+        EasyMock.expect(reference.isSystem()).andReturn(true);
+        EasyMock.replay(reference);
+        ReferenceBindingExtension binding = new MockBindingExtension();
+        binding.setReference(reference);
+        assertTrue(binding.isSystem());
+    }
+
+    public void testIsNotSystem() throws Exception {
+        Reference reference = EasyMock.createMock(Reference.class);
+        EasyMock.expect(reference.isSystem()).andReturn(false);
+        EasyMock.replay(reference);
+        ReferenceBindingExtension binding = new MockBindingExtension();
+        binding.setReference(reference);
+        assertFalse(binding.isSystem());
+    }
+
+    private static class MockBindingExtension extends ReferenceBindingExtension {
+        public MockBindingExtension() {
+            super(null, null);
+        }
+
+        public TargetInvoker createTargetInvoker(ServiceContract contract, Operation operation)
+            throws TargetInvokerCreationException {
+            return null;
+        }
+    }
+}

Propchange: incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceBindingExtensionTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceBindingExtensionTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceTestCase.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceTestCase.java Sun Dec 31 10:58:58 2006
@@ -44,7 +44,7 @@
 public class ReferenceTestCase extends TestCase {
 
     public void testScope() throws Exception {
-        TestReference ref = new TestReference();
+        TestReferenceBinding ref = new TestReferenceBinding();
         assertEquals(Scope.SYSTEM, ref.getScope());
     }
 
@@ -68,14 +68,14 @@
         replay(chain);
         replay(wire);
         replay(outboundWire);
-        TestReference ref = new TestReference();
+        TestReferenceBinding ref = new TestReferenceBinding();
         ref.setInboundWire(wire);
         ref.setOutboundWire(outboundWire);
         ref.prepare();
     }
 
-    private class TestReference extends ReferenceExtension {
-        public TestReference() {
+    private class TestReferenceBinding extends ReferenceBindingExtension {
+        public TestReferenceBinding() {
             super(null, null);
         }
 

Modified: incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingBuilder.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingBuilder.java (original)
+++ incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiBindingBuilder.java Sun Dec 31 10:58:58 2006
@@ -55,11 +55,11 @@
         return new OSGiServiceBinding(name, parent, wireService, osgiServiceName, host);
     }
 
-    public OSGiReference build(CompositeComponent parent,
-                               BoundReferenceDefinition<OSGiBindingDefinition> boundReferenceDefinition,
-                               DeploymentContext deploymentContext) {
+    public OSGiReferenceBinding build(CompositeComponent parent,
+                                      BoundReferenceDefinition<OSGiBindingDefinition> boundReferenceDefinition,
+                                      OSGiBindingDefinition bindingDefinition, DeploymentContext deploymentContext) {
         String name = boundReferenceDefinition.getName();
-        return new OSGiReference(name, parent);
+        return new OSGiReferenceBinding(name, parent);
     }
 
     protected Class<? extends Object> getServiceInterface(BoundServiceDefinition boundServiceDefinition) {

Copied: incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiReferenceBinding.java (from r491316, incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiReference.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiReferenceBinding.java?view=diff&rev=491465&p1=incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiReference.java&r1=491316&p2=incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiReferenceBinding.java&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiReference.java (original)
+++ incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiReferenceBinding.java Sun Dec 31 10:58:58 2006
@@ -20,7 +20,7 @@
 import java.rmi.Remote;
 
 import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.extension.ReferenceExtension;
+import org.apache.tuscany.spi.extension.ReferenceBindingExtension;
 import org.apache.tuscany.spi.idl.java.JavaIDLUtils;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.ServiceContract;
@@ -29,10 +29,10 @@
 /**
  * @version $Rev$ $Date$
  */
-public class OSGiReference extends ReferenceExtension {
+public class OSGiReferenceBinding extends ReferenceBindingExtension {
     //private final String uri;
 
-    public OSGiReference(String name, CompositeComponent parent) {
+    public OSGiReferenceBinding(String name, CompositeComponent parent) {
         super(name, parent);
         //this.uri = uri;
     }

Propchange: incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiReferenceBinding.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiReferenceBinding.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/tuscany/java/sca/runtime/osgi/src/main/java/org/apache/tuscany/osgi/binding/OSGiReferenceBinding.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java Sun Dec 31 10:58:58 2006
@@ -24,7 +24,7 @@
 import org.apache.tuscany.spi.annotation.Autowire;
 import org.apache.tuscany.spi.builder.BuilderConfigException;
 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.ServiceBinding;
 import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
@@ -44,7 +44,7 @@
 import org.apache.tuscany.idl.wsdl.WSDLServiceContract;
 
 /**
- * Builds a {@link org.osoa.sca.annotations.Service} or {@link org.apache.tuscany.spi.component.Reference} configured
+ * Builds a {@link org.osoa.sca.annotations.Service} or {@link org.apache.tuscany.spi.component.ReferenceBinding} configured
  * with the Axis2 binding
  *
  * @version $Rev$ $Date$
@@ -136,9 +136,10 @@
     }
 
     @SuppressWarnings("unchecked")
-    public Reference build(
+    public ReferenceBinding build(
         CompositeComponent parent,
-        BoundReferenceDefinition<WebServiceBindingDefinition> boundReferenceDefinition,
+        BoundReferenceDefinition boundReferenceDefinition,
+        WebServiceBindingDefinition wsBinding,
         DeploymentContext deploymentContext) {
 
         try {
@@ -153,7 +154,6 @@
             // The WSDL portType from the WSDL Port decides the incoming SOAP message format
 
             ServiceContract<?> outboundContract = inboundContract;
-            WebServiceBindingDefinition wsBinding = boundReferenceDefinition.getBinding();
             Port port = wsBinding.getWSDLPort();
             if (port == null) {
                 // FIXME: [rfeng] No WSDL is referenced by binding.ws, we need to create one from
@@ -174,11 +174,11 @@
                 throw new Axis2BindingBuilderRuntimeException(e);
             }
 
-            Reference reference = new Axis2Reference(boundReferenceDefinition.getName(), parent, wsBinding,
+            ReferenceBinding referenceBinding = new Axis2ReferenceBinding(boundReferenceDefinition.getName(), parent, wsBinding,
                 inboundContract, workContext);
-            reference.setBindingServiceContract(outboundContract);
+            referenceBinding.setBindingServiceContract(outboundContract);
 
-            return reference;
+            return referenceBinding;
 
         } catch (InvalidServiceContractException e) {
             throw new Axis2BindingBuilderRuntimeException(e);

Copied: incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceBinding.java (from r491316, incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Reference.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceBinding.java?view=diff&rev=491465&p1=incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Reference.java&r1=491316&p2=incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceBinding.java&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Reference.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceBinding.java Sun Dec 31 10:58:58 2006
@@ -24,7 +24,7 @@
 
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.extension.ReferenceExtension;
+import org.apache.tuscany.spi.extension.ReferenceBindingExtension;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.TargetInvoker;
@@ -45,14 +45,14 @@
 /**
  * Axis2Reference uses Axis2 to invoke a remote web service
  */
-public class Axis2Reference<T> extends ReferenceExtension {
+public class Axis2ReferenceBinding<T> extends ReferenceBindingExtension {
 
     private WebServicePortMetaData wsPortMetaData;
     private ServiceClient serviceClient;
     private WorkContext workContext;
 
     @SuppressWarnings("unchecked")
-    public Axis2Reference(String theName,
+    public Axis2ReferenceBinding(String theName,
                           CompositeComponent parent,
                           WebServiceBindingDefinition wsBinding,
                           ServiceContract contract, WorkContext workContext) {

Propchange: incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceBinding.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceBinding.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceBinding.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/services/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ReferenceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ReferenceTestCase.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ReferenceTestCase.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ReferenceTestCase.java Sun Dec 31 10:58:58 2006
@@ -46,7 +46,7 @@
 public class Axis2ReferenceTestCase extends TestCase {
 
     public void testInvokeService() throws Exception {
-        Axis2Reference axis2Reference = createAxis2Reference("testWebAppName", "testServiceName");
+        Axis2ReferenceBinding axis2Reference = createAxis2Reference("testWebAppName", "testServiceName");
         ServiceContract contract = new JavaServiceContract();
         Operation operation = new Operation<Type>("sayHi", null, null, null, false, null, NO_CONVERSATION);
         TargetInvoker targetInvoker = axis2Reference.createTargetInvoker(contract, operation);
@@ -55,7 +55,7 @@
     }
 
     public void testAsyncTargetInvoker() throws Exception {
-        Axis2Reference axis2Reference = createAxis2Reference("testWebAppName", "testServiceName");
+        Axis2ReferenceBinding axis2Reference = createAxis2Reference("testWebAppName", "testServiceName");
         //Create a mocked InboundWire, make the call of ServiceBindingExtension.getInterface() returns a Class
         InboundWire inboundWire = EasyMock.createNiceMock(InboundWire.class);
         JavaServiceContract contract = new JavaServiceContract(Greeter.class);
@@ -76,7 +76,7 @@
         assertTrue(asyncTargetInvoker instanceof Axis2AsyncTargetInvoker);
     }
 
-    private Axis2Reference createAxis2Reference(String webAppName, String serviceName) throws Exception {
+    private Axis2ReferenceBinding createAxis2Reference(String webAppName, String serviceName) throws Exception {
         //Create WebServiceBindingDefinition
         String wsdlLocation = "/wsdl/hello_world_doc_lit.wsdl";
         URL url = getClass().getResource(wsdlLocation);
@@ -98,7 +98,7 @@
         // TODO figure out what to do with the service contract
         ServiceContract<?> contract = new WSDLServiceContract();
         contract.setInterfaceClass(Greeter.class);
-        return new Axis2Reference(serviceName,
+        return new Axis2ReferenceBinding(serviceName,
             parent,
             wsBinding,
             contract, null);

Modified: incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixBindingBuilder.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixBindingBuilder.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixBindingBuilder.java Sun Dec 31 10:58:58 2006
@@ -22,7 +22,7 @@
 import java.util.WeakHashMap;
 
 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.ServiceBinding;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.extension.BindingBuilderExtension;
@@ -34,7 +34,7 @@
 import org.objectweb.celtix.Bus;
 
 /**
- * Builds a {@link org.apache.tuscany.spi.component.ServiceBinding} or {@link org.apache.tuscany.spi.component.Reference}
+ * Builds a {@link org.apache.tuscany.spi.component.ServiceBinding} or {@link org.apache.tuscany.spi.component.ReferenceBinding}
  * configured with the Celtix binding
  *
  * @version $Rev$ $Date$
@@ -62,10 +62,10 @@
             typeHelper);
     }
 
-    public Reference build(CompositeComponent parent,
-                           BoundReferenceDefinition<WebServiceBindingDefinition> boundReferenceDefinition,
-                           DeploymentContext deploymentContext) {
-        WebServiceBindingDefinition wsBinding = boundReferenceDefinition.getBinding();
+    public ReferenceBinding build(CompositeComponent parent,
+                                  BoundReferenceDefinition boundReferenceDefinition,
+                                  WebServiceBindingDefinition wsBinding,
+                                  DeploymentContext deploymentContext) {
         TypeHelper typeHelper = (TypeHelper) deploymentContext.getExtension(TypeHelper.class.getName());
         if (typeHelper == null) {
             typeHelper = TypeHelper.INSTANCE;
@@ -73,7 +73,7 @@
         if (bus == null) {
             bus = getBus(wsBinding.getWSDLDefinitionRegistry());
         }
-        return new CeltixReference(
+        return new CeltixReferenceBinding(
             boundReferenceDefinition.getName(),
             parent,
             wsBinding,

Copied: incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReferenceBinding.java (from r491316, incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReference.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReferenceBinding.java?view=diff&rev=491465&p1=incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReference.java&r1=491316&p2=incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReferenceBinding.java&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReference.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReferenceBinding.java Sun Dec 31 10:58:58 2006
@@ -24,7 +24,7 @@
 
 import org.apache.tuscany.spi.builder.BuilderException;
 import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.extension.ReferenceExtension;
+import org.apache.tuscany.spi.extension.ReferenceBindingExtension;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.TargetInvoker;
@@ -33,11 +33,11 @@
 import org.objectweb.celtix.Bus;
 
 /**
- * The implementation of a {@link org.apache.tuscany.spi.component.Reference} configured with the Celtix binding
+ * The implementation of a {@link org.apache.tuscany.spi.component.ReferenceBinding} configured with the Celtix binding
  *
  * @version $Rev$ $Date$
  */
-public class CeltixReference<T> extends ReferenceExtension {
+public class CeltixReferenceBinding<T> extends ReferenceBindingExtension {
 
     private Bus bus;
     private Port port;
@@ -45,7 +45,7 @@
     private Service wsdlService;
     private TypeHelper typeHelper;
 
-    public CeltixReference(String name,
+    public CeltixReferenceBinding(String name,
                            CompositeComponent parent,
                            WebServiceBindingDefinition binding,
                            Bus theBus,

Propchange: incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReferenceBinding.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReferenceBinding.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/services/bindings/binding.jms/src/main/java/org/apache/tuscany/binding/jms/JMSBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.jms/src/main/java/org/apache/tuscany/binding/jms/JMSBindingBuilder.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.jms/src/main/java/org/apache/tuscany/binding/jms/JMSBindingBuilder.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.jms/src/main/java/org/apache/tuscany/binding/jms/JMSBindingBuilder.java Sun Dec 31 10:58:58 2006
@@ -78,9 +78,10 @@
         return serviceBinding;
     }
 
-    public JMSReference build(CompositeComponent parent,
-                              BoundReferenceDefinition<JMSBindingDefinition> referenceDefinition,
-                              DeploymentContext deploymentContext) {
+    public JMSReferenceBinding build(CompositeComponent parent,
+                                     BoundReferenceDefinition referenceDefinition,
+                                     JMSBindingDefinition jmsBinding,
+                                     DeploymentContext deploymentContext) {
 
         String name = referenceDefinition.getName();
         Class<?> interfaze = referenceDefinition.getServiceContract().getInterfaceClass();
@@ -92,7 +93,6 @@
         }
         serviceContract.setDataBinding(OM_DATA_BINDING);
 
-        JMSBindingDefinition jmsBinding = referenceDefinition.getBinding();
         JMSResourceFactory jmsResourceFactory = getJMSResourceFactory(jmsBinding);
 
         Destination requestDest;
@@ -111,8 +111,8 @@
         OperationAndDataBinding responseODB =
             getRequestOperationAndDatabinding(jmsBinding, deploymentContext.getClassLoader());
 
-        JMSReference reference =
-            new JMSReference(name, parent, jmsBinding, jmsResourceFactory, requestODB, responseODB,
+        JMSReferenceBinding reference =
+            new JMSReferenceBinding(name, parent, jmsBinding, jmsResourceFactory, requestODB, responseODB,
                 requestDest, replyDest);
         reference.setBindingServiceContract(serviceContract);
         return reference;

Copied: incubator/tuscany/java/sca/services/bindings/binding.jms/src/main/java/org/apache/tuscany/binding/jms/JMSReferenceBinding.java (from r491316, incubator/tuscany/java/sca/services/bindings/binding.jms/src/main/java/org/apache/tuscany/binding/jms/JMSReference.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.jms/src/main/java/org/apache/tuscany/binding/jms/JMSReferenceBinding.java?view=diff&rev=491465&p1=incubator/tuscany/java/sca/services/bindings/binding.jms/src/main/java/org/apache/tuscany/binding/jms/JMSReference.java&r1=491316&p2=incubator/tuscany/java/sca/services/bindings/binding.jms/src/main/java/org/apache/tuscany/binding/jms/JMSReferenceBinding.java&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.jms/src/main/java/org/apache/tuscany/binding/jms/JMSReference.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.jms/src/main/java/org/apache/tuscany/binding/jms/JMSReferenceBinding.java Sun Dec 31 10:58:58 2006
@@ -21,7 +21,7 @@
 import javax.jms.Destination;
 
 import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.extension.ReferenceExtension;
+import org.apache.tuscany.spi.extension.ReferenceBindingExtension;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.TargetInvoker;
@@ -29,7 +29,7 @@
 /**
  * @version $Rev: 449970 $ $Date: 2006-09-26 06:05:35 -0400 (Tue, 26 Sep 2006) $
  */
-public class JMSReference extends ReferenceExtension {
+public class JMSReferenceBinding extends ReferenceBindingExtension {
 
     protected JMSBindingDefinition jmsBinding;
     protected JMSResourceFactory jmsResourceFactory;
@@ -38,7 +38,7 @@
     protected Destination requestDest;
     protected Destination replyDest;
 
-    public JMSReference(String name,
+    public JMSReferenceBinding(String name,
                         CompositeComponent parent,
                         JMSBindingDefinition jmsBinding,
                         JMSResourceFactory jmsResourceFactory,

Propchange: incubator/tuscany/java/sca/services/bindings/binding.jms/src/main/java/org/apache/tuscany/binding/jms/JMSReferenceBinding.java
------------------------------------------------------------------------------
--- svn:ignores (added)
+++ svn:ignores Sun Dec 31 10:58:58 2006
@@ -0,0 +1,14 @@
+target
+*.iws
+*.ipr
+*.iml
+.project
+.classpath
+maven.log
+velocity.log*
+junit*.properties
+surefire*.properties
+.settings
+.deployables
+.wtpmodules
+

Modified: incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingBuilder.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingBuilder.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingBuilder.java Sun Dec 31 10:58:58 2006
@@ -22,7 +22,7 @@
 
 import org.apache.tuscany.spi.annotation.Autowire;
 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.ServiceBinding;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.extension.BindingBuilderExtension;
@@ -68,19 +68,15 @@
             intf);
     }
 
-    @SuppressWarnings({"unchecked"})
-    public Reference build(CompositeComponent parent,
-                           BoundReferenceDefinition<RMIBindingDefinition> boundReferenceDefinition,
-                           DeploymentContext deploymentContext) {
+    public ReferenceBinding build(CompositeComponent parent,
+                                  BoundReferenceDefinition boundReferenceDefinition,
+                                  RMIBindingDefinition bindingDefinition,
+                                  DeploymentContext deploymentContext) {
         String name = boundReferenceDefinition.getName();
-        String host = boundReferenceDefinition.getBinding().getHost();
-        String port = boundReferenceDefinition.getBinding().getPort();
-        String svcName = boundReferenceDefinition.getBinding().getServiceName();
-        // Class<?> interfaze = boundReferenceDefinition.getServiceContract().getInterfaceClass();
-
-        return new RMIReference(name, parent, rmiHost, host, port, svcName,
-            boundReferenceDefinition.getServiceContract().getInterfaceClass());
-
+        String host = bindingDefinition.getHost();
+        String port = bindingDefinition.getPort();
+        String svcName = bindingDefinition.getServiceName();
+        return new RMIReferenceBinding(name, parent, rmiHost, host, port, svcName);
     }
 
 }

Copied: incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReferenceBinding.java (from r491316, incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReference.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReferenceBinding.java?view=diff&rev=491465&p1=incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReference.java&r1=491316&p2=incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReferenceBinding.java&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReference.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReferenceBinding.java Sun Dec 31 10:58:58 2006
@@ -19,7 +19,7 @@
 import java.lang.reflect.Method;
 
 import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.extension.ReferenceExtension;
+import org.apache.tuscany.spi.extension.ReferenceBindingExtension;
 import static org.apache.tuscany.spi.idl.java.JavaIDLUtils.findMethod;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.ServiceContract;
@@ -30,7 +30,7 @@
 /**
  * @version $Rev$ $Date$
  */
-public class RMIReference<T> extends ReferenceExtension {
+public class RMIReferenceBinding extends ReferenceBindingExtension {
     private final String host;
 
     private final String port;
@@ -39,13 +39,12 @@
 
     private RMIHost rmiHost;
 
-    public RMIReference(String name,
-                        CompositeComponent parent,
-                        RMIHost rmiHost,
-                        String host,
-                        String port,
-                        String svcName,
-                        Class<T> service) {
+    public RMIReferenceBinding(String name,
+                               CompositeComponent parent,
+                               RMIHost rmiHost,
+                               String host,
+                               String port,
+                               String svcName) {
         super(name, parent);
         this.host = host;
         this.port = port;

Propchange: incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReferenceBinding.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/services/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReferenceBinding.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/services/bindings/binding.rmi/src/test/java/org/apache/tuscany/binding/rmi/RMIBindingBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.rmi/src/test/java/org/apache/tuscany/binding/rmi/RMIBindingBuilderTestCase.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.rmi/src/test/java/org/apache/tuscany/binding/rmi/RMIBindingBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.rmi/src/test/java/org/apache/tuscany/binding/rmi/RMIBindingBuilderTestCase.java Sun Dec 31 10:58:58 2006
@@ -16,33 +16,36 @@
  */
 package org.apache.tuscany.binding.rmi;
 
-import static org.easymock.EasyMock.expect;
-import static org.easymock.classextension.EasyMock.createMock;
-import static org.easymock.classextension.EasyMock.replay;
-import junit.framework.TestCase;
+import java.util.ArrayList;
+import java.util.List;
 
+import org.apache.tuscany.spi.model.BindingDefinition;
 import org.apache.tuscany.spi.model.BoundReferenceDefinition;
 import org.apache.tuscany.spi.model.ServiceContract;
 
+import junit.framework.TestCase;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.classextension.EasyMock.createMock;
+import static org.easymock.classextension.EasyMock.replay;
+
 public class RMIBindingBuilderTestCase extends TestCase {
-    
+
     public void testGetBindingType() {
         assertEquals(RMIBindingDefinition.class, new RMIBindingBuilder(null).getBindingType());
     }
 
-    @SuppressWarnings("unchecked")
     public void testBuildService() {
         RMIBindingBuilder builder = new RMIBindingBuilder(null);
-        BoundReferenceDefinition<RMIBindingDefinition> def = createMock(BoundReferenceDefinition.class);
+        BoundReferenceDefinition def = createMock(BoundReferenceDefinition.class);
         expect(def.getName()).andReturn("petra");
         RMIBindingDefinition binding = new RMIBindingDefinition();
-        expect(def.getBinding()).andReturn(binding );
-        expect(def.getBinding()).andReturn(binding );
-        expect(def.getBinding()).andReturn(binding );
+        List<BindingDefinition> bindings = new ArrayList<BindingDefinition>();
+        bindings.add(binding);
+        expect(def.getBindings()).andReturn(bindings).times(3);
         ServiceContract sc = createMock(ServiceContract.class);
         expect(def.getServiceContract()).andReturn(sc);
         replay(def);
-        Object ref = builder.build(null, def, null);
-        assertTrue(ref instanceof RMIReference);
+        Object ref = builder.build(null, def, binding, null);
+        assertTrue(ref instanceof RMIReferenceBinding);
     }
 }

Modified: incubator/tuscany/java/sca/services/bindings/binding.rmi/src/test/java/org/apache/tuscany/binding/rmi/RMIReferenceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.rmi/src/test/java/org/apache/tuscany/binding/rmi/RMIReferenceTestCase.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.rmi/src/test/java/org/apache/tuscany/binding/rmi/RMIReferenceTestCase.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.rmi/src/test/java/org/apache/tuscany/binding/rmi/RMIReferenceTestCase.java Sun Dec 31 10:58:58 2006
@@ -31,7 +31,7 @@
     @SuppressWarnings("unchecked")
     public void testCreateTargetInvoker() {
         // TODO: this doesn't really test anything yet
-        RMIReference ref = new RMIReference(null, null, null, null, null, null, null);
+        RMIReferenceBinding ref = new RMIReferenceBinding(null, null, null, null, null, null);
         ServiceContract contract = new JavaServiceContract();
         contract.setInterfaceClass(String.class);
         List l = new ArrayList();

Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java Sun Dec 31 10:58:58 2006
@@ -24,9 +24,10 @@
 import org.apache.tuscany.spi.component.Component;
 import org.apache.tuscany.spi.component.ComponentRegistrationException;
 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.deployer.DeploymentContext;
 import org.apache.tuscany.spi.extension.ComponentBuilderExtension;
 import org.apache.tuscany.spi.model.BoundReferenceDefinition;
@@ -83,9 +84,9 @@
                 throw new BuilderInstantiationException("Error registering service", e);
             }
         }
-        for (BoundReferenceDefinition<?> referenceDefinition : componentType.getReferences().values()) {
+        for (BoundReferenceDefinition referenceDefinition : componentType.getReferences().values()) {
             // call back into builder registry to handle building of references
-            Reference reference = (Reference) builderRegistry.build(parent, referenceDefinition, deploymentContext);
+            Reference reference = builderRegistry.build(parent, referenceDefinition, deploymentContext);
             connector.connect(reference);
             try {
                 component.register(reference);

Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeComponent.java Sun Dec 31 10:58:58 2006
@@ -166,15 +166,20 @@
             if (object == null) {
                 return null;
             }
-            Class<?> type;
+            Class<?> type = null;
             if (object instanceof Reference) {
                 Reference reference = (Reference) object;
-                type = reference.getInboundWire().getServiceContract().getInterfaceClass();
+                InboundWire wire = null;
+                if (!reference.getReferenceBindings().isEmpty()) {
+                    // FIXME JFM provide a better way for the runtime to select the binding as opposed to the first one
+                    wire = reference.getReferenceBindings().get(0).getInboundWire();
+                    type = wire.getServiceContract().getInterfaceClass();
+                }
                 if (requiredType != null && requiredType.isAssignableFrom(type)) {
                     // need null check since Spring may pass in a null
                     throw new BeanNotOfRequiredTypeException(name, requiredType, type);
                 }
-                return wireService.createProxy(type, reference.getInboundWire());
+                return wireService.createProxy(type, wire);
             } else if (object instanceof ServiceBinding) {
                 ServiceBinding serviceBinding = (ServiceBinding) object;
                 type = serviceBinding.getInboundWire().getServiceContract().getInterfaceClass();

Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ReferenceInvocationTestCase.java Sun Dec 31 10:58:58 2006
@@ -19,7 +19,10 @@
 package org.apache.tuscany.container.spring.impl;
 
 import java.net.URL;
+import java.util.List;
+import java.util.ArrayList;
 
+import org.apache.tuscany.spi.component.ReferenceBinding;
 import org.apache.tuscany.spi.component.Reference;
 import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.InboundWire;
@@ -48,10 +51,17 @@
         EasyMock.expect(inboundWire.getServiceContract()).andReturn(new ServiceContract(TestBean.class) {
         }).atLeastOnce();
         EasyMock.replay(inboundWire);
-        Reference reference = createMock(Reference.class);
-        expect(reference.getName()).andReturn("bar").anyTimes();
+        ReferenceBinding referenceBinding = createMock(ReferenceBinding.class);
+        expect(referenceBinding.isSystem()).andReturn(false).atLeastOnce();
+        expect(referenceBinding.getInboundWire()).andStubReturn(inboundWire);
+        referenceBinding.start();
+        replay(referenceBinding);
+
+        Reference reference = EasyMock.createMock(Reference.class);
         expect(reference.isSystem()).andReturn(false).atLeastOnce();
-        expect(reference.getInboundWire()).andStubReturn(inboundWire);
+        expect(reference.getName()).andReturn("bar").anyTimes();
+        List<ReferenceBinding> bindings = new ArrayList <ReferenceBinding>();
+        expect(reference.getReferenceBindings()).andReturn(bindings);
         reference.start();
         replay(reference);
         parent.register(reference);

Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/integration/BootstrapTestCase.java Sun Dec 31 10:58:58 2006
@@ -30,7 +30,8 @@
         ServiceBinding binding = service.getServiceBindings().get(0);
         TestBean bean = wireService.createProxy(TestBean.class, binding.getInboundWire());
         bean.echo("foo");
-        bean.getBean().echo("foo");
+        TestBean bean2 = bean.getBean();
+        bean2.echo("foo");
     }
 
     protected void setUp() throws Exception {

Modified: incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestBindingBuilder.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestBindingBuilder.java (original)
+++ incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestBindingBuilder.java Sun Dec 31 10:58:58 2006
@@ -19,7 +19,7 @@
 package org.apache.tuscany.test.binding;
 
 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.ServiceBinding;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.extension.BindingBuilderExtension;
@@ -39,11 +39,12 @@
         return new TestBindingServiceBinding(definition.getName(), parent);
     }
 
-    public Reference build(CompositeComponent parent,
-                           BoundReferenceDefinition<TestBindingDefinition> definition,
-                           DeploymentContext ctx) {
+    public ReferenceBinding build(CompositeComponent parent,
+                                  BoundReferenceDefinition definition,
+                                  TestBindingDefinition bindingDefinition,
+                                  DeploymentContext ctx) {
         String name = definition.getName();
-        return new TestBindingReference(name, parent);
+        return new TestReferenceBinding(name, parent);
     }
 
     protected Class<TestBindingDefinition> getBindingType() {

Copied: incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestReferenceBinding.java (from r491316, incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestBindingReference.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestReferenceBinding.java?view=diff&rev=491465&p1=incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestBindingReference.java&r1=491316&p2=incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestReferenceBinding.java&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestBindingReference.java (original)
+++ incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestReferenceBinding.java Sun Dec 31 10:58:58 2006
@@ -1,7 +1,7 @@
 package org.apache.tuscany.test.binding;
 
 import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.extension.ReferenceExtension;
+import org.apache.tuscany.spi.extension.ReferenceBindingExtension;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.TargetInvoker;
@@ -9,9 +9,9 @@
 /**
  * @version $Rev$ $Date$
  */
-public class TestBindingReference extends ReferenceExtension {
+public class TestReferenceBinding extends ReferenceBindingExtension {
 
-    public TestBindingReference(String name, CompositeComponent parent) {
+    public TestReferenceBinding(String name, CompositeComponent parent) {
         super(name, parent);
     }
 

Propchange: incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestReferenceBinding.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestReferenceBinding.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketBindingBuilder.java?view=diff&rev=491465&r1=491464&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketBindingBuilder.java (original)
+++ incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketBindingBuilder.java Sun Dec 31 10:58:58 2006
@@ -1,7 +1,7 @@
 package org.apache.tuscany.test.binding;
 
 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.ServiceBinding;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.extension.BindingBuilderExtension;
@@ -21,13 +21,14 @@
         return new TestSocketBindingServiceBinding(definition.getName(), port, parent);
     }
 
-    public Reference build(CompositeComponent parent,
-                           BoundReferenceDefinition<TestSocketBindingDefinition> definition,
-                           DeploymentContext ctx) {
+    public ReferenceBinding build(CompositeComponent parent,
+                                  BoundReferenceDefinition definition,
+                                  TestSocketBindingDefinition bindingDefinition,
+                                  DeploymentContext ctx) {
         String name = definition.getName();
-        int port = definition.getBinding().getPort();
-        String host = definition.getBinding().getHost();
-        return new TestSocketBindingReference(name, host, port, parent);
+        int port = bindingDefinition.getPort();
+        String host = bindingDefinition.getHost();
+        return new TestSocketReferenceBinding(name, host, port, parent);
     }
 
     protected Class<TestSocketBindingDefinition> getBindingType() {

Copied: incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketReferenceBinding.java (from r491316, incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketBindingReference.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketReferenceBinding.java?view=diff&rev=491465&p1=incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketBindingReference.java&r1=491316&p2=incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketReferenceBinding.java&r2=491465
==============================================================================
--- incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketBindingReference.java (original)
+++ incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketReferenceBinding.java Sun Dec 31 10:58:58 2006
@@ -1,7 +1,7 @@
 package org.apache.tuscany.test.binding;
 
 import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.extension.ReferenceExtension;
+import org.apache.tuscany.spi.extension.ReferenceBindingExtension;
 import org.apache.tuscany.spi.model.Operation;
 import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.TargetInvoker;
@@ -9,12 +9,12 @@
 /**
  * @version $Rev$ $Date$
  */
-public class TestSocketBindingReference extends ReferenceExtension {
+public class TestSocketReferenceBinding extends ReferenceBindingExtension {
 
     private String host;
     private int port;
 
-    public TestSocketBindingReference(String name,
+    public TestSocketReferenceBinding(String name,
                                       String host,
                                       int port,
                                       CompositeComponent parent) {

Propchange: incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketReferenceBinding.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/binding/TestSocketReferenceBinding.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date



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