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/09/22 23:22:12 UTC
svn commit: r449095 - in /incubator/tuscany/java/sca:
kernel/core/src/main/java/org/apache/tuscany/core/builder/
kernel/core/src/test/java/org/apache/tuscany/core/builder/
kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integratio...
Author: jmarino
Date: Fri Sep 22 14:22:11 2006
New Revision: 449095
URL: http://svn.apache.org/viewvc?view=rev&rev=449095
Log:
refactor connector implementation and interface signature; more test cases
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorPostProcessTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/OutboundToInboundConnectTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/CallbackInvocationTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/OutboundWireToJavaTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderWireTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Connector.java
incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringTestUtils.java
incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java?view=diff&rev=449095&r1=449094&r2=449095
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java Fri Sep 22 14:22:11 2006
@@ -51,7 +51,6 @@
import org.apache.tuscany.core.wire.BridgingInterceptor;
import org.apache.tuscany.core.wire.InvokerInterceptor;
import org.apache.tuscany.core.wire.OutboundAutowire;
-import org.apache.tuscany.core.wire.OutboundInvocationChainImpl;
/**
* The default connector implmentation
@@ -109,8 +108,9 @@
for (InboundInvocationChain chain : inboundChains.values()) {
//TODO handle async
// add target invoker on inbound side
- TargetInvoker invoker =
- reference.createTargetInvoker(inboundWire.getServiceContract(), chain.getOperation());
+ ServiceContract contract = inboundWire.getServiceContract();
+ Operation operation = chain.getOperation();
+ TargetInvoker invoker = reference.createTargetInvoker(contract, operation);
chain.setTargetInvoker(invoker);
chain.prepare();
}
@@ -125,15 +125,14 @@
connect(service, outboundWire);
// NB: this connect must be done after the outbound service chain is connected to its target above
if (!(source instanceof CompositeService)) {
- //REVIEW JFM: why is this special for composites?
+ //REVIEW JFM: do we need this to be special for composites?
connect(inboundWire, outboundWire, true);
}
}
}
- public void connect(InboundWire sourceWire,
- OutboundWire targetWire,
- boolean optimizable) throws BuilderConfigException {
+ public void connect(InboundWire sourceWire, OutboundWire targetWire, boolean optimizable)
+ throws BuilderConfigException {
if (postProcessorRegistry != null) {
// run wire post-processors
postProcessorRegistry.process(sourceWire, targetWire);
@@ -157,19 +156,16 @@
}
/**
- * Connects the source wire to a corresponding target wire
+ * Connects the source outbound wire to a corresponding target inbound wire
*
- * @param source the owner of the source wire
- * @param target the owner of the target wire
* @param sourceWire the source wire to connect
* @param targetWire the target wire to connect to
* @param optimizable true if the wire connection can be optimized
*/
- public void connect(SCAObject source,
- SCAObject target,
- OutboundWire sourceWire,
- InboundWire targetWire,
- boolean optimizable) {
+ void connect(OutboundWire sourceWire, InboundWire targetWire, boolean optimizable) {
+ SCAObject source = sourceWire.getContainer();
+ SCAObject target = targetWire.getContainer();
+ ServiceContract contract = sourceWire.getServiceContract();
if (postProcessorRegistry != null) {
// run wire post-processors
postProcessorRegistry.process(sourceWire, targetWire);
@@ -182,9 +178,8 @@
sourceWire.setTargetWire(targetWire);
return;
}
- ServiceContract contract = sourceWire.getServiceContract();
+ // match outbound to inbound chains
for (OutboundInvocationChain outboundChain : sourceWire.getInvocationChains().values()) {
- // match wire chains
Operation<?> operation = outboundChain.getOperation();
InboundInvocationChain inboundChain = targetChains.get(operation);
if (inboundChain == null) {
@@ -193,20 +188,20 @@
e.setIdentifier(sourceWire.getReferenceName());
throw e;
}
- TargetInvoker invoker = null;
boolean isOneWayOperation = operation.isNonBlocking();
boolean operationHasCallback = contract.getCallbackName() != null;
if (isOneWayOperation && operationHasCallback) {
throw new ComponentRuntimeException("Operation cannot be marked one-way and have a callback");
}
-
+ TargetInvoker invoker = null;
if (target instanceof Component) {
Component component = (Component) target;
if (isOneWayOperation || operationHasCallback) {
invoker = component.createAsyncTargetInvoker(targetWire, operation);
} else {
Operation<?> inboundOperation = inboundChain.getOperation();
- invoker = component.createTargetInvoker(sourceWire.getTargetName().getPortName(), inboundOperation);
+ String portName = sourceWire.getTargetName().getPortName();
+ invoker = component.createTargetInvoker(portName, inboundOperation);
}
} else if (target instanceof Reference) {
Reference reference = (Reference) target;
@@ -214,8 +209,9 @@
// Notice that for bound references we only use async target invokers for callback operations
invoker = reference.createAsyncTargetInvoker(sourceWire, operation);
} else {
- invoker =
- reference.createTargetInvoker(targetWire.getServiceContract(), inboundChain.getOperation());
+ ServiceContract targetContract = targetWire.getServiceContract();
+ Operation targetOperation = inboundChain.getOperation();
+ invoker = reference.createTargetInvoker(targetContract, targetOperation);
}
} else if (target instanceof CompositeService) {
CompositeService compServ = (CompositeService) target;
@@ -239,13 +235,14 @@
for (InboundInvocationChain inboundChain : sourceWire.getTargetCallbackInvocationChains().values()) {
Operation<?> operation = inboundChain.getOperation();
if (sourceCallbackChains != null && sourceCallbackChains.get(operation) != null) {
+ String name = operation.getName();
BuilderConfigException e =
- new BuilderConfigException(
- "Source callback chain should not exist for operation [" + operation.getName() + "]");
+ new BuilderConfigException("Source callback chain should not exist for operation [" + name + "]");
e.setIdentifier(sourceWire.getReferenceName());
throw e;
}
- OutboundInvocationChain outboundChain = new OutboundInvocationChainImpl(operation);
+ OutboundInvocationChain outboundChain = wireService.createOutboundChain(operation);
+ // connectCallbackChain(source, outboundChain, inboundChain);
targetWire.addSourceCallbackInvocationChain(source.getName(), operation, outboundChain);
if (source instanceof Component) {
Component component = (Component) source;
@@ -253,22 +250,19 @@
connect(outboundChain, inboundChain, invoker);
} else if (source instanceof CompositeReference) {
CompositeReference compRef = (CompositeReference) source;
- TargetInvoker invoker = compRef.createCallbackTargetInvoker(sourceWire.getServiceContract(), operation);
+ ServiceContract sourceContract = sourceWire.getServiceContract();
+ TargetInvoker invoker = compRef.createCallbackTargetInvoker(sourceContract, operation);
connect(outboundChain, inboundChain, invoker);
} else if (source instanceof Service) {
Service service = (Service) source;
ServiceContract sourceContract = sourceWire.getServiceContract();
TargetInvoker invoker = service.createCallbackTargetInvoker(sourceContract, operation);
connect(outboundChain, inboundChain, invoker);
- } else if (target instanceof Service) {
- throw new UnsupportedOperationException();
}
}
}
- public void connect(OutboundInvocationChain sourceChain,
- InboundInvocationChain targetChain,
- TargetInvoker invoker) {
+ void connect(OutboundInvocationChain sourceChain, InboundInvocationChain targetChain, TargetInvoker invoker) {
Interceptor headInterceptor = targetChain.getHeadInterceptor();
if (headInterceptor == null) {
BuilderConfigException e = new BuilderConfigException("No interceptor for operation");
@@ -291,7 +285,7 @@
* @param sourceChain
* @param targetChain
*/
- public void connect(InboundInvocationChain sourceChain, OutboundInvocationChain targetChain) {
+ void connect(InboundInvocationChain sourceChain, OutboundInvocationChain targetChain) {
// the are always interceptors so the connection algorithm is simple
sourceChain.addInterceptor(new BridgingInterceptor(targetChain.getHeadInterceptor()));
}
@@ -303,8 +297,7 @@
* @param sourceWire
* @throws BuilderConfigException
*/
- private void connect(SCAObject source,
- OutboundWire sourceWire) throws BuilderConfigException {
+ private void connect(SCAObject source, OutboundWire sourceWire) throws BuilderConfigException {
assert sourceWire.getTargetName() != null : "Wire target name was null";
QualifiedName targetName = sourceWire.getTargetName();
CompositeComponent parent = source.getParent();
@@ -334,13 +327,13 @@
}
checkIfWireable(sourceWire, targetWire);
boolean optimizable = isOptimizable(source.getScope(), target.getScope());
- connect(source, target, sourceWire, targetWire, optimizable);
+ connect(sourceWire, targetWire, optimizable);
} else if (target instanceof Reference) {
InboundWire targetWire = ((Reference) target).getInboundWire();
assert targetWire != null;
checkIfWireable(sourceWire, targetWire);
boolean optimizable = isOptimizable(source.getScope(), target.getScope());
- connect(source, target, sourceWire, targetWire, optimizable);
+ connect(sourceWire, targetWire, optimizable);
} else if (target instanceof CompositeComponent) {
CompositeComponent composite = (CompositeComponent) target;
InboundWire targetWire = null;
@@ -363,7 +356,7 @@
throw new BuilderConfigException("No target composite service in composite");
}
boolean optimizable = isOptimizable(source.getScope(), target.getScope());
- connect(source, target, sourceWire, targetWire, optimizable);
+ connect(sourceWire, targetWire, optimizable);
} else {
String name = sourceWire.getReferenceName();
BuilderConfigException e = new BuilderConfigException("Invalid target type for reference " + name);
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplTestCase.java?view=diff&rev=449095&r1=449094&r2=449095
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplTestCase.java Fri Sep 22 14:22:11 2006
@@ -8,7 +8,6 @@
import java.util.Map;
import org.apache.tuscany.spi.QualifiedName;
-import org.apache.tuscany.spi.builder.Connector;
import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.Reference;
@@ -22,6 +21,7 @@
import org.apache.tuscany.spi.wire.Interceptor;
import org.apache.tuscany.spi.wire.OutboundInvocationChain;
import org.apache.tuscany.spi.wire.OutboundWire;
+import org.apache.tuscany.spi.wire.TargetInvoker;
import junit.framework.TestCase;
import org.apache.tuscany.core.wire.BridgingInterceptor;
@@ -32,7 +32,7 @@
*/
public class ConnectorImplTestCase extends TestCase {
- private Connector connector = new ConnectorImpl();
+ private ConnectorImpl connector = new ConnectorImpl();
public void testConnectReferenceWires() {
// create the wire contract, operation
@@ -66,7 +66,7 @@
OutboundWire outboundWire = EasyMock.createMock(OutboundWire.class);
EasyMock.expect(outboundWire.getServiceContract()).andReturn(contract).anyTimes();
EasyMock.expect(outboundWire.getTargetName()).andReturn(new QualifiedName("target/FooService")).anyTimes();
- EasyMock.expect((outboundWire.getInvocationChains())).andReturn(outboundChains).anyTimes();
+ EasyMock.expect(outboundWire.getInvocationChains()).andReturn(outboundChains).anyTimes();
EasyMock.replay(outboundWire);
Reference reference = EasyMock.createMock(Reference.class);
@@ -110,7 +110,6 @@
EasyMock.expect(targetWire.getInvocationChains()).andReturn(targetChains);
targetWire.getSourceCallbackInvocationChains("source");
EasyMock.expectLastCall().andReturn(Collections.emptyMap());
- EasyMock.replay(targetWire);
// create the target
AtomicComponent target = EasyMock.createMock(AtomicComponent.class);
@@ -121,6 +120,9 @@
EasyMock.expectLastCall().andReturn(null);
EasyMock.replay(target);
+ EasyMock.expect(targetWire.getContainer()).andReturn(target);
+ EasyMock.replay(targetWire);
+
// create the parent composite
CompositeComponent parent = EasyMock.createMock(CompositeComponent.class);
EasyMock.expect(parent.getChild("target")).andReturn(target);
@@ -157,7 +159,6 @@
EasyMock.expect(outboundWire.getServiceContract()).andReturn(contract).anyTimes();
EasyMock.expect(outboundWire.getTargetName()).andReturn(new QualifiedName("target/FooService")).anyTimes();
EasyMock.expect((outboundWire.getInvocationChains())).andReturn(outboundChains).anyTimes();
- EasyMock.replay(outboundWire);
// create the service
Service service = EasyMock.createMock(Service.class);
@@ -168,6 +169,9 @@
EasyMock.expect(service.getOutboundWire()).andReturn(outboundWire);
EasyMock.replay(service);
+ EasyMock.expect(outboundWire.getContainer()).andReturn(service);
+ EasyMock.replay(outboundWire);
+
connector.connect(service);
EasyMock.verify(service);
@@ -203,7 +207,6 @@
EasyMock.expect(targetWire.getInvocationChains()).andReturn(inboundChains);
targetWire.getSourceCallbackInvocationChains("source");
EasyMock.expectLastCall().andReturn(Collections.emptyMap());
- EasyMock.replay(targetWire);
// create the target
AtomicComponent target = EasyMock.createMock(AtomicComponent.class);
@@ -214,6 +217,9 @@
EasyMock.expectLastCall().andReturn(null);
EasyMock.replay(target);
+ EasyMock.expect(targetWire.getContainer()).andReturn(target);
+ EasyMock.replay(targetWire);
+
// create the parent composite
CompositeComponent parent = EasyMock.createMock(CompositeComponent.class);
EasyMock.expect(parent.getChild("target")).andReturn(target);
@@ -233,10 +239,10 @@
OutboundWire outboundWire = EasyMock.createMock(OutboundWire.class);
EasyMock.expect(outboundWire.getServiceContract()).andReturn(contract).anyTimes();
EasyMock.expect(outboundWire.getTargetName()).andReturn(new QualifiedName("target/FooService")).anyTimes();
- EasyMock.expect((outboundWire.getInvocationChains())).andReturn(outboundChains).anyTimes();
+ EasyMock.expect(outboundWire.getInvocationChains()).andReturn(outboundChains).anyTimes();
outboundWire.getTargetCallbackInvocationChains();
EasyMock.expectLastCall().andReturn(Collections.emptyMap());
- EasyMock.replay(outboundWire);
+
Map<String, List<OutboundWire>> outboundWires = new HashMap<String, List<OutboundWire>>();
List<OutboundWire> list = new ArrayList<OutboundWire>();
list.add(outboundWire);
@@ -252,6 +258,9 @@
EasyMock.expectLastCall().andReturn(Collections.emptyMap());
EasyMock.replay(source);
+ EasyMock.expect(outboundWire.getContainer()).andReturn(source);
+ EasyMock.replay(outboundWire);
+
connector.connect(source);
EasyMock.verify(headInterceptor);
EasyMock.verify(tailInterceptor);
@@ -303,4 +312,67 @@
EasyMock.verify(chain);
}
+
+ public void testOutboundToInboundOptimization() {
+ InboundWire inboundWire = EasyMock.createMock(InboundWire.class);
+ EasyMock.expect(inboundWire.getContainer()).andReturn(null);
+ inboundWire.getInvocationChains();
+ EasyMock.expectLastCall().andReturn(Collections.emptyMap());
+ EasyMock.replay(inboundWire);
+
+ OutboundWire outboundWire = EasyMock.createMock(OutboundWire.class);
+ outboundWire.getInvocationChains();
+ EasyMock.expectLastCall().andReturn(Collections.emptyMap());
+ outboundWire.setTargetWire(inboundWire);
+ EasyMock.expect(outboundWire.getContainer()).andReturn(null);
+ EasyMock.expect(outboundWire.getServiceContract()).andReturn(null);
+ EasyMock.replay(outboundWire);
+
+ connector.connect(outboundWire, inboundWire, true);
+ EasyMock.verify(inboundWire);
+ EasyMock.verify(outboundWire);
+
+ }
+
+ public void testOutboundToInboundChainConnect() {
+ Interceptor head = EasyMock.createMock(Interceptor.class);
+ EasyMock.replay(head);
+ Interceptor tail = EasyMock.createMock(Interceptor.class);
+ EasyMock.replay(tail);
+
+ TargetInvoker invoker = EasyMock.createMock(TargetInvoker.class);
+ EasyMock.replay(invoker);
+
+ InboundInvocationChain inboundChain = EasyMock.createMock(InboundInvocationChain.class);
+ EasyMock.expect(inboundChain.getHeadInterceptor()).andReturn(head);
+ EasyMock.replay(inboundChain);
+
+ OutboundInvocationChain outboundChain = EasyMock.createMock(OutboundInvocationChain.class);
+ EasyMock.expect(outboundChain.getTailInterceptor()).andReturn(tail);
+ outboundChain.prepare();
+ outboundChain.setTargetInterceptor(head);
+ outboundChain.setTargetInvoker(invoker);
+ EasyMock.replay(outboundChain);
+ connector.connect(outboundChain, inboundChain, invoker);
+ EasyMock.verify(outboundChain);
+ }
+
+ public void testInboundToOutboundChainConnect() {
+ Interceptor head = EasyMock.createMock(Interceptor.class);
+ EasyMock.replay(head);
+
+ InboundInvocationChain inboundChain = EasyMock.createMock(InboundInvocationChain.class);
+ inboundChain.addInterceptor(EasyMock.isA(BridgingInterceptor.class));
+ EasyMock.replay(inboundChain);
+
+ OutboundInvocationChain outboundChain = EasyMock.createMock(OutboundInvocationChain.class);
+ EasyMock.expect(outboundChain.getHeadInterceptor()).andReturn(head);
+ outboundChain.prepare();
+ outboundChain.setTargetInterceptor(head);
+ EasyMock.replay(outboundChain);
+ connector.connect(inboundChain, outboundChain);
+ EasyMock.verify(inboundChain);
+ }
+
+
}
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorPostProcessTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorPostProcessTestCase.java?view=diff&rev=449095&r1=449094&r2=449095
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorPostProcessTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorPostProcessTestCase.java Fri Sep 22 14:22:11 2006
@@ -64,7 +64,13 @@
}
public void testOutboundToInboundPostProcessCalled() throws Exception {
+ Component source = createNiceMock(Component.class);
+ expect(source.getName()).andReturn("Component");
+ replay(source);
+
OutboundWire owire = createNiceMock(OutboundWire.class);
+ EasyMock.expect(owire.getContainer()).andReturn(source);
+
Map<Operation<?>, OutboundInvocationChain> chains = new HashMap<Operation<?>, OutboundInvocationChain>();
expect(owire.getInvocationChains()).andReturn(chains);
Map<Operation<?>, InboundInvocationChain> ichains = new HashMap<Operation<?>, InboundInvocationChain>();
@@ -81,10 +87,8 @@
(ServiceContract<?>) EasyMock.anyObject())).andReturn(true).anyTimes();
replay(wireService);
ConnectorImpl connector = new ConnectorImpl(wireService, registry);
- Component source = createNiceMock(Component.class);
- expect(source.getName()).andReturn("Component");
- replay(source);
- connector.connect(source, null, owire, iwire, false);
+
+ connector.connect(owire, iwire, false);
verify(registry);
}
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/OutboundToInboundConnectTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/OutboundToInboundConnectTestCase.java?view=diff&rev=449095&r1=449094&r2=449095
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/OutboundToInboundConnectTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/OutboundToInboundConnectTestCase.java Fri Sep 22 14:22:11 2006
@@ -144,7 +144,6 @@
public InboundInvocationChain setupTarget(List<Interceptor> interceptors) {
-
JavaInterfaceProcessorRegistry registry = new JavaInterfaceProcessorRegistryImpl();
ServiceContract<?> contract;
try {
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/CallbackInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/CallbackInvocationTestCase.java?view=diff&rev=449095&r1=449094&r2=449095
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/CallbackInvocationTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/CallbackInvocationTestCase.java Fri Sep 22 14:22:11 2006
@@ -91,7 +91,8 @@
wireService.createWires(clientComponent, sourceDefinition);
container.register(clientComponent);
- Connector connector = new ConnectorImpl();
+ Connector connector = new ConnectorImpl(new JDKWireService(), null);
+
connector.connect(clientComponent);
FooClient client = (FooClient) clientComponent.getServiceInstance();
client.invoke();
@@ -125,7 +126,7 @@
wireService.createWires(clientComponent2, sourceDefinition2);
container.register(clientComponent2);
- Connector connector = new ConnectorImpl();
+ Connector connector = new ConnectorImpl(new JDKWireService(), null);
connector.connect(clientComponent1);
connector.connect(clientComponent2);
FooClient client1 = (FooClient) clientComponent1.getServiceInstance();
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/OutboundWireToJavaTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/OutboundWireToJavaTestCase.java?view=diff&rev=449095&r1=449094&r2=449095
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/OutboundWireToJavaTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/OutboundWireToJavaTestCase.java Fri Sep 22 14:22:11 2006
@@ -25,6 +25,7 @@
import java.util.concurrent.FutureTask;
import org.apache.tuscany.spi.QualifiedName;
+import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.ScopeContainer;
import org.apache.tuscany.spi.component.WorkContext;
import org.apache.tuscany.spi.idl.InvalidServiceContractException;
@@ -60,6 +61,7 @@
import org.apache.tuscany.core.wire.OutboundInvocationChainImpl;
import org.apache.tuscany.core.wire.OutboundWireImpl;
import org.apache.tuscany.core.wire.jdk.JDKWireService;
+import org.easymock.EasyMock;
/**
* Validates wiring from a service context to Java atomic contexts by scope
@@ -174,18 +176,32 @@
private OutboundWire getWire(ScopeContainer scope) throws NoSuchMethodException,
InvalidServiceContractException {
ConnectorImpl connector = new ConnectorImpl();
- OutboundWire wire = createOutboundWire(new QualifiedName("target/Target"), Target.class);
+
+ CompositeComponent parent = EasyMock.createMock(CompositeComponent.class);
PojoConfiguration configuration = new PojoConfiguration();
configuration.setScopeContainer(scope);
configuration.setInstanceFactory(new PojoObjectFactory<TargetImpl>(TargetImpl.class.getConstructor()));
configuration.addServiceInterface(Target.class);
- JavaAtomicComponent atomicComponent = new JavaAtomicComponent("target", configuration, null);
+ configuration.setParent(parent);
+
+ JavaAtomicComponent source = new JavaAtomicComponent("source", configuration, null);
+ OutboundWire outboundWire = createOutboundWire(new QualifiedName("target/Target"), Target.class);
+ outboundWire.setContainer(source);
+ source.addOutboundWire(outboundWire);
+ JavaAtomicComponent target = new JavaAtomicComponent("target", configuration, null);
InboundWire targetWire = MockFactory.createTargetWire("Target", Target.class);
- atomicComponent.addInboundWire(targetWire);
- connector.connect(atomicComponent, atomicComponent, wire, atomicComponent.getInboundWire("Target"), false);
- atomicComponent.start();
- return wire;
+ targetWire.setContainer(target);
+ target.addInboundWire(targetWire);
+ InboundWire inboundWire = target.getInboundWire("Target");
+ inboundWire.setContainer(target);
+
+ EasyMock.expect(parent.getChild("target")).andReturn(target);
+ EasyMock.replay(parent);
+
+ connector.connect(source);
+ target.start();
+ return outboundWire;
}
public static <T> OutboundWire createOutboundWire(QualifiedName targetName, Class<T> interfaze)
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderWireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderWireTestCase.java?view=diff&rev=449095&r1=449094&r2=449095
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderWireTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderWireTestCase.java Fri Sep 22 14:22:11 2006
@@ -158,15 +158,9 @@
Service service = bindingBuilder.build(parent, serviceDefinition, deploymentContext);
parent.register(service);
- connector.connect(service.getInboundWire(), service.getOutboundWire(), true);
-
connector.connect(sourceComponent);
- String serviceName = service.getOutboundWire().getTargetName().getPortName();
- connector.connect(sourceComponent,
- parent,
- service.getOutboundWire(),
- sourceComponent.getInboundWire(serviceName),
- true);
+ connector.connect(service);
+
parent.start();
scope.onEvent(new CompositeStart(this, parent));
Target target = (Target) parent.getChild("serviceDefinition").getServiceInstance();
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Connector.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Connector.java?view=diff&rev=449095&r1=449094&r2=449095
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Connector.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Connector.java Fri Sep 22 14:22:11 2006
@@ -40,12 +40,11 @@
/**
* Bridges the invocation chains associated with an inbound and outbound wire.
*
- * @param inboundWire the wire to bridge from
- * @param outboundWire the target wire
- * @param optimizable if the bridge may be optimized
+ * @param inbound the wire to bridge from
+ * @param outbound the target wire
+ * @param optimizable if the bridge may be optimized
* @throws BuilderConfigException
*/
- void connect(InboundWire inboundWire, OutboundWire outboundWire, boolean optimizable)
- throws BuilderConfigException;
+ void connect(InboundWire inbound, OutboundWire outbound, boolean optimizable) throws BuilderConfigException;
}
Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringTestUtils.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringTestUtils.java?view=diff&rev=449095&r1=449094&r2=449095
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringTestUtils.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringTestUtils.java Fri Sep 22 14:22:11 2006
@@ -54,7 +54,7 @@
service.setOutboundWire(outboundWire);
outboundWire.setTargetName(new QualifiedName("foo"));
Connector connector = ArtifactFactory.createConnector();
- connector.connect(inboundWire, outboundWire, true);
+ connector.connect(service);
ArtifactFactory.terminateWire(inboundWire);
return service;
}
Modified: incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java?view=diff&rev=449095&r1=449094&r2=449095
==============================================================================
--- incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java (original)
+++ incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java Fri Sep 22 14:22:11 2006
@@ -25,6 +25,7 @@
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.QualifiedName;
import junit.framework.TestCase;
import org.apache.tuscany.container.spring.mock.TestBean;
@@ -44,21 +45,22 @@
public void testInvocation() throws InvalidServiceContractException {
AbstractApplicationContext springContext = createSpringContext();
- SpringCompositeComponent context = new SpringCompositeComponent("parent", springContext, null, null, null);
+ SpringCompositeComponent composite = new SpringCompositeComponent("parent", springContext, null, null, null);
InboundWire inboundWire = ArtifactFactory.createInboundWire("fooService", TestBean.class);
OutboundWire outboundWire = ArtifactFactory.createOutboundWire("fooService", TestBean.class);
+ outboundWire.setTargetName(new QualifiedName("foo"));
ArtifactFactory.terminateWire(outboundWire);
Service service =
- new ServiceExtension("fooService", TestBean.class, context, createWireService());
+ new ServiceExtension("fooService", TestBean.class, composite, createWireService());
service.setInboundWire(inboundWire);
service.setOutboundWire(outboundWire);
Connector connector = ArtifactFactory.createConnector();
connector.connect(inboundWire, outboundWire, true);
for (InboundInvocationChain chain : inboundWire.getInvocationChains().values()) {
- chain.setTargetInvoker(context.createTargetInvoker("foo", chain.getOperation()));
+ chain.setTargetInvoker(composite.createTargetInvoker("foo", chain.getOperation()));
}
- context.register(service);
- TestBean serviceInstance = (TestBean) context.getService("fooService").getServiceInstance();
+ composite.register(service);
+ TestBean serviceInstance = (TestBean) composite.getService("fooService").getServiceInstance();
assertEquals("bar", serviceInstance.echo("bar"));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org