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/08/29 10:08:56 UTC

svn commit: r438003 - in /incubator/tuscany/java/sca: bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/ bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/ bindings/binding.rmi/src/main/java/org/apache/tuscany/...

Author: jmarino
Date: Tue Aug 29 01:08:55 2006
New Revision: 438003

URL: http://svn.apache.org/viewvc?rev=438003&view=rev
Log:
begin conversion to use ServiceContract on wires and invocation chains

Modified:
    incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ServiceTestCase.java
    incubator/tuscany/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/CeltixServiceTestCase.java
    incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReference.java
    incubator/tuscany/java/sca/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceImpl.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemInboundWireImpl.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemOutboundAutowire.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemOutboundWireImpl.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/InboundWireImpl.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/OutboundWireImpl.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireService.java
    incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/AsyncJavaTargetInvokerTestCase.java
    incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/GetServiceByNameTestCase.java
    incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/OutboundWireToJavaTestCase.java
    incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/mock/MockFactory.java
    incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/mock/factories/MockFactory.java
    incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceExtension.java
    incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/wire/RuntimeWire.java
    incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java
    incubator/tuscany/java/sca/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceTestCase.java
    incubator/tuscany/java/sca/spi/src/test/java/org/apache/tuscany/spi/extension/ServiceExtensionTestCase.java
    incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/ArtifactFactory.java

Modified: incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ServiceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ServiceTestCase.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ServiceTestCase.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ServiceTestCase.java Tue Aug 29 01:08:55 2006
@@ -32,18 +32,18 @@
 import org.xml.sax.InputSource;
 
 import org.apache.tuscany.spi.host.ServletHost;
+import org.apache.tuscany.spi.idl.java.JavaServiceContract;
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.WireService;
 
+import commonj.sdo.helper.TypeHelper;
 import junit.framework.TestCase;
 import org.easymock.classextension.EasyMock;
 
-import commonj.sdo.helper.TypeHelper;
-
 public class Axis2ServiceTestCase extends TestCase {
 
     public void testInvokeService() throws Exception {
-if(true) return ;       
+        if (true) return;
         TestServletHost tomcatHost = new TestServletHost();
         Axis2Service axis2Service = createAxis2Service("testWebAppName", "testServiceName", tomcatHost);
         axis2Service.start();
@@ -82,12 +82,19 @@
 
         //Create a mocked InboundWire, make the call of ServiceExtension.getInterface() returns a Class
         InboundWire inboundWire = EasyMock.createNiceMock(InboundWire.class);
-        inboundWire.getBusinessInterface();
-        EasyMock.expectLastCall().andReturn(Greeter.class).anyTimes();
+        JavaServiceContract contract = new JavaServiceContract(Greeter.class);
+        EasyMock.expect(inboundWire.getServiceContract()).andReturn(contract).anyTimes();
         EasyMock.replay(inboundWire);
 
         Axis2Service<Greeter> axis2Service =
-            new Axis2Service<Greeter>(serviceName, Greeter.class, null, wireService, wsBinding, tomcatHost, null, TypeHelper.INSTANCE);
+            new Axis2Service<Greeter>(serviceName,
+                Greeter.class,
+                null,
+                wireService,
+                wsBinding,
+                tomcatHost,
+                null,
+                TypeHelper.INSTANCE);
         axis2Service.setInboundWire(inboundWire);
 
         return axis2Service;

Modified: incubator/tuscany/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/CeltixServiceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/CeltixServiceTestCase.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/CeltixServiceTestCase.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.celtix/src/test/java/org/apache/tuscany/binding/celtix/CeltixServiceTestCase.java Tue Aug 29 01:08:55 2006
@@ -30,6 +30,7 @@
 
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.WireService;
+import org.apache.tuscany.spi.idl.java.JavaServiceContract;
 
 import junit.framework.TestCase;
 import org.easymock.classextension.EasyMock;
@@ -107,8 +108,8 @@
 
         //Create mocked InboundWire, for ServiceExtension.getInterface()
         InboundWire<Greeter> inboundWire = EasyMock.createNiceMock(InboundWire.class);
-        inboundWire.getBusinessInterface();
-        EasyMock.expectLastCall().andReturn(Greeter.class).anyTimes();
+        JavaServiceContract contract = new JavaServiceContract(Greeter.class);
+        EasyMock.expect(inboundWire.getServiceContract()).andReturn(contract).anyTimes();
         EasyMock.replay(inboundWire);
 
         //Create mocked WireService, for ServiceExtension.getServiceInstance()

Modified: incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReference.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReference.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReference.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReference.java Tue Aug 29 01:08:55 2006
@@ -45,7 +45,6 @@
                         String svcName,
                         Class<T> service) {
         super(name, service, parent, wireService);
-        setInterface(service);
         this.host = host;
         this.port = port;
         this.svcName = svcName;

Modified: incubator/tuscany/java/sca/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java (original)
+++ incubator/tuscany/java/sca/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java Tue Aug 29 01:08:55 2006
@@ -72,9 +72,10 @@
                 //with weak typing (java.lang.Object) so that Rhino's call to the proxy succeeds.  Then
                 //within this interceptor proxy perform data mediations required to correctly call the 
                 //referenced service.                
-                JavaScriptReferenceProxy interceptingProxy = 
-                    new JavaScriptReferenceProxy(wire.getBusinessInterface(), 
-                                                 wireProxy, 
+                Class<?> businessInterface = wire.getServiceContract().getInterfaceClass();
+                JavaScriptReferenceProxy interceptingProxy =
+                    new JavaScriptReferenceProxy(businessInterface,
+                                                 wireProxy,
                                                  rhinoScript.createInstanceScope(context));
                 context.put(wire.getReferenceName(),  interceptingProxy.createProxy());
 

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java Tue Aug 29 01:08:55 2006
@@ -165,7 +165,7 @@
         SCAObject object = bindingBuilder.build(parent, boundReferenceDefinition, deploymentContext);
         // create wires for the component
         if (wireService != null) {
-            wireService.createWires((Reference) object);
+            wireService.createWires((Reference) object, boundReferenceDefinition.getServiceContract());
         }
         return object;
     }
@@ -191,7 +191,7 @@
                            DeploymentContext deploymentContext) {
         SCAObject object = bindlessBuilder.build(parent, referenceDefinition, deploymentContext);
         if (wireService != null) {
-            wireService.createWires((Reference)object);
+            wireService.createWires((Reference)object, referenceDefinition.getServiceContract());
         }
         return object;
     }

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java Tue Aug 29 01:08:55 2006
@@ -312,7 +312,9 @@
                 e.setIdentifier(targetName.getPortName());
                 throw e;
             }
-            if (!sourceWire.getBusinessInterface().isAssignableFrom(targetWire.getBusinessInterface())) {
+            Class sourceInterface = sourceWire.getServiceContract().getInterfaceClass();
+            Class targetInterface = targetWire.getServiceContract().getInterfaceClass();
+            if (!sourceInterface.isAssignableFrom(targetInterface)) {
                 throw new BuilderConfigException("Incompatible source and target interfaces");
             }
             boolean optimizable = isOptimizable(source.getScope(), target.getScope());
@@ -320,7 +322,9 @@
         } else if (target instanceof Reference) {
             InboundWire<T> targetWire = ((Reference) target).getInboundWire();
             assert targetWire != null;
-            if (!sourceWire.getBusinessInterface().isAssignableFrom(targetWire.getBusinessInterface())) {
+            Class sourceInterface = sourceWire.getServiceContract().getInterfaceClass();
+            Class targetInterface = targetWire.getServiceContract().getInterfaceClass();
+            if (!sourceInterface.isAssignableFrom(targetInterface)) {
                 throw new BuilderConfigException("Incompatible source and target interfaces");
             }
             boolean optimizable = isOptimizable(source.getScope(), target.getScope());

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java Tue Aug 29 01:08:55 2006
@@ -18,6 +18,16 @@
  */
 package org.apache.tuscany.core.implementation.system.builder;
 
+import org.apache.tuscany.spi.QualifiedName;
+import org.apache.tuscany.spi.builder.BindingBuilder;
+import org.apache.tuscany.spi.builder.BuilderConfigException;
+import org.apache.tuscany.spi.component.Component;
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.deployer.DeploymentContext;
+import org.apache.tuscany.spi.model.BoundReferenceDefinition;
+import org.apache.tuscany.spi.model.BoundServiceDefinition;
+import org.apache.tuscany.spi.wire.OutboundWire;
+
 import org.apache.tuscany.core.component.AutowireComponent;
 import org.apache.tuscany.core.implementation.system.component.SystemReference;
 import org.apache.tuscany.core.implementation.system.component.SystemReferenceImpl;
@@ -29,15 +39,6 @@
 import org.apache.tuscany.core.implementation.system.wire.SystemOutboundAutowire;
 import org.apache.tuscany.core.implementation.system.wire.SystemOutboundWire;
 import org.apache.tuscany.core.implementation.system.wire.SystemOutboundWireImpl;
-import org.apache.tuscany.spi.QualifiedName;
-import org.apache.tuscany.spi.builder.BindingBuilder;
-import org.apache.tuscany.spi.builder.BuilderConfigException;
-import org.apache.tuscany.spi.component.Component;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.model.BoundReferenceDefinition;
-import org.apache.tuscany.spi.model.BoundServiceDefinition;
-import org.apache.tuscany.spi.wire.OutboundWire;
 
 /**
  * Creates {@link SystemService}s and {@link SystemReference}s by evaluating an assembly definition
@@ -49,7 +50,7 @@
     public SystemService build(CompositeComponent parent,
                                BoundServiceDefinition<SystemBinding> boundServiceDefinition,
                                DeploymentContext deploymentContext) {
-        Class<Object> interfaze = boundServiceDefinition.getServiceContract().getInterfaceClass();
+        Class interfaze = boundServiceDefinition.getServiceContract().getInterfaceClass();
         QualifiedName targetName = new QualifiedName(boundServiceDefinition.getTarget().getPath());
         Component target = (Component) parent.getChild(targetName.getPartName());
         if (target == null) {
@@ -74,8 +75,8 @@
         Class<?> interfaze = boundReferenceDefinition.getServiceContract().getInterfaceClass();
         SystemReferenceImpl reference = new SystemReferenceImpl(boundReferenceDefinition.getName(), interfaze, parent);
         SystemInboundWire<?> inboundWire = new SystemInboundWireImpl(boundReferenceDefinition.getName(), interfaze);
-        OutboundWire<?> outboundWire =
-            new SystemOutboundAutowire(boundReferenceDefinition.getName(), interfaze, autowireComponent);
+        String refName = boundReferenceDefinition.getName();
+        OutboundWire outboundWire = new SystemOutboundAutowire(refName, interfaze, autowireComponent);
         reference.setInboundWire(inboundWire);
         reference.setOutboundWire(outboundWire);
         return reference;

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceImpl.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceImpl.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemServiceImpl.java Tue Aug 29 01:08:55 2006
@@ -68,7 +68,7 @@
     }
 
     public Class<T> getInterface() {
-        return inboundWire.getBusinessInterface();
+        return (Class<T>)inboundWire.getServiceContract().getInterfaceClass();
     }
 
     public WireInvocationHandler getHandler() {

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemInboundWireImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemInboundWireImpl.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemInboundWireImpl.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemInboundWireImpl.java Tue Aug 29 01:08:55 2006
@@ -24,6 +24,8 @@
 
 import org.apache.tuscany.spi.component.Component;
 import org.apache.tuscany.spi.component.TargetException;
+import org.apache.tuscany.spi.idl.java.JavaServiceContract;
+import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.InboundInvocationChain;
 import org.apache.tuscany.spi.wire.OutboundWire;
 
@@ -34,26 +36,33 @@
  */
 public class SystemInboundWireImpl<T> implements SystemInboundWire<T> {
     private String serviceName;
-    private Class<T> businessInterface;
+    private ServiceContract serviceContract;
     private Component<?> component;
     private SystemOutboundWire<T> wire;
 
     /**
      * Constructs a new inbound wire
      *
-     * @param serviceName       the name of the service the inbound wire represents
-     * @param businessInterface the service interface
-     * @param target            the target context the wire is connected to
+     * @param serviceName the name of the service the inbound wire represents
+     * @param interfaze   the service interface
+     * @param target      the target context the wire is connected to
      */
-    public SystemInboundWireImpl(String serviceName, Class<T> businessInterface, Component<?> target) {
+    public SystemInboundWireImpl(String serviceName, Class<T> interfaze, Component<?> target) {
         this.serviceName = serviceName;
-        this.businessInterface = businessInterface;
         this.component = target;
+        serviceContract = new JavaServiceContract(interfaze);
     }
 
-    public SystemInboundWireImpl(String serviceName, Class<T> businessInterface) {
-        this.serviceName = serviceName;
-        this.businessInterface = businessInterface;
+    public SystemInboundWireImpl(String serviceName, Class<T> interfaze) {
+        this(serviceName, interfaze, null);
+    }
+
+    public ServiceContract getServiceContract() {
+        return serviceContract;
+    }
+
+    public void setServiceContract(ServiceContract serviceContract) {
+        this.serviceContract = serviceContract;
     }
 
     public String getServiceName() {
@@ -70,14 +79,6 @@
             return wire.getTargetService();
         }
         return (T) component.getServiceInstance(serviceName);
-    }
-
-    public Class<T> getBusinessInterface() {
-        return businessInterface;
-    }
-
-    public void setBusinessInterface(Class<T> businessInterface) {
-        this.businessInterface = businessInterface;
     }
 
     public Class[] getImplementedInterfaces() {

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemOutboundAutowire.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemOutboundAutowire.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemOutboundAutowire.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemOutboundAutowire.java Tue Aug 29 01:08:55 2006
@@ -25,6 +25,8 @@
 import org.apache.tuscany.spi.QualifiedName;
 import org.apache.tuscany.spi.component.TargetException;
 import org.apache.tuscany.spi.component.TargetNotFoundException;
+import org.apache.tuscany.spi.idl.java.JavaServiceContract;
+import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.InboundInvocationChain;
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.OutboundInvocationChain;
@@ -39,13 +41,21 @@
  */
 public class SystemOutboundAutowire<T> implements OutboundAutowire<T>, SystemOutboundWire<T> {
     private String referenceName;
-    private Class<T> businessInterface;
+    private ServiceContract serviceContract;
     private AutowireComponent<?> component;
 
     public SystemOutboundAutowire(String referenceName, Class<T> businessInterface, AutowireComponent<?> component) {
         this.referenceName = referenceName;
-        this.businessInterface = businessInterface;
         this.component = component;
+        serviceContract = new JavaServiceContract(businessInterface);
+    }
+
+    public ServiceContract getServiceContract() {
+        return serviceContract;
+    }
+
+    public void setServiceContract(ServiceContract serviceContract) {
+        this.serviceContract = serviceContract;
     }
 
     public String getReferenceName() {
@@ -64,25 +74,14 @@
     }
 
     public T getTargetService() throws TargetException {
-        T service = component.resolveInstance(businessInterface);
+        Class interfaze = serviceContract.getInterfaceClass();
+        T service = (T) component.resolveInstance(interfaze);
         if (service == null) {
             TargetNotFoundException e = new TargetNotFoundException("Autowire target not found");
-            e.setIdentifier(businessInterface.getName());
+            e.setIdentifier(interfaze.getName());
             throw e;
         }
         return service;
-    }
-
-    public Class<T> getBusinessInterface() {
-        return businessInterface;
-    }
-
-    public void setBusinessInterface(Class<T> businessInterface) {
-        this.businessInterface = businessInterface;
-    }
-
-    public Class[] getImplementedInterfaces() {
-        return new Class[0];
     }
 
     @SuppressWarnings("unchecked")

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemOutboundWireImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemOutboundWireImpl.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemOutboundWireImpl.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/wire/SystemOutboundWireImpl.java Tue Aug 29 01:08:55 2006
@@ -24,6 +24,8 @@
 
 import org.apache.tuscany.spi.QualifiedName;
 import org.apache.tuscany.spi.component.TargetException;
+import org.apache.tuscany.spi.idl.java.JavaServiceContract;
+import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.InboundInvocationChain;
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.OutboundInvocationChain;
@@ -36,13 +38,21 @@
 public class SystemOutboundWireImpl<T> implements SystemOutboundWire<T> {
     private String referenceName;
     private QualifiedName targetName;
-    private Class<T> businessInterface;
+    private ServiceContract serviceContract;
     private SystemInboundWire<T> targetWire;
 
     public SystemOutboundWireImpl(String referenceName, QualifiedName targetName, Class<T> businessInterface) {
         this.referenceName = referenceName;
         this.targetName = targetName;
-        this.businessInterface = businessInterface;
+        serviceContract = new JavaServiceContract(businessInterface);
+    }
+
+    public ServiceContract getServiceContract() {
+        return serviceContract;
+    }
+
+    public void setServiceContract(ServiceContract serviceContract) {
+        this.serviceContract = serviceContract;
     }
 
     public String getReferenceName() {
@@ -66,18 +76,6 @@
             throw new TargetException("No target wire connected to source wire");
         }
         return targetWire.getTargetService();
-    }
-
-    public Class<T> getBusinessInterface() {
-        return businessInterface;
-    }
-
-    public void setBusinessInterface(Class<T> businessInterface) {
-        this.businessInterface = businessInterface;
-    }
-
-    public Class[] getImplementedInterfaces() {
-        return new Class[0];
     }
 
     @SuppressWarnings("unchecked")

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/InboundWireImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/InboundWireImpl.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/InboundWireImpl.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/InboundWireImpl.java Tue Aug 29 01:08:55 2006
@@ -22,6 +22,7 @@
 import java.util.Map;
 
 import org.apache.tuscany.spi.component.TargetException;
+import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.InboundInvocationChain;
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.Interceptor;
@@ -38,7 +39,7 @@
 public class InboundWireImpl<T> implements InboundWire<T> {
 
     private String serviceName;
-    private Class[] businessInterfaces;
+    private ServiceContract serviceContract;
     private OutboundWire<T> targetWire;
     private String callbackReferenceName;
     private Map<Method, InboundInvocationChain> chains = new MethodHashMap<InboundInvocationChain>();
@@ -52,21 +53,16 @@
         throw new TargetException("Target wire not optimized");
     }
 
-    public void setBusinessInterface(Class interfaze) {
-        businessInterfaces = new Class[]{interfaze};
+    public ServiceContract getServiceContract() {
+        return serviceContract;
     }
 
-    @SuppressWarnings("unchecked")
-    public Class<T> getBusinessInterface() {
-        return businessInterfaces[0];
+    public void setServiceContract(ServiceContract serviceContract) {
+        this.serviceContract = serviceContract;
     }
 
     public void addInterface(Class claz) {
         throw new UnsupportedOperationException("Additional proxy interfaces not yet supported");
-    }
-
-    public Class[] getImplementedInterfaces() {
-        return businessInterfaces;
     }
 
     public String getServiceName() {

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/OutboundWireImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/OutboundWireImpl.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/OutboundWireImpl.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/OutboundWireImpl.java Tue Aug 29 01:08:55 2006
@@ -23,6 +23,7 @@
 
 import org.apache.tuscany.spi.QualifiedName;
 import org.apache.tuscany.spi.component.TargetException;
+import org.apache.tuscany.spi.model.ServiceContract;
 import org.apache.tuscany.spi.wire.InboundInvocationChain;
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.Interceptor;
@@ -39,7 +40,7 @@
  */
 public class OutboundWireImpl<T> implements OutboundWire<T> {
 
-    private Class<T>[] businessInterfaces;
+    private ServiceContract serviceContract;
     private Class<T>[] callbackInterfaces;
     private Map<Method, OutboundInvocationChain> chains = new MethodHashMap<OutboundInvocationChain>();
     private Map<Method, InboundInvocationChain> callbackTargetChains = new MethodHashMap<InboundInvocationChain>();
@@ -48,7 +49,6 @@
     private QualifiedName targetName;
     private InboundWire<T> targetWire;
 
-    @SuppressWarnings("unchecked")
     public T getTargetService() throws TargetException {
         if (targetWire != null) {
             // optimized, no interceptors or handlers on either end
@@ -57,21 +57,16 @@
         throw new TargetException("Target wire not optimized");
     }
 
-    @SuppressWarnings("unchecked")
-    public void setBusinessInterface(Class<T> interfaze) {
-        businessInterfaces = new Class[]{interfaze};
+    public ServiceContract getServiceContract() {
+        return serviceContract;
     }
 
-    public Class<T> getBusinessInterface() {
-        return businessInterfaces[0];
+    public void setServiceContract(ServiceContract serviceContract) {
+        this.serviceContract = serviceContract;
     }
 
     public void addInterface(Class<?> claz) {
         throw new UnsupportedOperationException("Additional proxy interfaces not yet supported");
-    }
-
-    public Class[] getImplementedInterfaces() {
-        return businessInterfaces;
     }
 
     @SuppressWarnings("unchecked")

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireService.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireService.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireService.java Tue Aug 29 01:08:55 2006
@@ -81,21 +81,21 @@
     public void init() {
     }
 
-
     public <T> T createProxy(RuntimeWire<T> wire) throws ProxyCreationException {
-        assert wire != null : "WireDefinition was null";
+        assert wire != null : "Wire was null";
         if (wire instanceof InboundWire) {
             InboundWire<T> inbound = (InboundWire<T>) wire;
             JDKInboundInvocationHandler handler = new JDKInboundInvocationHandler(inbound.getInvocationChains());
-            Class<T> interfaze = inbound.getBusinessInterface();
+            Class<?> interfaze = inbound.getServiceContract().getInterfaceClass();
             ClassLoader cl = interfaze.getClassLoader();
-            return interfaze.cast(Proxy.newProxyInstance(cl, new Class[]{interfaze}, handler));
+            //FIXME
+            return (T) Proxy.newProxyInstance(cl, new Class[]{interfaze}, handler);
         } else if (wire instanceof OutboundWire) {
             OutboundWire<T> outbound = (OutboundWire<T>) wire;
             JDKOutboundInvocationHandler handler = new JDKOutboundInvocationHandler(outbound);
-            Class<T> interfaze = outbound.getBusinessInterface();
+            Class<?> interfaze = outbound.getServiceContract().getInterfaceClass();
             ClassLoader cl = interfaze.getClassLoader();
-            return interfaze.cast(Proxy.newProxyInstance(cl, new Class[]{interfaze}, handler));
+            return (T) Proxy.newProxyInstance(cl, new Class[]{interfaze}, handler);
         } else {
             ProxyCreationException e = new ProxyCreationException("Invalid wire type");
             e.setIdentifier(wire.getClass().getName());
@@ -110,7 +110,7 @@
     }
 
     public <T> WireInvocationHandler createHandler(RuntimeWire<T> wire) {
-        assert wire != null : "WireDefinition was null";
+        assert wire != null : "Wire was null";
         if (wire instanceof InboundWire) {
             InboundWire<T> inbound = (InboundWire<T>) wire;
             return new JDKInboundInvocationHandler(inbound.getInvocationChains());
@@ -169,10 +169,10 @@
         }
     }
 
-    public <T> void createWires(Reference<T> reference) {
+    public <T> void createWires(Reference<T> reference, ServiceContract contract) {
         InboundWire<T> wire = new InboundWireImpl<T>();
         Class<T> interfaze = reference.getInterface();
-        wire.setBusinessInterface(interfaze);
+        wire.setServiceContract(contract);
         for (Method method : interfaze.getMethods()) {
             InboundInvocationChain chain = createInboundChain(method);
             chain.addInterceptor(new InvokerInterceptor());
@@ -182,19 +182,19 @@
     }
 
     public void createWires(Service<?> service, BoundServiceDefinition<?> def) {
-        createWires(service, def.getTarget().getPath());
+        createWires(service, def.getTarget().getPath(), def.getServiceContract());
     }
 
     public void createWires(Service<?> service, BindlessServiceDefinition def) {
-        createWires(service, def.getTarget().getPath());
+        createWires(service, def.getTarget().getPath(), def.getServiceContract());
     }
 
-    private <T> void createWires(Service<T> service, String targetName) {
+    private <T> void createWires(Service<T> service, String targetName, ServiceContract contract) {
         InboundWire<T> inboundWire = new InboundWireImpl<T>();
         OutboundWire<T> outboundWire = new OutboundWireImpl<T>();
         Class<T> interfaze = service.getInterface();
-        inboundWire.setBusinessInterface(interfaze);
-        outboundWire.setBusinessInterface(interfaze);
+        inboundWire.setServiceContract(contract);
+        outboundWire.setServiceContract(contract);
         outboundWire.setTargetName(new QualifiedName(targetName));
         for (Method method : interfaze.getMethods()) {
             InboundInvocationChain inboundChain = createInboundChain(method);
@@ -213,25 +213,26 @@
         if (reference.getTargets().size() != 1) {
             throw new UnsupportedOperationException();
         }
+        ServiceContract contract = def.getServiceContract();
         Class<?> interfaze = def.getServiceContract().getInterfaceClass();
         OutboundWire wire = createOutboundWire();
-        wire.setTargetName(new QualifiedName(reference.getTargets().get(0).toString()));
-        wire.setBusinessInterface(interfaze);
+        QualifiedName qName = new QualifiedName(reference.getTargets().get(0).toString());
+        wire.setTargetName(qName);
+        wire.setServiceContract(contract);
         wire.setReferenceName(reference.getReferenceName());
         for (Method method : interfaze.getMethods()) {
             //TODO handle policy
             OutboundInvocationChain chain = createOutboundChain(method);
             wire.addInvocationChain(method, chain);
         }
-        ServiceContract contract = def.getServiceContract();
         Class<?> callbackInterface = contract.getCallbackClass();
         if (callbackInterface != null) {
             wire.setCallbackInterface(callbackInterface);
             for (Method callbackMethod : callbackInterface.getMethods()) {
                 InboundInvocationChain callbackTargetChain = createInboundChain(callbackMethod);
                 OutboundInvocationChain callbackSourceChain = createOutboundChain(callbackMethod);
-// TODO handle policy
-//TODO statement below could be cleaner
+                // TODO handle policy
+                //TODO statement below could be cleaner
                 callbackTargetChain.addInterceptor(new InvokerInterceptor());
                 wire.addTargetCallbackInvocationChain(callbackMethod, callbackTargetChain);
                 wire.addSourceCallbackInvocationChain(callbackMethod, callbackSourceChain);
@@ -240,16 +241,15 @@
         return wire;
     }
 
-    @SuppressWarnings("unchecked")
     public InboundWire createWire(ServiceDefinition service) {
         Class<?> interfaze = service.getServiceContract().getInterfaceClass();
         InboundWire wire = createInboundWire();
-        wire.setBusinessInterface(interfaze);
+        wire.setServiceContract(service.getServiceContract());
         wire.setServiceName(service.getName());
         for (Method method : interfaze.getMethods()) {
             InboundInvocationChain chain = createInboundChain(method);
-// TODO handle policy
-//TODO statement below could be cleaner
+            // TODO handle policy
+            //TODO statement below could be cleaner
             chain.addInterceptor(new InvokerInterceptor());
             wire.addInvocationChain(method, chain);
         }

Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/AsyncJavaTargetInvokerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/AsyncJavaTargetInvokerTestCase.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/AsyncJavaTargetInvokerTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/AsyncJavaTargetInvokerTestCase.java Tue Aug 29 01:08:55 2006
@@ -29,7 +29,6 @@
 import junit.framework.TestCase;
 import static org.apache.tuscany.core.implementation.java.mock.MockFactory.createJavaComponent;
 import org.apache.tuscany.core.implementation.java.mock.components.AsyncTarget;
-import org.apache.tuscany.core.implementation.java.AsyncMonitor;
 import static org.easymock.EasyMock.createMock;
 import static org.easymock.EasyMock.expectLastCall;
 import static org.easymock.EasyMock.getCurrentArguments;

Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/GetServiceByNameTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/GetServiceByNameTestCase.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/GetServiceByNameTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/GetServiceByNameTestCase.java Tue Aug 29 01:08:55 2006
@@ -21,6 +21,7 @@
 import java.util.Collections;
 
 import org.apache.tuscany.spi.component.ScopeContainer;
+import org.apache.tuscany.spi.idl.java.JavaServiceContract;
 import org.apache.tuscany.spi.model.Scope;
 import org.apache.tuscany.spi.wire.InboundWire;
 
@@ -53,7 +54,9 @@
         final JavaAtomicComponent<?> component = new JavaAtomicComponent("target", configuration, null);
 
         InboundWire wire = createMock(InboundWire.class);
-        expect(wire.getBusinessInterface()).andReturn(Target.class);
+
+        JavaServiceContract contract = new JavaServiceContract(Target.class);
+        EasyMock.expect(wire.getServiceContract()).andReturn(contract).anyTimes();
         expect(wire.getServiceName()).andReturn("Target");
         expect(wire.getInvocationChains()).andReturn(Collections.emptyMap());
         expect(wire.getCallbackReferenceName()).andReturn(null);

Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/OutboundWireToJavaTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/OutboundWireToJavaTestCase.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/OutboundWireToJavaTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/OutboundWireToJavaTestCase.java Tue Aug 29 01:08:55 2006
@@ -25,6 +25,7 @@
 import java.util.concurrent.FutureTask;
 
 import org.apache.tuscany.spi.QualifiedName;
+import org.apache.tuscany.spi.idl.java.JavaServiceContract;
 import org.apache.tuscany.spi.component.ScopeContainer;
 import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.wire.InboundWire;
@@ -185,7 +186,8 @@
 
     public static <T> OutboundWire<T> createOutboundWire(QualifiedName targetName, Class<T> interfaze) {
         OutboundWire<T> wire = new OutboundWireImpl<T>();
-        wire.setBusinessInterface(interfaze);
+        JavaServiceContract contract = new JavaServiceContract(interfaze);
+        wire.setServiceContract(contract);
         wire.setTargetName(targetName);
         wire.addInvocationChains(createInvocationChains(interfaze));
         return wire;

Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/mock/MockFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/mock/MockFactory.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/mock/MockFactory.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/mock/MockFactory.java Tue Aug 29 01:08:55 2006
@@ -38,6 +38,7 @@
 import org.apache.tuscany.spi.wire.OutboundWire;
 import org.apache.tuscany.spi.wire.TargetInvoker;
 import org.apache.tuscany.spi.wire.WireService;
+import org.apache.tuscany.spi.idl.java.JavaServiceContract;
 
 import org.apache.tuscany.core.implementation.PojoConfiguration;
 import org.apache.tuscany.core.implementation.java.JavaAtomicComponent;
@@ -264,7 +265,8 @@
                                                        MessageHandler headRequestHandler,
                                                        MessageHandler headResponseHandler) {
         InboundWire<T> wire = new InboundWireImpl<T>();
-        wire.setBusinessInterface(interfaze);
+        JavaServiceContract contract = new JavaServiceContract(interfaze);
+        wire.setServiceContract(contract);
         wire.setServiceName(serviceName);
         wire.addInvocationChains(
             createInboundChains(interfaze, headInterceptor, headRequestHandler, headResponseHandler));
@@ -280,7 +282,8 @@
         wire.setReferenceName(refName);
         wire.addInvocationChains(
             createOutboundChains(interfaze, headInterceptor, headRequestHandler, headResponseHandler));
-        wire.setBusinessInterface(interfaze);
+        JavaServiceContract contract = new JavaServiceContract(interfaze);
+        wire.setServiceContract(contract);
         return wire;
     }
 
@@ -288,7 +291,8 @@
         OutboundWire<T> wire = new OutboundWireImpl<T>();
         wire.setReferenceName(refName);
         wire.addInvocationChains(createOutboundChains(interfaze));
-        wire.setBusinessInterface(interfaze);
+        JavaServiceContract contract = new JavaServiceContract(interfaze);
+        wire.setServiceContract(contract);
         return wire;
     }
 

Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/mock/factories/MockFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/mock/factories/MockFactory.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/mock/factories/MockFactory.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/mock/factories/MockFactory.java Tue Aug 29 01:08:55 2006
@@ -28,6 +28,7 @@
 import org.osoa.sca.annotations.Init;
 
 import org.apache.tuscany.spi.QualifiedName;
+import org.apache.tuscany.spi.idl.java.JavaServiceContract;
 import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.core.implementation.PojoConfiguration;
 import org.apache.tuscany.spi.component.ScopeContainer;
@@ -154,7 +155,8 @@
     public static <T> InboundWire<T> createTargetWireFactory(String serviceName, Class<T> interfaze) {
         InboundWire<T> wire = new InboundWireImpl<T>();
         wire.setServiceName(serviceName);
-        wire.setBusinessInterface(interfaze);
+        JavaServiceContract contract = new JavaServiceContract(interfaze);
+        wire.setServiceContract(contract);
         wire.addInvocationChains(createInboundChains(interfaze));
         return wire;
     }

Modified: incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceExtension.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceExtension.java (original)
+++ incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceExtension.java Tue Aug 29 01:08:55 2006
@@ -76,10 +76,6 @@
         return referenceInterface;
     }
 
-    public void setInterface(Class<T> referenceInterface) {
-        this.referenceInterface = referenceInterface;
-    }
-
     public T getServiceInstance() throws TargetException {
         return wireService.createProxy(inboundWire);
     }

Modified: incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/wire/RuntimeWire.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/wire/RuntimeWire.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/wire/RuntimeWire.java (original)
+++ incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/wire/RuntimeWire.java Tue Aug 29 01:08:55 2006
@@ -19,6 +19,7 @@
 package org.apache.tuscany.spi.wire;
 
 import org.apache.tuscany.spi.component.TargetException;
+import org.apache.tuscany.spi.model.ServiceContract;
 
 /**
  * The base wire type used to connect references and services
@@ -32,25 +33,14 @@
      */
     T getTargetService() throws TargetException;
 
-    /**
-     * Sets the primary interface type generated proxies implement
-     */
-    void setBusinessInterface(Class<T> interfaze);
+    ServiceContract getServiceContract();
 
-    /**
-     * Returns the primary interface type implemented by generated proxies
-     */
-    Class<T> getBusinessInterface();
+    void setServiceContract(ServiceContract contract);
 
     /**
      * Adds an interface type generated proxies implement
      */
     void addInterface(Class<?> claz);
-
-    /**
-     * Returns an array of all interfaces implemented by generated proxies
-     */
-    Class[] getImplementedInterfaces();
 
     /**
      * Returns true if the wire and all of its interceptors and handlers can be optimized

Modified: incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java (original)
+++ incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java Tue Aug 29 01:08:55 2006
@@ -29,6 +29,7 @@
 import org.apache.tuscany.spi.model.ReferenceTarget;
 import org.apache.tuscany.spi.model.ServiceDefinition;
 import org.apache.tuscany.spi.model.BoundServiceDefinition;
+import org.apache.tuscany.spi.model.ServiceContract;
 
 /**
  * Creates proxies that implement Java interfaces and invocation handlers for fronting wires
@@ -60,7 +61,7 @@
 
     void createWires(Component component, ComponentDefinition<?> definition);
 
-    <T> void createWires(Reference<T> reference);
+    <T> void createWires(Reference<T> reference, ServiceContract contract);
 
     void createWires(Service<?> service, BoundServiceDefinition<?> def);
 

Modified: incubator/tuscany/java/sca/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceTestCase.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceTestCase.java (original)
+++ incubator/tuscany/java/sca/spi/src/test/java/org/apache/tuscany/spi/extension/ReferenceTestCase.java Tue Aug 29 01:08:55 2006
@@ -41,13 +41,12 @@
 public class ReferenceTestCase extends TestCase {
 
     public void testScope() throws Exception {
-        TestReference ref = new TestReference();
+        TestReference ref = new TestReference<Object>(Object.class);
         assertEquals(Scope.COMPOSITE, ref.getScope());
     }
 
     public void testSetGetInterface() throws Exception {
-        TestReference<TestReference> ref = new TestReference<TestReference>();
-        ref.setInterface(TestReference.class);
+        TestReference<TestReference> ref = new TestReference<TestReference>(TestReference.class);
         assertEquals(TestReference.class, ref.getInterface());
 
     }
@@ -72,15 +71,15 @@
         replay(chain);
         replay(wire);
         replay(outboundWire);
-        TestReference<?> ref = new TestReference();
+        TestReference<?> ref = new TestReference<Object>(Object.class);
         ref.setInboundWire(wire);
         ref.setOutboundWire(outboundWire);
         ref.prepare();
     }
 
     private class TestReference<T> extends ReferenceExtension<T> {
-        public TestReference() {
-            super(null, null, null, null);
+        public TestReference(Class<T> clazz) {
+            super(null, clazz, null, null);
         }
 
         public TargetInvoker createTargetInvoker(Method operation) {

Modified: incubator/tuscany/java/sca/spi/src/test/java/org/apache/tuscany/spi/extension/ServiceExtensionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/spi/src/test/java/org/apache/tuscany/spi/extension/ServiceExtensionTestCase.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/spi/src/test/java/org/apache/tuscany/spi/extension/ServiceExtensionTestCase.java (original)
+++ incubator/tuscany/java/sca/spi/src/test/java/org/apache/tuscany/spi/extension/ServiceExtensionTestCase.java Tue Aug 29 01:08:55 2006
@@ -18,12 +18,13 @@
  */
 package org.apache.tuscany.spi.extension;
 
+import org.apache.tuscany.spi.idl.java.JavaServiceContract;
 import org.apache.tuscany.spi.model.Scope;
 import org.apache.tuscany.spi.wire.InboundWire;
 
 import junit.framework.TestCase;
 import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expectLastCall;
+import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.replay;
 
 /**
@@ -39,8 +40,8 @@
     @SuppressWarnings("unchecked")
     public void testSetGetInterface() throws Exception {
         InboundWire wire = createMock(InboundWire.class);
-        wire.getBusinessInterface();
-        expectLastCall().andReturn(getClass());
+        JavaServiceContract contract = new JavaServiceContract(getClass());
+        expect(wire.getServiceContract()).andReturn(contract);
         replay(wire);
         ServiceExtension<?> service = new ServiceExtension(null, null, null, null);
         service.setInboundWire(wire);

Modified: incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/ArtifactFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/ArtifactFactory.java?rev=438003&r1=438002&r2=438003&view=diff
==============================================================================
--- incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/ArtifactFactory.java (original)
+++ incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/ArtifactFactory.java Tue Aug 29 01:08:55 2006
@@ -36,6 +36,7 @@
 import org.apache.tuscany.spi.wire.OutboundInvocationChain;
 import org.apache.tuscany.spi.wire.OutboundWire;
 import org.apache.tuscany.spi.wire.WireService;
+import org.apache.tuscany.spi.idl.java.JavaServiceContract;
 
 /**
  * A factory for creating runtime artifacts to facilitate testing without directly instantiating core
@@ -66,7 +67,8 @@
      */
     public static <T> InboundWire<T> createInboundWire(String serviceName, Class<T> interfaze) {
         InboundWire<T> wire = new InboundWireImpl<T>();
-        wire.setBusinessInterface(interfaze);
+        JavaServiceContract contract = new JavaServiceContract(interfaze);
+        wire.setServiceContract(contract);
         wire.setServiceName(serviceName);
         wire.addInvocationChains(createInboundChains(interfaze));
         return wire;
@@ -84,7 +86,8 @@
         OutboundWire<T> wire = new OutboundWireImpl<T>();
         wire.setReferenceName(refName);
         wire.addInvocationChains(createOutboundChains(interfaze));
-        wire.setBusinessInterface(interfaze);
+        JavaServiceContract contract = new JavaServiceContract(interfaze);
+        wire.setServiceContract(contract);
         return wire;
     }
 



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