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/06 05:00:00 UTC

svn commit: r429096 [1/2] - in /incubator/tuscany/java/sca: bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/ bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/ bindings/binding.celtix/src/main/java/org/apache/t...

Author: jmarino
Date: Sat Aug  5 19:59:58 2006
New Revision: 429096

URL: http://svn.apache.org/viewvc?rev=429096&view=rev
Log:
refactor reference extension API for callbacks, not complete; connector refactor; related extension API cleanup

Modified:
    incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java
    incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Reference.java
    incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Service.java
    incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ReferenceTestCase.java
    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/main/java/org/apache/tuscany/binding/celtix/CeltixBindingBuilder.java
    incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReference.java
    incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixService.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/RMIBindingBuilder.java
    incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReference.java
    incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIService.java
    incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicComponent.java
    incubator/tuscany/java/sca/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/JavaScriptImplementationLoaderTestCase.java
    incubator/tuscany/java/sca/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/WireTestCase.java
    incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeComponent.java
    incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/ServiceInvocationTestCase.java
    incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringCompositeBuilderTestCase.java
    incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringTestUtils.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/deployer/DeployerImpl.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemAtomicComponentImpl.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceImpl.java
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.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/loader/StAXUtil.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/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/integration/implementation/system/builder/SystemBuilderWireTestCase.java
    incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/builder/Connector.java
    incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/component/Component.java
    incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/component/Reference.java
    incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java
    incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java
    incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.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/extension/ServiceExtension.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/CompositeComponentExtensionTestCase.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

Modified: incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java Sat Aug  5 19:59:58 2006
@@ -28,12 +28,15 @@
  */
 public class Axis2BindingBuilder extends BindingBuilderExtension<WebServiceBinding> {
     public SCAObject build(CompositeComponent parent,
-                           BoundServiceDefinition<WebServiceBinding> boundServiceDefinition,
+                           BoundServiceDefinition<WebServiceBinding> serviceDefinition,
                            DeploymentContext deploymentContext) {
-        WebServiceBinding wsBinding = boundServiceDefinition.getBinding();
+        WebServiceBinding wsBinding = serviceDefinition.getBinding();
+        // FIXME need to get interface for the service
+        Class<?> interfaze = null;
         //FIXME: Axis2Service needs an instance of ServletHost as parameter. How to get it?
         return new Axis2Service(
-            boundServiceDefinition.getName(),
+            serviceDefinition.getName(),
+            interfaze,
             parent,
             wireService,
             wsBinding,

Modified: incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Reference.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Reference.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Reference.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Reference.java Sat Aug  5 19:59:58 2006
@@ -66,7 +66,7 @@
         }
     }
 
-    public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
+    public TargetInvoker createTargetInvoker(Method operation) {
         Axis2TargetInvoker invoker = null;
         try {
             //FIXME: SDODataBinding needs to pass in TypeHelper and classLoader as parameters.

Modified: incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Service.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Service.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Service.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Service.java Sat Aug  5 19:59:58 2006
@@ -57,16 +57,18 @@
  */
 public class Axis2Service<T> extends ServiceExtension<T> {
 
-    private ServletHost tomcatHost;
+    private ServletHost host;
     private WebServiceBinding wsBinding;
 
     public Axis2Service(String theName,
-                        CompositeComponent parent, WireService wireService,
+                        Class<T> interfaze,
+                        CompositeComponent parent,
+                        WireService wireService,
                         WebServiceBinding binding,
                         ServletHost servletHost) {
-        super(theName, parent, wireService);
+        super(theName, interfaze, parent, wireService);
         wsBinding = binding;
-        tomcatHost = servletHost;
+        host = servletHost;
     }
 
     public void start() {
@@ -113,7 +115,7 @@
         }
 
         String servletMapping = wsBinding.getWebAppName() + "/services/" + this.getName();
-        tomcatHost.registerMapping(servletMapping, servlet);
+        host.registerMapping(servletMapping, servlet);
     }
 
     private AxisService createAxisService(WebServiceBinding wsBinding) throws AxisFault {

Modified: incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ReferenceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ReferenceTestCase.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ReferenceTestCase.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ReferenceTestCase.java Sat Aug  5 19:59:58 2006
@@ -22,7 +22,7 @@
     public void testInvokeService() throws Exception {
         Axis2Reference axis2Reference = createAxis2Reference("testWebAppName", "testServiceName");
         Method operation = Greeter.class.getMethod("sayHi");
-        TargetInvoker targetInvoker = axis2Reference.createTargetInvoker("anyServiceName", operation);
+        TargetInvoker targetInvoker = axis2Reference.createTargetInvoker(operation);
         assertNotNull(targetInvoker);
     }
 

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=429096&r1=429095&r2=429096&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 Sat Aug  5 19:59:58 2006
@@ -65,7 +65,8 @@
         EasyMock.expectLastCall().andReturn(Greeter.class).anyTimes();
         EasyMock.replay(inboundWire);
 
-        Axis2Service<?> axis2Service = new Axis2Service(serviceName, null, wireService, wsBinding, tomcatHost);
+        Axis2Service<Greeter> axis2Service =
+            new Axis2Service<Greeter>(serviceName, Greeter.class, null, wireService, wsBinding, tomcatHost);
         axis2Service.setInboundWire(inboundWire);
 
         return axis2Service;

Modified: incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixBindingBuilder.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixBindingBuilder.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixBindingBuilder.java Sat Aug  5 19:59:58 2006
@@ -46,8 +46,11 @@
         Definition definition = binding.getWSDLDefinition();
         Port port = binding.getWSDLPort();
         Service service = binding.getWSDLService();
+        //FIXME get interface
+        Class<?> interfaze = null;
         return new CeltixService(
             boundServiceDefinition.getName(),
+            interfaze,
             definition,
             port,
             service,

Modified: incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReference.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReference.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReference.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReference.java Sat Aug  5 19:59:58 2006
@@ -22,12 +22,11 @@
 import org.apache.tuscany.spi.extension.ReferenceExtension;
 import org.apache.tuscany.spi.wire.TargetInvoker;
 import org.apache.tuscany.spi.wire.WireService;
+
 import org.objectweb.celtix.Bus;
-import org.objectweb.celtix.bus.bindings.WSDLMetaDataCache;
 
 /**
- * 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.Reference} configured with the Celtix binding
  *
  * @version $Rev$ $Date$
  */
@@ -52,7 +51,7 @@
         this.bus = bus;
     }
 
-    public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
+    public TargetInvoker createTargetInvoker(Method operation) {
         //FIXME - can we pass in the method name as the operation name?
         return new CeltixInvoker(operation.getName(), bus, port, wsdlService, wsdlDef);
     }

Modified: incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixService.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixService.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixService.java Sat Aug  5 19:59:58 2006
@@ -33,12 +33,15 @@
 import javax.xml.namespace.QName;
 import javax.xml.ws.WebServiceProvider;
 
-import org.apache.tuscany.binding.celtix.io.SCAServerDataBindingCallback;
+import org.osoa.sca.annotations.Destroy;
+
 import org.apache.tuscany.spi.CoreRuntimeException;
 import org.apache.tuscany.spi.builder.BuilderConfigException;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.extension.ServiceExtension;
 import org.apache.tuscany.spi.wire.WireService;
+
+import org.apache.tuscany.binding.celtix.io.SCAServerDataBindingCallback;
 import org.objectweb.celtix.Bus;
 import org.objectweb.celtix.bindings.DataBindingCallback;
 import org.objectweb.celtix.bindings.ServerBinding;
@@ -50,7 +53,6 @@
 import org.objectweb.celtix.ws.addressing.AttributedURIType;
 import org.objectweb.celtix.ws.addressing.EndpointReferenceType;
 import org.objectweb.celtix.wsdl.EndpointReferenceUtils;
-import org.osoa.sca.annotations.Destroy;
 import org.xmlsoap.schemas.wsdl.http.AddressType;
 
 /**
@@ -72,13 +74,14 @@
 
 
     public CeltixService(String name,
+                         Class<T> interfaze,
                          Definition wsdlDef,
                          Port port,
                          Service wsdlService,
                          CompositeComponent<?> parent,
                          Bus bus,
                          WireService wireService) {
-        super(name, parent, wireService);
+        super(name, interfaze, parent, wireService);
         this.port = port;
         this.wsdlDef = wsdlDef;
         this.wsdlService = wsdlService;
@@ -99,8 +102,8 @@
         }
 
         EndpointReferenceType reference = EndpointReferenceUtils.getEndpointReference(url,
-                                                                                      wsdlService.getQName(),
-                                                                                      port.getName());
+            wsdlService.getQName(),
+            port.getName());
 
         AttributedURIType address = new AttributedURIType();
 
@@ -135,7 +138,7 @@
 
         try {
             ServerBinding serverBinding = bus.getBindingManager().getBindingFactory(bindingId).createServerBinding(
-                                                                                                                   reference, this);
+                reference, this);
             serverBinding.activate();
         } catch (Exception e) {
             throw new CeltixServiceInitException(e);
@@ -164,7 +167,7 @@
             }
 
             ServerDataBindingCallback cb = getDataBindingCallback(qn, null,
-                                                                  DataBindingCallback.Mode.PARTS);
+                DataBindingCallback.Mode.PARTS);
             opMap.put(qn, cb);
             if (!"".equals(cb.getRequestWrapperQName().getLocalPart())) {
                 opMap.put(cb.getRequestWrapperQName(), cb);
@@ -212,7 +215,7 @@
             }
         }
         throw new BuilderConfigException("no operation named " + operationName
-                                         + " found on service interface: " + serviceInterface.getName());
+            + " found on service interface: " + serviceInterface.getName());
     }
 
 

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=429096&r1=429095&r2=429096&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 Sat Aug  5 19:59:58 2006
@@ -1,35 +1,29 @@
 package org.apache.tuscany.binding.celtix;
 
 import java.net.URL;
-
-import org.xml.sax.InputSource;
-
-import junit.framework.TestCase;
-import org.easymock.classextension.EasyMock;
-
 import javax.wsdl.Definition;
 import javax.wsdl.Port;
-import javax.wsdl.factory.WSDLFactory;
 import javax.wsdl.Service;
+import javax.wsdl.factory.WSDLFactory;
 import javax.wsdl.xml.WSDLReader;
 import javax.xml.namespace.QName;
-import javax.xml.ws.Holder;
 
-import org.apache.tuscany.spi.wire.WireService;
+import org.xml.sax.InputSource;
+
 import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.wire.WireService;
 
+import junit.framework.TestCase;
+import org.easymock.classextension.EasyMock;
 import org.objectweb.celtix.Bus;
+import org.objectweb.celtix.bindings.BindingManager;
 import org.objectweb.celtix.bindings.DataBindingCallback;
-import org.objectweb.celtix.bindings.ServerDataBindingCallback;
 import org.objectweb.celtix.bindings.ServerBindingEndpointCallback;
-import org.objectweb.celtix.bus.bindings.WSDLMetaDataCache;
-import org.objectweb.celtix.bus.bindings.WSDLOperationInfo;
-import org.objectweb.celtix.bus.bindings.soap.SOAPServerBinding;
+import org.objectweb.celtix.bindings.ServerDataBindingCallback;
 import org.objectweb.celtix.bus.bindings.soap.SOAPBindingFactory;
-import org.objectweb.celtix.bindings.BindingManager;
+import org.objectweb.celtix.bus.bindings.soap.SOAPServerBinding;
 import org.objectweb.celtix.context.ObjectMessageContextImpl;
 import org.objectweb.celtix.ws.addressing.EndpointReferenceType;
-import org.apache.tuscany.binding.celtix.io.SCADataBindingCallback;
 
 /**
  * @version $Rev$ $Date$
@@ -47,7 +41,7 @@
 
         SOAPBindingFactory bindingFactory = EasyMock.createNiceMock(SOAPBindingFactory.class);
         bindingFactory.createServerBinding(EasyMock.isA(EndpointReferenceType.class),
-                                           EasyMock.isA(ServerBindingEndpointCallback.class));
+            EasyMock.isA(ServerBindingEndpointCallback.class));
         EasyMock.expectLastCall().andReturn(serverBinding);
         EasyMock.replay(bindingFactory);
 
@@ -78,21 +72,23 @@
         InputSource input = new InputSource(url.openStream());
         Definition wsdlDef = reader.readWSDL(url.toString(), input);
         Service wsdlService = wsdlDef.getService(new QName("http://objectweb.org/hello_world_soap_http",
-                                                           "SOAPService"));
+            "SOAPService"));
         Port port = wsdlService.getPort("SoapPort");
 
-        InboundWire inboundWire = EasyMock.createNiceMock(InboundWire.class);
+        InboundWire<Greeter> inboundWire = EasyMock.createNiceMock(InboundWire.class);
         inboundWire.getBusinessInterface();
         EasyMock.expectLastCall().andReturn(Greeter.class).anyTimes();
 
         EasyMock.replay(inboundWire);
 
-        CeltixService celtixService = new CeltixService("name", wsdlDef, port, wsdlService, null, bus, wireService);
+        CeltixService<Greeter> celtixService =
+            new CeltixService<Greeter>("name", Greeter.class, wsdlDef, port, wsdlService, null, bus, wireService);
         celtixService.setInboundWire(inboundWire);
         celtixService.start();
 
         QName operationName = new QName("greetMe");
-     	ServerDataBindingCallback callback1 = celtixService.getDataBindingCallback(operationName, new ObjectMessageContextImpl(), DataBindingCallback.Mode.PARTS);
+        ServerDataBindingCallback callback1 = celtixService
+            .getDataBindingCallback(operationName, new ObjectMessageContextImpl(), DataBindingCallback.Mode.PARTS);
         assertNotNull(callback1);
     }
 

Modified: incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingBuilder.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingBuilder.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingBuilder.java Sat Aug  5 19:59:58 2006
@@ -40,18 +40,18 @@
                            BoundServiceDefinition<RMIBinding> boundServiceDefinition,
                            DeploymentContext deploymentContext) {
         String name = boundServiceDefinition.getName();
-        Class<? extends Remote> service = getServiceInterface(boundServiceDefinition);
+        Class<Remote> service = getServiceInterface(boundServiceDefinition);
         String uri = boundServiceDefinition.getBinding().getURI();
-        return new RMIService(name, parent, wireService, uri, service);
+        return new RMIService<Remote>(name, parent, wireService, uri, service);
     }
 
     @SuppressWarnings({"unchecked"})
-    protected Class<? extends Remote> getServiceInterface(BoundServiceDefinition<RMIBinding> boundServiceDefinition) {
+    protected Class<Remote> getServiceInterface(BoundServiceDefinition<RMIBinding> boundServiceDefinition) {
         Class<?> intf = boundServiceDefinition.getServiceContract().getInterfaceClass();
         if (!Remote.class.isAssignableFrom(intf)) {
             throw new InvalidServiceInterfaceException("RMI requires interface extend Remote", intf);
         }
-        return (Class<? extends Remote>) intf;
+        return (Class<Remote>) intf;
     }
 
     public RMIReference build(CompositeComponent parent,

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=429096&r1=429095&r2=429096&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 Sat Aug  5 19:59:58 2006
@@ -39,7 +39,7 @@
         this.uri = uri;
     }
 
-    public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
+    public TargetInvoker createTargetInvoker(Method operation) {
         try {
             Remote proxy = getProxy();
             Method remoteMethod = proxy.getClass().getMethod(operation.getName(), operation.getParameterTypes());

Modified: incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIService.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIService.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIService.java Sat Aug  5 19:59:58 2006
@@ -16,32 +16,34 @@
  */
 package org.apache.tuscany.binding.rmi;
 
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
 import java.net.MalformedURLException;
 import java.rmi.AlreadyBoundException;
 import java.rmi.Naming;
 import java.rmi.NotBoundException;
 import java.rmi.Remote;
 import java.rmi.RemoteException;
-import java.lang.reflect.Proxy;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
 
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.extension.ServiceExtension;
-import org.apache.tuscany.spi.wire.WireService;
 import org.apache.tuscany.spi.wire.WireInvocationHandler;
+import org.apache.tuscany.spi.wire.WireService;
 
 /**
  * @version $Rev$ $Date$
  */
-public class RMIService extends ServiceExtension {
+public class RMIService<T extends Remote> extends ServiceExtension<T> {
     private final String uri;
-    private final Class<? extends Remote> service;
 
-    public RMIService(String name, CompositeComponent parent, WireService wireService, String uri, Class<? extends Remote> service) {
-        super(name, parent, wireService);
+    public RMIService(String name,
+                      CompositeComponent parent,
+                      WireService wireService,
+                      String uri,
+                      Class<T> service) {
+        super(name, service, parent, wireService);
         this.uri = uri;
-        this.service = service;
     }
 
     public void start() {
@@ -72,9 +74,9 @@
         super.stop();
     }
 
-    protected Remote createProxy() {
+    protected T createProxy() {
         InvocationHandler handler = new RMIInvocationHandler(getHandler());
-        return service.cast(Proxy.newProxyInstance(service.getClassLoader(), new Class[]{service}, handler));
+        return interfaze.cast(Proxy.newProxyInstance(interfaze.getClassLoader(), new Class[]{interfaze}, handler));
     }
 
     private static class RMIInvocationHandler implements InvocationHandler {

Modified: incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicComponent.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicComponent.java Sat Aug  5 19:59:58 2006
@@ -20,8 +20,6 @@
 import java.util.Collections;
 import java.util.List;
 
-import groovy.lang.GroovyObject;
-
 import org.apache.tuscany.spi.ObjectCreationException;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.component.ScopeContainer;
@@ -31,6 +29,8 @@
 import org.apache.tuscany.spi.wire.OutboundWire;
 import org.apache.tuscany.spi.wire.TargetInvoker;
 import org.apache.tuscany.spi.wire.WireService;
+
+import groovy.lang.GroovyObject;
 
 /**
  * The Groovy atomic component implementation. Groovy implementations may be "scripts" or classes.

Modified: incubator/tuscany/java/sca/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/JavaScriptImplementationLoaderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/JavaScriptImplementationLoaderTestCase.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/JavaScriptImplementationLoaderTestCase.java (original)
+++ incubator/tuscany/java/sca/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/JavaScriptImplementationLoaderTestCase.java Sat Aug  5 19:59:58 2006
@@ -16,22 +16,21 @@
  */
 package org.apache.tuscany.container.javascript;
 
-import static org.easymock.EasyMock.expect;
-import static org.easymock.classextension.EasyMock.createMock;
-import static org.easymock.classextension.EasyMock.replay;
-import static org.easymock.classextension.EasyMock.verify;
-
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
-import junit.framework.TestCase;
-
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.loader.LoaderException;
 import org.apache.tuscany.spi.loader.LoaderRegistry;
 import org.apache.tuscany.spi.loader.MissingResourceException;
 
+import junit.framework.TestCase;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.classextension.EasyMock.createMock;
+import static org.easymock.classextension.EasyMock.replay;
+import static org.easymock.classextension.EasyMock.verify;
+
 /**
  * Tests for JavaScriptImplementationLoader
  */
@@ -88,7 +87,8 @@
     }
 
     public void testLoadScript() throws LoaderException {
-        String script = loader.loadSource(getClass().getClassLoader(), "org/apache/tuscany/container/javascript/mock/test.js");
+        String script =
+            loader.loadSource(getClass().getClassLoader(), "org/apache/tuscany/container/javascript/mock/test.js");
         assertEquals("//Test Script", script);
     }
 

Modified: incubator/tuscany/java/sca/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/WireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/WireTestCase.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/WireTestCase.java (original)
+++ incubator/tuscany/java/sca/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/WireTestCase.java Sat Aug  5 19:59:58 2006
@@ -111,7 +111,8 @@
         JavaScriptComponent<Greeting> context = new JavaScriptComponent<Greeting>("source", implClass2, services, properties, null, scope,
                 ArtifactFactory.createWireService(), null);
         scope.register(context);
-        TargetInvoker invoker = context.createTargetInvoker("greeting", Greeting.class.getMethod("greet", String.class));
+        TargetInvoker invoker = context.createTargetInvoker("greeting", Greeting.class.getMethod("greet", String.class)
+        );
         assertEquals("foo", invoker.invokeTarget(new String[] { "foo" }));
         scope.stop();
     }

Modified: incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeComponent.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeComponent.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeComponent.java Sat Aug  5 19:59:58 2006
@@ -5,6 +5,16 @@
 import java.util.Locale;
 import java.util.Map;
 
+import org.w3c.dom.Document;
+
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.SCAObject;
+import org.apache.tuscany.spi.component.ScopeContainer;
+import org.apache.tuscany.spi.component.Service;
+import org.apache.tuscany.spi.extension.CompositeComponentExtension;
+import org.apache.tuscany.spi.wire.TargetInvoker;
+
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.BeanFactory;
 import org.springframework.beans.factory.BeanNotOfRequiredTypeException;
@@ -16,15 +26,6 @@
 import org.springframework.context.MessageSourceResolvable;
 import org.springframework.context.NoSuchMessageException;
 import org.springframework.core.io.Resource;
-import org.w3c.dom.Document;
-
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.Reference;
-import org.apache.tuscany.spi.component.SCAObject;
-import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.component.Service;
-import org.apache.tuscany.spi.extension.CompositeComponentExtension;
-import org.apache.tuscany.spi.wire.TargetInvoker;
 
 /**
  * A composite implementation responsible for managing Spring application contexts.
@@ -38,9 +39,9 @@
     /**
      * Creates a new composite
      *
-     * @param name          the name of the SCA composite
-     * @param springContext the pre-instantiated Spring applicaiton context
-     * @param parent        the SCA composite parent
+     * @param name           the name of the SCA composite
+     * @param springContext  the pre-instantiated Spring applicaiton context
+     * @param parent         the SCA composite parent
      * @param propertyValues the values of this composite's Properties
      */
     public SpringCompositeComponent(String name,
@@ -78,9 +79,9 @@
 
 
     /**
-     * An inner class is required to act as the Spring application context parent as opposed to implementing
-     * the interface since the return types for {@link org.springframework.context.ApplicationContext#getParent()}
-     * and {@link org.apache.tuscany.spi.component.CompositeComponent#getParent()} clash
+     * An inner class is required to act as the Spring application context parent as opposed to implementing the
+     * interface since the return types for {@link org.springframework.context.ApplicationContext#getParent()} and
+     * {@link org.apache.tuscany.spi.component.CompositeComponent#getParent()} clash
      */
     private class SCAApplicationContext implements ApplicationContext {
 

Modified: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/ServiceInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/ServiceInvocationTestCase.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/ServiceInvocationTestCase.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/ServiceInvocationTestCase.java Sat Aug  5 19:59:58 2006
@@ -1,20 +1,20 @@
 package org.apache.tuscany.container.spring;
 
-import junit.framework.TestCase;
-import org.springframework.beans.factory.config.BeanDefinition;
-import org.springframework.beans.factory.support.RootBeanDefinition;
-import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.context.support.StaticApplicationContext;
-
-import org.apache.tuscany.container.spring.mock.TestBean;
-import org.apache.tuscany.container.spring.mock.TestBeanImpl;
 import org.apache.tuscany.spi.builder.Connector;
 import org.apache.tuscany.spi.component.Service;
 import org.apache.tuscany.spi.extension.ServiceExtension;
 import org.apache.tuscany.spi.wire.InboundInvocationChain;
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.OutboundWire;
+
+import junit.framework.TestCase;
+import org.apache.tuscany.container.spring.mock.TestBean;
+import org.apache.tuscany.container.spring.mock.TestBeanImpl;
 import org.apache.tuscany.test.ArtifactFactory;
+import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.beans.factory.support.RootBeanDefinition;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.context.support.StaticApplicationContext;
 
 /**
  * Tests a simple invocation through a service to a Spring bean
@@ -29,7 +29,7 @@
         OutboundWire<TestBean> outboundWire = ArtifactFactory.createOutboundWire("fooService", TestBean.class);
         ArtifactFactory.terminateWire(outboundWire);
         Service<TestBean> service =
-                new ServiceExtension<TestBean>("fooService", context, ArtifactFactory.createWireService());
+            new ServiceExtension<TestBean>("fooService", TestBean.class, context, ArtifactFactory.createWireService());
         service.setInboundWire(inboundWire);
         service.setOutboundWire(outboundWire);
         Connector conntector = ArtifactFactory.createConnector();

Modified: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringCompositeBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringCompositeBuilderTestCase.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringCompositeBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringCompositeBuilderTestCase.java Sat Aug  5 19:59:58 2006
@@ -3,18 +3,6 @@
 import java.net.URI;
 import java.net.URISyntaxException;
 
-import org.jmock.Mock;
-import org.jmock.MockObjectTestCase;
-import org.jmock.core.Constraint;
-import org.jmock.core.Formatting;
-import org.springframework.beans.factory.config.BeanDefinition;
-import org.springframework.beans.factory.support.RootBeanDefinition;
-import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.context.support.StaticApplicationContext;
-
-import org.apache.tuscany.container.spring.mock.TestBean;
-import org.apache.tuscany.container.spring.mock.TestBeanImpl;
-import org.apache.tuscany.container.spring.mock.VMBinding;
 import org.apache.tuscany.spi.builder.BuilderRegistry;
 import org.apache.tuscany.spi.builder.Connector;
 import org.apache.tuscany.spi.component.CompositeComponent;
@@ -27,7 +15,19 @@
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.OutboundWire;
 import org.apache.tuscany.spi.wire.WireService;
+
+import org.apache.tuscany.container.spring.mock.TestBean;
+import org.apache.tuscany.container.spring.mock.TestBeanImpl;
+import org.apache.tuscany.container.spring.mock.VMBinding;
 import org.apache.tuscany.test.ArtifactFactory;
+import org.jmock.Mock;
+import org.jmock.MockObjectTestCase;
+import org.jmock.core.Constraint;
+import org.jmock.core.Formatting;
+import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.beans.factory.support.RootBeanDefinition;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.context.support.StaticApplicationContext;
 
 /**
  * @version $$Rev$$ $$Date$$
@@ -40,11 +40,12 @@
         SpringImplementation impl = new SpringImplementation(createComponentType());
         impl.setApplicationContext(createImplicitSpringContext());
         ComponentDefinition<SpringImplementation> componentDefinition =
-                new ComponentDefinition<SpringImplementation>("spring", impl);
+            new ComponentDefinition<SpringImplementation>("spring", impl);
 
         // Create a service instance that the mock builder registry will return
         WireService wireService = ArtifactFactory.createWireService();
-        ServiceExtension<TestBean> serviceContext = new ServiceExtension<TestBean>("fooService", null, wireService);
+        ServiceExtension<TestBean> serviceContext =
+            new ServiceExtension<TestBean>("fooService", TestBean.class, null, wireService);
         InboundWire<TestBean> inboundWire = ArtifactFactory.createInboundWire("fooService", TestBean.class);
         OutboundWire<TestBean> outboundWire = ArtifactFactory.createOutboundWire("fooService", TestBean.class);
         // REVIEW: this call appears to be unnecessary right now, is this a bug?
@@ -58,7 +59,7 @@
         // Configure the mock builder registry
         Mock mock = mock(BuilderRegistry.class);
         mock.expects(atLeastOnce()).method("build").with(ANYTHING, serviceIsNamed("fooService"), ANYTHING)
-                .will(returnValue(serviceContext));
+            .will(returnValue(serviceContext));
 
         // Test the SpringCompositeBuilder
         SpringCompositeBuilder builder = new SpringCompositeBuilder();
@@ -110,7 +111,7 @@
 
         public StringBuffer describeTo(StringBuffer buffer) {
             return buffer.append("a service named ")
-                    .append(Formatting.toReadableString(name));
+                .append(Formatting.toReadableString(name));
         }
     }
 

Modified: incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringTestUtils.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringTestUtils.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringTestUtils.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringTestUtils.java Sat Aug  5 19:59:58 2006
@@ -22,7 +22,7 @@
                                                Class<T> serviceInterface,
                                                CompositeComponent parent,
                                                WireService wireService) {
-        Service<T> service = new ServiceExtension<T>(name, parent, wireService);
+        Service<T> service = new ServiceExtension<T>(name, serviceInterface, parent, wireService);
         InboundWire<T> inboundWire = ArtifactFactory.createInboundWire(name, serviceInterface);
         OutboundWire<T> outboundWire = ArtifactFactory.createOutboundWire(name, serviceInterface);
         ArtifactFactory.terminateWire(outboundWire);

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=429096&r1=429095&r2=429096&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 Sat Aug  5 19:59:58 2006
@@ -42,7 +42,6 @@
 
     public <T> void connect(SCAObject<T> source) {
         CompositeComponent parent = source.getParent();
-        Scope scope = source.getScope();
         if (source instanceof AtomicComponent) {
             AtomicComponent<T> sourceComponent = (AtomicComponent<T>) source;
             for (List<OutboundWire> referenceWires : sourceComponent.getOutboundWires().values()) {
@@ -51,7 +50,7 @@
                         continue;
                     }
                     try {
-                        connect(sourceComponent, outboundWire, parent, scope);
+                        connect(sourceComponent, outboundWire);
                     } catch (BuilderConfigException e) {
                         e.addContextName(source.getName());
                         e.addContextName(parent.getName());
@@ -59,13 +58,40 @@
                     }
                 }
             }
+            // connect inbound wires
+            for (InboundWire<T> inboundWire : sourceComponent.getInboundWires().values()) {
+                for (InboundInvocationChain chain : inboundWire.getInvocationChains().values()) {
+                    String serviceName = inboundWire.getServiceName();
+                    TargetInvoker invoker =
+                        sourceComponent.createTargetInvoker(serviceName, chain.getMethod());
+                    chain.setTargetInvoker(invoker);
+                    chain.prepare();
+                }
+            }
+
         } else if (source instanceof CompositeComponent) {
             CompositeComponent<?> composite = (CompositeComponent) source;
             for (SCAObject<?> child : composite.getChildren()) {
                 connect(child);
             }
+        } else if (source instanceof Reference) {
+            Reference<?> reference = (Reference) source;
+            Map<Method, InboundInvocationChain> chains = reference.getInboundWire().getInvocationChains();
+            // for references, no need to have an outbound wire
+            for (InboundInvocationChain chain : chains.values()) {
+                //TODO handle async
+                TargetInvoker invoker = reference.createTargetInvoker(chain.getMethod());
+                chain.setTargetInvoker(invoker);
+                chain.prepare();
+            }
         } else if (source instanceof Service) {
-            //TODO complete
+            Service<?> service = (Service) source;
+            InboundWire inboundWire = service.getInboundWire();
+            OutboundWire outboundWire = service.getOutboundWire();
+            // services have inbound and outbound wires
+            connect(inboundWire, outboundWire, true);
+            // connect the outbound service wire to the target
+            connect(service, outboundWire);
         } else {
             BuilderConfigException e = new BuilderConfigException("Invalid source context type");
             e.setIdentifier(source.getName());
@@ -75,58 +101,13 @@
     }
 
     /**
-     * Connects an outbound wire to its target in a CompositeComponent.  Valid targets are either AtomicComponents
-     * contained in the CompositeComponent, or References of the CompositeComponent.
+     * Connects an inbound wire to a specific outbound wire
      *
-     * @param sourceWire
-     * @param parent
-     * @param sourceScope
+     * @param sourceWire  the inbound wire to connect
+     * @param targetWire  the outbound wire to connect to
+     * @param optimizable true if the connection can be ooptimized
      * @throws BuilderConfigException
      */
-    @SuppressWarnings("unchecked")
-    public <T> void connect(AtomicComponent<?> source,
-                            OutboundWire<T> sourceWire,
-                            CompositeComponent<?> parent,
-                            Scope sourceScope) throws BuilderConfigException {
-        assert sourceScope != null : "Source scope was null";
-        assert sourceWire.getTargetName() != null : "WireDefinition target name was null";
-        QualifiedName targetName = sourceWire.getTargetName();
-        SCAObject<?> target = parent.getChild(targetName.getPartName());
-        if (target == null) {
-            BuilderConfigException e = new BuilderConfigException("Target not found for reference"
-                + sourceWire.getReferenceName());
-            e.setIdentifier(targetName.getQualifiedName());
-            throw e;
-        }
-
-        if (target instanceof AtomicComponent) {
-            AtomicComponent<?> targetComponent = (AtomicComponent<?>) target;
-            InboundWire<T> targetWire = targetComponent.getInboundWire(targetName.getPortName());
-            if (targetWire == null) {
-                BuilderConfigException e = new BuilderConfigException("Target service not found for reference "
-                    + sourceWire.getReferenceName());
-                e.setIdentifier(targetName.getPortName());
-                throw e;
-            }
-            if (!sourceWire.getBusinessInterface().isAssignableFrom(targetWire.getBusinessInterface())) {
-                throw new BuilderConfigException("Incompatible source and target interfaces");
-            }
-            boolean optimizable = isOptimizable(sourceScope, target.getScope());
-            connect(sourceWire, targetWire, source, target, optimizable);
-        } else if (target instanceof Reference) {
-            InboundWire<T> targetWire = ((Reference) target).getInboundWire();
-            assert targetWire != null;
-            if (!sourceWire.getBusinessInterface().isAssignableFrom(targetWire.getBusinessInterface())) {
-                throw new BuilderConfigException("Incompatible source and target interfaces");
-            }
-            connect(sourceWire, targetWire, source, target, isOptimizable(sourceScope, target.getScope()));
-        } else {
-            String name = sourceWire.getReferenceName();
-            BuilderConfigException e = new BuilderConfigException("Invalid wire target type for reference " + name);
-            e.setIdentifier(targetName.getQualifiedName());
-        }
-    }
-
     public <T> void connect(InboundWire<T> sourceWire,
                             OutboundWire<T> targetWire,
                             boolean optimizable) throws BuilderConfigException {
@@ -136,7 +117,6 @@
             sourceWire.setTargetWire(targetWire);
             return;
         }
-        //String serviceName = targetWire.getTargetName();
         for (InboundInvocationChain inboundChain : sourceWire.getInvocationChains().values()) {
             // match wire chains
             OutboundInvocationChain outboundChain = targetChains.get(inboundChain.getMethod());
@@ -149,10 +129,10 @@
         }
     }
 
-    public <T> void connect(OutboundWire<T> sourceWire,
+    public <T> void connect(SCAObject<?> source,
+                            SCAObject<?> target,
+                            OutboundWire<T> sourceWire,
                             InboundWire<T> targetWire,
-                            AtomicComponent<?> source,
-                            SCAObject<?> scaObject,
                             boolean optimizable) {
         Map<Method, InboundInvocationChain> targetChains = targetWire.getInvocationChains();
         // perform optimization, if possible
@@ -171,8 +151,8 @@
                 e.setIdentifier(sourceWire.getReferenceName());
                 throw e;
             }
-            if (scaObject instanceof Component) {
-                Component component = (Component) scaObject;
+            if (target instanceof Component) {
+                Component component = (Component) target;
                 Method operation = outboundChain.getMethod();
 
                 // FIXME should not relay on annotations
@@ -185,12 +165,13 @@
                 if (isOneWayOperation || operationHasCallback) {
                     invoker = component.createAsyncTargetInvoker(targetWire.getServiceName(), operation, sourceWire);
                 } else {
-                    invoker = component.createTargetInvoker(targetWire.getServiceName(), inboundChain.getMethod());
+                    invoker = component
+                        .createTargetInvoker(targetWire.getServiceName(), inboundChain.getMethod());
                 }
                 connect(outboundChain, inboundChain, invoker);
-            } else if (scaObject instanceof Reference) {
-                Reference reference = (Reference) scaObject;
-                TargetInvoker invoker = reference.createTargetInvoker(targetWire.getServiceName(),
+            } else if (target instanceof Reference) {
+                Reference reference = (Reference) target;
+                TargetInvoker invoker = reference.createTargetInvoker(
                     inboundChain.getMethod());
                 connect(outboundChain, inboundChain, invoker);
             }
@@ -207,7 +188,8 @@
                 e.setIdentifier(sourceWire.getReferenceName());
                 throw e;
             }
-            if (scaObject instanceof Component) {
+            if (source instanceof Component) {
+                Component component = (Component) source;
                 Method operation = outboundChain.getMethod();
                 // FIXME should not relay on annotations
                 boolean isOneWayOperation = operation.getAnnotation(OneWay.class) != null;
@@ -217,16 +199,14 @@
                 }
                 TargetInvoker invoker;
                 if (isOneWayOperation || operationHasCallback) {
-                    invoker = source.createAsyncTargetInvoker(targetWire.getServiceName(), operation, sourceWire);
+                    invoker = component.createAsyncTargetInvoker(targetWire.getServiceName(), operation, sourceWire);
                 } else {
-                    invoker = source.createTargetInvoker(targetWire.getServiceName(), inboundChain.getMethod());
+                    invoker = component
+                        .createTargetInvoker(targetWire.getServiceName(), inboundChain.getMethod());
                 }
                 connect(outboundChain, inboundChain, invoker);
-            } else if (scaObject instanceof Reference) {
-                Reference reference = (Reference) scaObject;
-                TargetInvoker invoker = reference.createTargetInvoker(targetWire.getServiceName(),
-                    inboundChain.getMethod());
-                connect(outboundChain, inboundChain, invoker);
+            } else if (target instanceof Service) {
+                throw new UnsupportedOperationException();
             }
         }
     }
@@ -274,6 +254,55 @@
         sourceChain.addInterceptor(new BridgingInterceptor(targetChain.getHeadInterceptor()));
     }
 
+    /**
+     * Connects an component's outbound wire to its target in a composite.  Valid targets are either
+     * <code>AtomicComponent</code>s contained in the composite, or <code>References</code> of the composite.
+     *
+     * @param sourceWire
+     * @throws BuilderConfigException
+     */
+    @SuppressWarnings("unchecked")
+    private <T> void connect(SCAObject<?> source,
+                             OutboundWire<T> sourceWire) throws BuilderConfigException {
+        //assert sourceScope != null : "Source scope was null";
+        assert sourceWire.getTargetName() != null : "WireDefinition target name was null";
+        QualifiedName targetName = sourceWire.getTargetName();
+        CompositeComponent<?> parent = source.getParent();
+        SCAObject<?> target = parent.getChild(targetName.getPartName());
+        if (target == null) {
+            String refName = sourceWire.getReferenceName();
+            BuilderConfigException e = new BuilderConfigException("Target not found for reference" + refName);
+            e.setIdentifier(targetName.getQualifiedName());
+            throw e;
+        }
+
+        if (target instanceof AtomicComponent) {
+            AtomicComponent<?> targetComponent = (AtomicComponent<?>) target;
+            InboundWire<T> targetWire = targetComponent.getInboundWire(targetName.getPortName());
+            if (targetWire == null) {
+                String refName = sourceWire.getReferenceName();
+                BuilderConfigException e = new BuilderConfigException("No target service for reference " + refName);
+                e.setIdentifier(targetName.getPortName());
+                throw e;
+            }
+            if (!sourceWire.getBusinessInterface().isAssignableFrom(targetWire.getBusinessInterface())) {
+                throw new BuilderConfigException("Incompatible source and target interfaces");
+            }
+            boolean optimizable = isOptimizable(source.getScope(), target.getScope());
+            connect(source, target, sourceWire, targetWire, optimizable);
+        } else if (target instanceof Reference) {
+            InboundWire<T> targetWire = ((Reference) target).getInboundWire();
+            assert targetWire != null;
+            if (!sourceWire.getBusinessInterface().isAssignableFrom(targetWire.getBusinessInterface())) {
+                throw new BuilderConfigException("Incompatible source and target interfaces");
+            }
+            connect(source, target, sourceWire, targetWire, isOptimizable(source.getScope(), target.getScope()));
+        } else {
+            String name = sourceWire.getReferenceName();
+            BuilderConfigException e = new BuilderConfigException("Invalid wire target type for reference " + name);
+            e.setIdentifier(targetName.getQualifiedName());
+        }
+    }
 
     private boolean isOptimizable(Scope pReferrer, Scope pReferee) {
         if (pReferrer == Scope.UNDEFINED || pReferee == Scope.UNDEFINED) {

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java Sat Aug  5 19:59:58 2006
@@ -128,9 +128,9 @@
     /**
      * Connect the context's source wires to other target wires within the scope of the parent.
      *
-     * @param context the context to connect
+     * @param object the SCA artifact to connect
      */
-    protected void connect(SCAObject<?> context) {
-        connector.connect(context);
+    protected void connect(SCAObject<?> object) {
+        connector.connect(object);
     }
 }

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java Sat Aug  5 19:59:58 2006
@@ -208,7 +208,8 @@
         }
     }
 
-    public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
+    public TargetInvoker createTargetInvoker(String serviceName, Method operation
+    ) {
         return null;
     }
 

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java Sat Aug  5 19:59:58 2006
@@ -77,7 +77,8 @@
         }
     }
 
-    public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
+    public TargetInvoker createTargetInvoker(String serviceName, Method operation
+    ) {
         return new JavaTargetInvoker(operation, this);
     }
 

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java Sat Aug  5 19:59:58 2006
@@ -49,7 +49,6 @@
 import org.apache.tuscany.core.wire.InboundWireImpl;
 import org.apache.tuscany.core.wire.InvokerInterceptor;
 import org.apache.tuscany.core.wire.OutboundInvocationChainImpl;
-import org.apache.tuscany.core.wire.OutboundWireImpl;
 
 /**
  * Builds a Java-based atomic context from a component definition
@@ -137,7 +136,7 @@
             }
             component.addInboundWire(createWire(service));
         }
-        
+
         for (ReferenceTarget reference : definition.getReferenceTargets().values()) {
             Map<String, JavaMappedReference> references = componentType.getReferences();
             JavaMappedReference mappedReference = references.get(reference.getReferenceName());
@@ -155,13 +154,13 @@
             throw new UnsupportedOperationException();
         }
         Class<?> interfaze = def.getServiceContract().getInterfaceClass();
-        OutboundWire wire = new OutboundWireImpl();
+        OutboundWire wire = wireService.createOutboundWire();
         wire.setTargetName(new QualifiedName(reference.getTargets().get(0).toString()));
         wire.setBusinessInterface(interfaze);
         wire.setReferenceName(reference.getReferenceName());
         for (Method method : interfaze.getMethods()) {
             //TODO handle policy
-            OutboundInvocationChain chain = new OutboundInvocationChainImpl(method);
+            OutboundInvocationChain chain = wireService.createOutboundChain(method);
             wire.addInvocationChain(method, chain);
         }
         // FIXME Using JavaServiceContract for now; this may be ok, but if it's not, then getCallbackClass

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemAtomicComponentImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemAtomicComponentImpl.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemAtomicComponentImpl.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemAtomicComponentImpl.java Sat Aug  5 19:59:58 2006
@@ -33,18 +33,12 @@
     }
 
     public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
-        throw new UnsupportedOperationException();
+        return null;
     }
 
     protected ObjectFactory<?> createWireFactory(RuntimeWire wire) {
-        assert wire instanceof SystemOutboundWire : "wire must be an instance of " + SystemOutboundWire.class.getName();
+        assert wire instanceof SystemOutboundWire : "Wire must be an instance of " + SystemOutboundWire.class.getName();
         SystemOutboundWire systemWire = (SystemOutboundWire) wire;
         return new SystemWireObjectFactory(systemWire);
     }
-
-    public void prepare() {
-        // override and do nothing since system services do not proxy
-    }
-
-
 }

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceImpl.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceImpl.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemReferenceImpl.java Sat Aug  5 19:59:58 2006
@@ -6,7 +6,6 @@
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.component.TargetException;
 import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.wire.InboundInvocationChain;
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.OutboundWire;
 import org.apache.tuscany.spi.wire.TargetInvoker;
@@ -30,7 +29,7 @@
 
     public SystemReferenceImpl(String name, Class<T> referenceInterface, CompositeComponent parent) {
         super(name, parent);
-        assert referenceInterface != null : "ReferenceDefinition interface was null";
+        assert referenceInterface != null : "Reference interface was null";
         this.referenceInterface = referenceInterface;
     }
 
@@ -52,7 +51,7 @@
     }
 
     public void setOutboundWire(OutboundWire<T> wire) {
-        assert wire instanceof SystemOutboundWire : "wire must be a " + SystemOutboundWire.class.getName();
+        assert wire instanceof SystemOutboundWire : "Wire must be a " + SystemOutboundWire.class.getName();
         this.outboundWire = (SystemOutboundWire<T>) wire;
     }
 
@@ -64,15 +63,6 @@
         this.referenceInterface = referenceInterface;
     }
 
-    public void prepare() {
-        for (InboundInvocationChain chain : inboundWire.getInvocationChains().values()) {
-            TargetInvoker targetInvoker = createTargetInvoker(outboundWire.getTargetName().getQualifiedName(),
-                chain.getMethod());
-            chain.setTargetInvoker(targetInvoker);
-            chain.prepare();
-        }
-    }
-
     public T getServiceInstance() throws TargetException {
         return referenceInterface.cast(inboundWire.getTargetService());
     }
@@ -81,7 +71,11 @@
         throw new UnsupportedOperationException();
     }
 
-    public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
+    public TargetInvoker createTargetInvoker(Method operation) {
+        throw new UnsupportedOperationException();
+    }
+
+    public TargetInvoker createAsyncTargetInvoker(Method operation, OutboundWire wire) {
         throw new UnsupportedOperationException();
     }
 

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java Sat Aug  5 19:59:58 2006
@@ -2,6 +2,7 @@
 
 import java.lang.reflect.Method;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
@@ -52,9 +53,6 @@
         return instance;
     }
 
-    public void prepare() {
-    }
-
     public Object getServiceInstance(String name) throws TargetException {
         return getTargetInstance();
     }
@@ -79,8 +77,12 @@
         throw new UnsupportedOperationException();
     }
 
+    public Map<String, InboundWire> getInboundWires() {
+        return Collections.emptyMap();
+    }
+
     public InboundWire getInboundWire(String serviceName) {
-        throw new UnsupportedOperationException();
+        return null;
     }
 
     public void addOutboundWire(OutboundWire wire) {
@@ -92,15 +94,15 @@
     }
 
     public Map<String, List<OutboundWire>> getOutboundWires() {
-        throw new UnsupportedOperationException();
+        return Collections.emptyMap();
     }
 
 
     public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
-        throw new UnsupportedOperationException();
+        return null;
     }
 
     public TargetInvoker createAsyncTargetInvoker(String serviceName, Method operation, OutboundWire wire) {
-        throw new UnsupportedOperationException();
+        return null;
     }
 }

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=429096&r1=429095&r2=429096&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 Sat Aug  5 19:59:58 2006
@@ -77,7 +77,7 @@
 
     public Class[] getImplementedCallbackInterfaces() {
         throw new UnsupportedOperationException();
-   }
+    }
 
     public Map<Method, OutboundInvocationChain> getInvocationChains() {
         return Collections.emptyMap();

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/StAXUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/StAXUtil.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/StAXUtil.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/StAXUtil.java Sat Aug  5 19:59:58 2006
@@ -18,16 +18,15 @@
 
 import java.util.HashMap;
 import java.util.Map;
-
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamConstants;
 import javax.xml.namespace.QName;
 import javax.xml.parsers.DocumentBuilder;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
 
-import org.w3c.dom.Node;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
+import org.w3c.dom.Node;
 
 import org.apache.tuscany.spi.model.InteractionScope;
 import org.apache.tuscany.spi.model.Multiplicity;
@@ -89,48 +88,48 @@
     }
 
     /**
-     * Load a property value specification from an StAX stream into a DOM Document.
-     * Only elements, text and attributes are processed; all comments and other whitespace are ignored.
+     * Load a property value specification from an StAX stream into a DOM Document. Only elements, text and attributes
+     * are processed; all comments and other whitespace are ignored.
      *
      * @param reader the stream to read from
-     * @param root the DOM node to load
+     * @param root   the DOM node to load
      */
     public static void loadPropertyValue(XMLStreamReader reader, Node root) throws XMLStreamException {
         Document document = root.getOwnerDocument();
         Node current = root;
         while (true) {
             switch (reader.next()) {
-            case XMLStreamConstants.START_ELEMENT:
-                QName name = reader.getName();
-                Element child = document.createElementNS(name.getNamespaceURI(), name.getLocalPart());
-
-                // add the attributes for this element
-                int count = reader.getAttributeCount();
-                for (int i = 0; i < count; i++) {
-                    String ns = reader.getAttributeNamespace(i);
-                    String localPart = reader.getAttributeLocalName(i);
-                    String value = reader.getAttributeValue(i);
-                    child.setAttributeNS(ns, localPart, value);
-                }
-
-                // push the new element and make it the current one
-                current.appendChild(child);
-                current = child;
-                break;
-            case XMLStreamConstants.CDATA:
-                current.appendChild(document.createCDATASection(reader.getText()));
-                break;
-            case XMLStreamConstants.CHARACTERS:
-                current.appendChild(document.createTextNode(reader.getText()));
-                break;
-            case XMLStreamConstants.END_ELEMENT:
-                // if we are back at the root then we are done
-                if (current == root) {
-                    return;
-                }
+                case XMLStreamConstants.START_ELEMENT:
+                    QName name = reader.getName();
+                    Element child = document.createElementNS(name.getNamespaceURI(), name.getLocalPart());
+
+                    // add the attributes for this element
+                    int count = reader.getAttributeCount();
+                    for (int i = 0; i < count; i++) {
+                        String ns = reader.getAttributeNamespace(i);
+                        String localPart = reader.getAttributeLocalName(i);
+                        String value = reader.getAttributeValue(i);
+                        child.setAttributeNS(ns, localPart, value);
+                    }
+
+                    // push the new element and make it the current one
+                    current.appendChild(child);
+                    current = child;
+                    break;
+                case XMLStreamConstants.CDATA:
+                    current.appendChild(document.createCDATASection(reader.getText()));
+                    break;
+                case XMLStreamConstants.CHARACTERS:
+                    current.appendChild(document.createTextNode(reader.getText()));
+                    break;
+                case XMLStreamConstants.END_ELEMENT:
+                    // if we are back at the root then we are done
+                    if (current == root) {
+                        return;
+                    }
 
-                // pop the element off the stack
-                current = current.getParentNode();
+                    // pop the element off the stack
+                    current = current.getParentNode();
             }
         }
     }

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=429096&r1=429095&r2=429096&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 Sat Aug  5 19:59:58 2006
@@ -1,5 +1,6 @@
 package org.apache.tuscany.core.wire.jdk;
 
+import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
 
 import org.osoa.sca.annotations.Constructor;
@@ -9,13 +10,20 @@
 import org.apache.tuscany.spi.annotation.Autowire;
 import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.spi.policy.PolicyBuilderRegistry;
+import org.apache.tuscany.spi.wire.InboundInvocationChain;
 import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.wire.OutboundInvocationChain;
 import org.apache.tuscany.spi.wire.OutboundWire;
 import org.apache.tuscany.spi.wire.ProxyCreationException;
 import org.apache.tuscany.spi.wire.RuntimeWire;
 import org.apache.tuscany.spi.wire.WireInvocationHandler;
 import org.apache.tuscany.spi.wire.WireService;
 
+import org.apache.tuscany.core.wire.InboundInvocationChainImpl;
+import org.apache.tuscany.core.wire.InboundWireImpl;
+import org.apache.tuscany.core.wire.OutboundInvocationChainImpl;
+import org.apache.tuscany.core.wire.OutboundWireImpl;
+
 /**
  * @version $$Rev$$ $$Date$$
  */
@@ -85,5 +93,19 @@
         return new JDKCallbackInvocationHandler(context);
     }
 
+    public OutboundWire createOutboundWire() {
+        return new OutboundWireImpl();
+    }
+
+    public InboundWire createInboundWire() {
+        return new InboundWireImpl();
+    }
 
+    public OutboundInvocationChain createOutboundChain(Method operation) {
+        return new OutboundInvocationChainImpl(operation);
+    }
+
+    public InboundInvocationChain createInboundChain(Method operation) {
+        return new InboundInvocationChainImpl(operation);
+    }
 }

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=429096&r1=429095&r2=429096&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 Sat Aug  5 19:59:58 2006
@@ -6,25 +6,27 @@
 import org.apache.tuscany.spi.model.Scope;
 import org.apache.tuscany.spi.wire.InboundWire;
 
+import junit.framework.TestCase;
 import org.apache.tuscany.core.implementation.PojoConfiguration;
 import org.apache.tuscany.core.implementation.java.mock.components.Target;
 import org.apache.tuscany.core.implementation.java.mock.components.TargetImpl;
 import org.apache.tuscany.core.injection.PojoObjectFactory;
 import org.apache.tuscany.core.wire.jdk.JDKWireService;
-import org.jmock.Mock;
-import org.jmock.MockObjectTestCase;
+import org.easymock.EasyMock;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
 
 /**
  * @version $$Rev: 415162 $$ $$Date: 2006-06-18 11:19:43 -0700 (Sun, 18 Jun 2006) $$
  */
-public class GetServiceByNameTestCase extends MockObjectTestCase {
+public class GetServiceByNameTestCase extends TestCase {
 
     public void testServiceLocate() throws Exception {
-        Mock mockScope = mock(ScopeContainer.class);
-        mockScope.expects(atLeastOnce()).method("register");
-        mockScope.expects(atLeastOnce()).method("getScope").will(returnValue(Scope.MODULE));
-        ScopeContainer scope = (ScopeContainer) mockScope.proxy();
-
+        ScopeContainer scope = createMock(ScopeContainer.class);
+        scope.register(EasyMock.isA(JavaAtomicComponent.class));
+        expect(scope.getScope()).andReturn(Scope.MODULE);
+        replay(scope);
         PojoConfiguration configuration = new PojoConfiguration();
         configuration.setScopeContainer(scope);
         configuration.setInstanceFactory(new PojoObjectFactory<TargetImpl>(TargetImpl.class.getConstructor()));
@@ -32,13 +34,12 @@
         configuration.setWireService(new JDKWireService());
         final JavaAtomicComponent<?> component = new JavaAtomicComponent("target", configuration, null, null);
 
-        Mock mock = mock(InboundWire.class);
-        mock.stubs().method("getBusinessInterface").will(returnValue(Target.class));
-        mock.stubs().method("getServiceName").will(returnValue("Target"));
-        mock.expects(atLeastOnce()).method("getInvocationChains").will(returnValue(Collections.emptyMap()));
-        mock.stubs().method("getCallbackReferenceName").will(returnValue(null));
-
-        InboundWire<Target> wire = (InboundWire<Target>) mock.proxy();
+        InboundWire wire = createMock(InboundWire.class);
+        expect(wire.getBusinessInterface()).andReturn(Target.class);
+        expect(wire.getServiceName()).andReturn("Target");
+        expect(wire.getInvocationChains()).andReturn(Collections.emptyMap());
+        expect(wire.getCallbackReferenceName()).andReturn(null);
+        replay(wire);
         component.addInboundWire(wire);
         component.prepare();
         component.start();

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=429096&r1=429095&r2=429096&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 Sat Aug  5 19:59:58 2006
@@ -7,24 +7,16 @@
 import java.util.concurrent.FutureTask;
 
 import org.apache.tuscany.spi.QualifiedName;
-import org.apache.tuscany.core.implementation.PojoConfiguration;
-import org.apache.tuscany.core.component.WorkContextImpl;
-
 import org.apache.tuscany.spi.component.ScopeContainer;
 import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.core.injection.PojoObjectFactory;
 import org.apache.tuscany.spi.wire.InboundWire;
 import org.apache.tuscany.spi.wire.OutboundInvocationChain;
 import org.apache.tuscany.spi.wire.OutboundWire;
 import org.apache.tuscany.spi.wire.WireService;
 
 import junit.framework.TestCase;
-import org.apache.tuscany.core.implementation.java.JavaAtomicComponent;
-import org.apache.tuscany.core.implementation.java.mock.MockFactory;
-import org.apache.tuscany.core.implementation.java.mock.components.Target;
-import org.apache.tuscany.core.implementation.java.mock.components.TargetImpl;
-import org.apache.tuscany.spi.builder.Connector;
 import org.apache.tuscany.core.builder.ConnectorImpl;
+import org.apache.tuscany.core.component.WorkContextImpl;
 import org.apache.tuscany.core.component.event.CompositeStart;
 import org.apache.tuscany.core.component.event.CompositeStop;
 import org.apache.tuscany.core.component.event.HttpSessionEnd;
@@ -35,6 +27,12 @@
 import org.apache.tuscany.core.component.scope.ModuleScopeContainer;
 import org.apache.tuscany.core.component.scope.RequestScopeContainer;
 import org.apache.tuscany.core.component.scope.StatelessScopeContainer;
+import org.apache.tuscany.core.implementation.PojoConfiguration;
+import org.apache.tuscany.core.implementation.java.JavaAtomicComponent;
+import org.apache.tuscany.core.implementation.java.mock.MockFactory;
+import org.apache.tuscany.core.implementation.java.mock.components.Target;
+import org.apache.tuscany.core.implementation.java.mock.components.TargetImpl;
+import org.apache.tuscany.core.injection.PojoObjectFactory;
 import org.apache.tuscany.core.util.MethodHashMap;
 import org.apache.tuscany.core.wire.OutboundInvocationChainImpl;
 import org.apache.tuscany.core.wire.OutboundWireImpl;
@@ -152,7 +150,7 @@
 
     @SuppressWarnings("unchecked")
     private OutboundWire<Target> getWire(ScopeContainer scope) throws NoSuchMethodException {
-        Connector connector = new ConnectorImpl();
+        ConnectorImpl connector = new ConnectorImpl();
         OutboundWire<Target> wire = createOutboundWire(new QualifiedName("target/Target"), Target.class);
 
         PojoConfiguration configuration = new PojoConfiguration();
@@ -162,7 +160,7 @@
         JavaAtomicComponent<?> atomicComponent = new JavaAtomicComponent("target", configuration, null, null);
         InboundWire targetWire = MockFactory.createTargetWire("Target", Target.class);
         atomicComponent.addInboundWire(targetWire);
-        connector.connect(wire, atomicComponent.getInboundWire("Target"), atomicComponent, atomicComponent, false);
+        connector.connect(atomicComponent, atomicComponent, wire, atomicComponent.getInboundWire("Target"), false);
         atomicComponent.start();
         return wire;
     }

Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderWireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderWireTestCase.java?rev=429096&r1=429095&r2=429096&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderWireTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderWireTestCase.java Sat Aug  5 19:59:58 2006
@@ -146,8 +146,8 @@
 
         connector.connect(sourceComponent);
         String serviceName = service.getOutboundWire().getTargetName().getPortName();
-        connector.connect(service.getOutboundWire(), sourceComponent.getInboundWire(serviceName), sourceComponent,
-            parent, true);
+        connector.connect(sourceComponent, parent, service.getOutboundWire(), sourceComponent.getInboundWire(serviceName),
+            true);
         parent.start();
         scope.onEvent(new CompositeStart(this, parent));
         Target target = (Target) parent.getChild("serviceDefinition").getServiceInstance();



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