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/11/26 12:07:05 UTC
svn commit: r479342 - in /incubator/tuscany/java/sca/kernel/core/src:
main/java/org/apache/tuscany/core/component/scope/
test/java/org/apache/tuscany/core/implementation/java/integration/
test/java/org/apache/tuscany/core/integration/conversation/ test...
Author: jmarino
Date: Sun Nov 26 03:07:04 2006
New Revision: 479342
URL: http://svn.apache.org/viewvc?view=rev&rev=479342
Log:
more testcase cleanup; have conversational scope container persist instances after creation
Added:
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/conversation/BasicConversationInvocationTestCase.java (contents, props changed)
- copied, changed from r479280, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/conversation/BasicInvocationTestCase.java
Removed:
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/conversation/BasicInvocationTestCase.java
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerImpl.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/OutboundWireToJavaTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/mock/MockFactory.java
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerImpl.java?view=diff&rev=479342&r1=479341&r2=479342
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ConversationalScopeContainerImpl.java Sun Nov 26 03:07:04 2006
@@ -92,11 +92,19 @@
if (instance != null) {
return instance;
} else {
- // TODO do we persist after we create?
- return component.createInstance();
+ Object o = component.createInstance();
+ // FIXME support expirations
+ nonDurableStore.insertRecord(component, conversationId, o, Store.NEVER);
+ return o;
}
} catch (StoreReadException e) {
- throw new TargetException(e);
+ TargetException e2 = new TargetException(e);
+ e2.setIdentifier(component.getName());
+ throw e2;
+ } catch (StoreWriteException e) {
+ TargetException e2 = new TargetException(e);
+ e2.setIdentifier(component.getName());
+ throw e2;
} finally {
workContext.setCurrentAtomicComponent(null);
}
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/OutboundWireToJavaTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/OutboundWireToJavaTestCase.java?view=diff&rev=479342&r1=479341&r2=479342
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/OutboundWireToJavaTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/OutboundWireToJavaTestCase.java Sun Nov 26 03:07:04 2006
@@ -192,7 +192,7 @@
source.addOutboundWire(outboundWire);
configuration.setName("target");
JavaAtomicComponent target = new JavaAtomicComponent(configuration);
- InboundWire targetWire = MockFactory.createTargetWire("Target", Target.class);
+ InboundWire targetWire = MockFactory.createInboundWire("Target", Target.class);
targetWire.setContainer(target);
target.addInboundWire(targetWire);
InboundWire inboundWire = target.getInboundWire("Target");
Copied: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/conversation/BasicConversationInvocationTestCase.java (from r479280, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/conversation/BasicInvocationTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/conversation/BasicConversationInvocationTestCase.java?view=diff&rev=479342&p1=incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/conversation/BasicInvocationTestCase.java&r1=479280&p2=incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/conversation/BasicConversationInvocationTestCase.java&r2=479342
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/conversation/BasicInvocationTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/conversation/BasicConversationInvocationTestCase.java Sun Nov 26 03:07:04 2006
@@ -18,71 +18,153 @@
*/
package org.apache.tuscany.core.integration.conversation;
-import org.osoa.sca.annotations.Scope;
+import java.lang.reflect.Constructor;
+import java.util.Map;
+
import org.osoa.sca.annotations.EndConversation;
+import org.osoa.sca.annotations.Scope;
+import org.apache.tuscany.spi.ObjectCreationException;
+import org.apache.tuscany.spi.QualifiedName;
import org.apache.tuscany.spi.component.ScopeContainer;
import org.apache.tuscany.spi.component.WorkContext;
+import org.apache.tuscany.spi.model.Operation;
+import static org.apache.tuscany.spi.model.Scope.CONVERSATION;
import org.apache.tuscany.spi.services.store.StoreMonitor;
-import org.apache.tuscany.spi.model.ServiceContract;
+import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.wire.MessageImpl;
+import org.apache.tuscany.spi.wire.OutboundInvocationChain;
import org.apache.tuscany.spi.wire.OutboundWire;
+import org.apache.tuscany.spi.wire.WirePostProcessorRegistry;
import junit.framework.TestCase;
+import org.apache.tuscany.core.builder.ConnectorImpl;
+import org.apache.tuscany.core.builder.WirePostProcessorRegistryImpl;
import org.apache.tuscany.core.component.WorkContextImpl;
import org.apache.tuscany.core.component.scope.ConversationalScopeContainerImpl;
-import org.apache.tuscany.core.services.store.memory.MemoryStore;
-import org.apache.tuscany.core.idl.java.JavaInterfaceProcessorRegistryImpl;
+import org.apache.tuscany.core.implementation.PojoConfiguration;
import org.apache.tuscany.core.implementation.java.JavaAtomicComponent;
+import org.apache.tuscany.core.injection.PojoObjectFactory;
+import org.apache.tuscany.core.integration.mock.MockFactory;
+import org.apache.tuscany.core.services.store.memory.MemoryStore;
import org.apache.tuscany.core.wire.ConversationWirePostProcessor;
-import org.apache.tuscany.core.wire.OutboundWireImpl;
import org.easymock.classextension.EasyMock;
/**
* @version $Rev$ $Date$
*/
-public class BasicInvocationTestCase extends TestCase {
+public class BasicConversationInvocationTestCase extends TestCase {
private ScopeContainer container;
private MemoryStore store;
private WorkContext workContext;
- private JavaInterfaceProcessorRegistryImpl registry;
- private ServiceContract contract;
- private JavaAtomicComponent component;
- private ConversationWirePostProcessor processor;
+ private ConnectorImpl connector;
+ private OutboundWire owire;
+ private Foo targetInstance;
public void testConversationStartContinueEnd() throws Exception {
- OutboundWire owire = new OutboundWireImpl();
+ workContext.setIdentifier(CONVERSATION, "12345A");
+ for (Map.Entry<Operation<?>, OutboundInvocationChain> entry : owire.getInvocationChains().entrySet()) {
+ if ("operation1".equals(entry.getKey().getName())) {
+ MessageImpl msg = new MessageImpl();
+ msg.setTargetInvoker(entry.getValue().getTargetInvoker());
+ entry.getValue().getHeadInterceptor().invoke(msg);
+ }
+ }
+ for (Map.Entry<Operation<?>, OutboundInvocationChain> entry : owire.getInvocationChains().entrySet()) {
+ if ("operation2".equals(entry.getKey().getName())) {
+ MessageImpl msg = new MessageImpl();
+ msg.setTargetInvoker(entry.getValue().getTargetInvoker());
+ entry.getValue().getHeadInterceptor().invoke(msg);
+ }
+ }
+ for (Map.Entry<Operation<?>, OutboundInvocationChain> entry : owire.getInvocationChains().entrySet()) {
+ if ("end".equals(entry.getKey().getName())) {
+ MessageImpl msg = new MessageImpl();
+ msg.setTargetInvoker(entry.getValue().getTargetInvoker());
+ entry.getValue().getHeadInterceptor().invoke(msg);
+ }
+ }
+ workContext.clearIdentifier(CONVERSATION);
+
// start, continue, end
+ EasyMock.verify(targetInstance);
}
protected void setUp() throws Exception {
super.setUp();
+ bootRuntime();
+ targetInstance = EasyMock.createMock(Foo.class);
+ targetInstance.operation1();
+ targetInstance.operation2();
+ targetInstance.end();
+ EasyMock.replay(targetInstance);
+ // create target component mock
+ JavaAtomicComponent target = createAtomicComponent();
+ // create source component mock
+ JavaAtomicComponent source = EasyMock.createMock(JavaAtomicComponent.class);
+ EasyMock.expect(source.getName()).andReturn("source");
+ EasyMock.replay(source);
+
+ owire = MockFactory.createOutboundWire("foo", Foo.class);
+ owire.setContainer(source);
+ owire.setTargetName(new QualifiedName("foo/bar"));
+ InboundWire iwire = MockFactory.createInboundWire("foo", Foo.class);
+ iwire.setContainer(target);
+ connector.connect(owire, iwire, false);
+
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ container.stop();
+ store.destroy();
+ }
+
+ private void bootRuntime() {
workContext = new WorkContextImpl();
- registry = new JavaInterfaceProcessorRegistryImpl();
- contract = registry.introspect(Foo.class);
- processor = new ConversationWirePostProcessor();
+ WirePostProcessorRegistry processorRegistry = new WirePostProcessorRegistryImpl();
+ ConversationWirePostProcessor processor = new ConversationWirePostProcessor();
+ processor.setRegistry(processorRegistry);
+ processor.init();
+ connector = new ConnectorImpl(null, processorRegistry, null, workContext);
store = new MemoryStore(EasyMock.createNiceMock(StoreMonitor.class));
store.init();
container = new ConversationalScopeContainerImpl(store, workContext);
container.start();
- component = EasyMock.createMock(JavaAtomicComponent.class);
}
- protected void tearDown() throws Exception {
- super.tearDown();
- container.stop();
- store.destroy();
+ private JavaAtomicComponent createAtomicComponent() throws Exception {
+ PojoConfiguration configuration = new PojoConfiguration();
+ configuration.setName("target");
+ configuration.setScopeContainer(container);
+ configuration.setInstanceFactory(new MockPojoFactory(Object.class.getConstructor()));
+ JavaAtomicComponent component = new JavaAtomicComponent(configuration);
+ component.start();
+ return component;
+ }
+
+ private class MockPojoFactory extends PojoObjectFactory<Object> {
+ public MockPojoFactory(Constructor<Object> ctr) {
+ super(ctr);
+ }
+
+ public Foo getInstance() throws ObjectCreationException {
+ return targetInstance;
+ }
}
@Scope("CONVERSATION")
- private interface Foo {
+ public static interface Foo {
void operation1();
+
void operation2();
@EndConversation
void end();
}
+
}
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/conversation/BasicConversationInvocationTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/conversation/BasicConversationInvocationTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/mock/MockFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/mock/MockFactory.java?view=diff&rev=479342&r1=479341&r2=479342
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/mock/MockFactory.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/mock/MockFactory.java Sun Nov 26 03:07:04 2006
@@ -198,25 +198,12 @@
return components;
}
- public static <T> InboundWire createTargetWire(String serviceName, Class<T> interfaze)
+ public static <T> InboundWire createInboundWire(String serviceName, Class<T> interfaze)
throws InvalidServiceContractException {
return createInboundWire(serviceName, interfaze, null);
}
- @SuppressWarnings("unchecked")
- private static <T> JavaAtomicComponent createJavaComponent(String name, ScopeContainer scope, Class<T> clazz)
- throws NoSuchMethodException {
- PojoConfiguration configuration = new PojoConfiguration();
- configuration.setScopeContainer(scope);
- configuration.setInstanceFactory(new PojoObjectFactory(clazz.getConstructor()));
- configuration.addServiceInterface(clazz);
- configuration.setWireService(WIRE_SERVICE);
- configuration.setWorkContext(new WorkContextImpl());
- configuration.setName(name);
- return new JavaAtomicComponent(configuration);
- }
-
- private static <T> InboundWire createInboundWire(String serviceName, Class<T> interfaze, Interceptor interceptor)
+ public static <T> InboundWire createInboundWire(String serviceName, Class<T> interfaze, Interceptor interceptor)
throws InvalidServiceContractException {
InboundWire wire = new InboundWireImpl();
ServiceContract<?> contract = REGISTRY.introspect(interfaze);
@@ -226,7 +213,12 @@
return wire;
}
- private static <T> OutboundWire createOutboundWire(String refName, Class<T> interfaze, Interceptor interceptor)
+ public static <T> OutboundWire createOutboundWire(String refName, Class<T> interfaze)
+ throws InvalidServiceContractException {
+ return createOutboundWire(refName, interfaze, null);
+ }
+
+ public static <T> OutboundWire createOutboundWire(String refName, Class<T> interfaze, Interceptor interceptor)
throws InvalidServiceContractException {
OutboundWire wire = new OutboundWireImpl();
@@ -236,6 +228,20 @@
ServiceContract<?> contract = REGISTRY.introspect(interfaze);
wire.setServiceContract(contract);
return wire;
+ }
+
+
+ @SuppressWarnings("unchecked")
+ private static <T> JavaAtomicComponent createJavaComponent(String name, ScopeContainer scope, Class<T> clazz)
+ throws NoSuchMethodException {
+ PojoConfiguration configuration = new PojoConfiguration();
+ configuration.setScopeContainer(scope);
+ configuration.setInstanceFactory(new PojoObjectFactory(clazz.getConstructor()));
+ configuration.addServiceInterface(clazz);
+ configuration.setWireService(WIRE_SERVICE);
+ configuration.setWorkContext(new WorkContextImpl());
+ configuration.setName(name);
+ return new JavaAtomicComponent(configuration);
}
private static Map<Operation<?>, OutboundInvocationChain> createOutboundChains(Class<?> interfaze,
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org