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