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/05/21 05:44:41 UTC
svn commit: r408125 - in /incubator/tuscany/sandbox/jboynes/sca/core2/src:
main/java/org/apache/tuscany/core/builder/
test/java/org/apache/tuscany/core/integration/system/
test/java/org/apache/tuscany/core/integration/system/builder/
test/java/org/apac...
Author: jmarino
Date: Sat May 20 20:44:41 2006
New Revision: 408125
URL: http://svn.apache.org/viewvc?rev=408125&view=rev
Log:
integration testcases for system builders
Added:
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemBuildersTestCase.java
- copied, changed from r408122, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemComponentBuilderTestCase.java
Removed:
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemComponentBuilderTestCase.java
Modified:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToAtomicContextTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToReferenceContextTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/AutowireBuilderTestcase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockComponentFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/AutowireTestCase.java
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java?rev=408125&r1=408124&r2=408125&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java Sat May 20 20:44:41 2006
@@ -155,6 +155,9 @@
return true;
} else if (pReferrer == Scope.SESSION && pReferee == Scope.COMPOSITE) {
return true;
+ } else if (pReferrer == Scope.COMPOSITE && pReferee == Scope.MODULE) {
+ // case where a service context points to a module scoped component
+ return true;
} else return pReferrer == Scope.MODULE && pReferee == Scope.COMPOSITE;
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java?rev=408125&r1=408124&r2=408125&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java Sat May 20 20:44:41 2006
@@ -10,12 +10,12 @@
import org.apache.tuscany.core.context.WorkContextImpl;
import org.apache.tuscany.core.context.scope.ModuleScopeContext;
import org.apache.tuscany.core.mock.MockContextFactory;
-import org.apache.tuscany.core.mock.context.MockTargetWire;
import org.apache.tuscany.core.mock.component.Source;
import org.apache.tuscany.core.mock.component.SourceImpl;
import org.apache.tuscany.core.mock.component.Target;
import org.apache.tuscany.core.mock.component.TargetImpl;
import org.apache.tuscany.core.mock.context.MockReferenceContext;
+import org.apache.tuscany.core.mock.context.MockTargetWire;
import org.apache.tuscany.core.system.context.SystemAtomicContext;
import org.apache.tuscany.core.system.context.SystemCompositeContext;
import org.apache.tuscany.core.system.context.SystemCompositeContextImpl;
@@ -26,6 +26,8 @@
import org.apache.tuscany.spi.wire.TargetWire;
/**
+ * Tests wireing from an atomic context to a reference context
+ *
* @version $$Rev$$ $$Date$$
*/
public class AtomicContextToReferenceContextTestCase extends TestCase {
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToAtomicContextTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToAtomicContextTestCase.java?rev=408125&r1=408124&r2=408125&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToAtomicContextTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToAtomicContextTestCase.java Sat May 20 20:44:41 2006
@@ -19,6 +19,8 @@
import org.apache.tuscany.spi.QualifiedName;
/**
+ * Tests a wire from a service context to an atomic context
+ *
* @version $$Rev$$ $$Date$$
*/
public class ServiceContextToAtomicContextTestCase extends TestCase {
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToReferenceContextTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToReferenceContextTestCase.java?rev=408125&r1=408124&r2=408125&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToReferenceContextTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/ServiceContextToReferenceContextTestCase.java Sat May 20 20:44:41 2006
@@ -19,6 +19,8 @@
import org.apache.tuscany.spi.wire.TargetWire;
/**
+ * Tests wiring from a service context directly to an atomic context
+ *
* @version $$Rev$$ $$Date$$
*/
public class ServiceContextToReferenceContextTestCase extends TestCase {
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/AutowireBuilderTestcase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/AutowireBuilderTestcase.java?rev=408125&r1=408124&r2=408125&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/AutowireBuilderTestcase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/AutowireBuilderTestcase.java Sat May 20 20:44:41 2006
@@ -24,10 +24,16 @@
import org.apache.tuscany.spi.context.WorkContext;
/**
+ * Validates that system builders create autowired contexts from a set of model objects
+ *
* @version $$Rev$$ $$Date$$
*/
public class AutowireBuilderTestcase extends TestCase {
+ /**
+ * Validates wiring from a component to a reference which is autowired to a component in the grandparent
+ * composite
+ */
public void testComponentToReference() throws Exception {
WorkContext work = new WorkContextImpl();
ScopeContext scope = new ModuleScopeContext(work);
@@ -46,7 +52,7 @@
targetComponentContext.setScopeContext(scope);
grandParent.registerContext(targetComponentContext);
- BoundReference<SystemBinding> targetReference = MockComponentFactory.createTargetReference();
+ BoundReference<SystemBinding> targetReference = MockComponentFactory.createBoundReference();
Component<SystemImplementation> sourceComponent = MockComponentFactory.createSourceWithTargetReference();
@@ -72,6 +78,10 @@
scope.stop();
}
+
+ /**
+ * Validates autowiring from a component to another component in the same composite
+ */
public void testComponentToComponent() throws Exception {
WorkContext work = new WorkContextImpl();
ScopeContext scope = new ModuleScopeContext(work);
Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemBuildersTestCase.java (from r408122, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemComponentBuilderTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemBuildersTestCase.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemBuildersTestCase.java&p1=incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemComponentBuilderTestCase.java&r1=408122&r2=408125&rev=408125&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemComponentBuilderTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemBuildersTestCase.java Sat May 20 20:44:41 2006
@@ -10,21 +10,32 @@
import org.apache.tuscany.core.mock.MockComponentFactory;
import org.apache.tuscany.core.mock.component.Source;
import org.apache.tuscany.core.mock.component.Target;
+import org.apache.tuscany.core.system.builder.SystemBindingBuilder;
import org.apache.tuscany.core.system.builder.SystemComponentBuilder;
import org.apache.tuscany.core.system.context.SystemCompositeContext;
import org.apache.tuscany.core.system.context.SystemCompositeContextImpl;
+import org.apache.tuscany.core.system.model.SystemBinding;
import org.apache.tuscany.core.system.model.SystemImplementation;
+import org.apache.tuscany.model.BoundReference;
import org.apache.tuscany.model.Component;
+import org.apache.tuscany.model.BoundService;
import org.apache.tuscany.spi.context.AtomicContext;
import org.apache.tuscany.spi.context.ScopeContext;
import org.apache.tuscany.spi.context.WorkContext;
+import org.apache.tuscany.spi.context.ReferenceContext;
+import org.apache.tuscany.spi.context.ServiceContext;
/**
+ * Validates that system builders and the default connector create properly wired contexts
+ *
* @version $$Rev$$ $$Date$$
*/
-public class SystemComponentBuilderTestCase extends TestCase {
+public class SystemBuildersTestCase extends TestCase {
- public void testComponentWire() throws Exception {
+ /**
+ * Validates building a wire from an atomic context to an atomic context
+ */
+ public void testAtomicWireBuild() throws Exception {
WorkContext work = new WorkContextImpl();
ScopeContext scope = new ModuleScopeContext(work);
scope.start();
@@ -58,4 +69,137 @@
parent.stop();
scope.stop();
}
+
+ /**
+ * Validates building a wire from an atomic context to a reference context
+ */
+ public void testAtomicToReferenceWireBuild() throws Exception {
+ WorkContext work = new WorkContextImpl();
+ ScopeContext scope = new ModuleScopeContext(work);
+ scope.start();
+
+ Connector connector = new ConnectorImpl();
+ SystemComponentBuilder builder = new SystemComponentBuilder();
+ SystemBindingBuilder bindingBuilder = new SystemBindingBuilder();
+
+ SystemCompositeContext grandParent = new SystemCompositeContextImpl();
+ grandParent.setName("grandparent");
+ SystemCompositeContext parent = new SystemCompositeContextImpl("parent", grandParent, grandParent);
+
+ // create a context in the grandparent that the reference will be autowired to
+ Component<SystemImplementation> targetComponent = MockComponentFactory.createTarget();
+ AtomicContext targetComponentContext = (AtomicContext) builder.build(parent, targetComponent);
+ targetComponentContext.setScopeContext(scope);
+ grandParent.registerContext(targetComponentContext);
+
+ BoundReference<SystemBinding> targetReference = MockComponentFactory.createBoundReference();
+ Component<SystemImplementation> sourceComponent = MockComponentFactory.createSourceWithTargetReference();
+
+ AtomicContext sourceContext = (AtomicContext) builder.build(parent, sourceComponent);
+ sourceContext.setScopeContext(scope);
+ ReferenceContext targetContext = (ReferenceContext) bindingBuilder.build(parent, targetReference);
+
+ parent.registerContext(sourceContext);
+ parent.registerContext(targetContext);
+
+ connector.connect(sourceContext, parent);
+ grandParent.start();
+ scope.onEvent(new ModuleStart(this, parent));
+ Source source = (Source) parent.getContext("source").getService();
+ assertNotNull(source);
+ Target target = (Target) parent.getContext("target").getService();
+ assertNotNull(target);
+ assertSame(target, source.getTarget());
+ scope.onEvent(new ModuleStop(this, parent));
+ grandParent.stop();
+ scope.stop();
+ }
+
+
+ /**
+ * Validates building a wire from a service context to an atomic context
+ */
+ public void testServiceToAtomicWireBuild() throws Exception{
+ WorkContext work = new WorkContextImpl();
+ ScopeContext scope = new ModuleScopeContext(work);
+ scope.start();
+
+ Connector connector = new ConnectorImpl();
+ SystemComponentBuilder builder = new SystemComponentBuilder();
+ SystemBindingBuilder bindingBuilder = new SystemBindingBuilder();
+
+ SystemCompositeContext parent = new SystemCompositeContextImpl();
+
+ BoundService<SystemBinding> service = MockComponentFactory.createBoundService();
+ Component<SystemImplementation> component = MockComponentFactory.createTarget();
+
+ AtomicContext sourceContext = (AtomicContext) builder.build(parent, component);
+ sourceContext.setScopeContext(scope);
+ ServiceContext serviceContext = (ServiceContext) bindingBuilder.build(parent, service);
+
+ parent.registerContext(sourceContext);
+ parent.registerContext(serviceContext);
+
+ connector.connect(sourceContext, parent);
+ connector.connect(serviceContext, parent);
+ parent.start();
+ scope.onEvent(new ModuleStart(this, parent));
+ Target target = (Target) parent.getContext("service").getService();
+ assertNotNull(target);
+ Target target2 = (Target) parent.getContext("target").getService();
+ assertNotNull(target);
+ assertSame(target, target2);
+ scope.onEvent(new ModuleStop(this, parent));
+ parent.stop();
+ scope.stop();
+
+ }
+
+ /**
+ * Validates building a wire from a service context to a reference context
+ */
+ public void testServiceToReferenceWireBuild() throws Exception{
+ WorkContext work = new WorkContextImpl();
+ ScopeContext scope = new ModuleScopeContext(work);
+ scope.start();
+
+ Connector connector = new ConnectorImpl();
+ SystemComponentBuilder builder = new SystemComponentBuilder();
+ SystemBindingBuilder bindingBuilder = new SystemBindingBuilder();
+
+ SystemCompositeContext grandParent = new SystemCompositeContextImpl();
+ grandParent.setName("grandparent");
+ SystemCompositeContext parent = new SystemCompositeContextImpl("parent", grandParent, grandParent);
+
+ // create a context in the grandparent that the reference will be autowired to
+ Component<SystemImplementation> targetComponent = MockComponentFactory.createTarget();
+ AtomicContext targetComponentContext = (AtomicContext) builder.build(parent, targetComponent);
+ targetComponentContext.setScopeContext(scope);
+ grandParent.registerContext(targetComponentContext);
+
+ BoundReference<SystemBinding> reference = MockComponentFactory.createBoundReference();
+
+ BoundService<SystemBinding> service = MockComponentFactory.createBoundService();
+
+ ReferenceContext referenceContext = (ReferenceContext) bindingBuilder.build(parent, reference);
+ ServiceContext serviceContext = (ServiceContext) bindingBuilder.build(parent, service);
+
+ parent.registerContext(referenceContext);
+ parent.registerContext(serviceContext);
+
+ connector.connect(serviceContext, parent);
+ parent.start();
+ scope.onEvent(new ModuleStart(this, parent));
+ Target target = (Target) parent.getContext("service").getService();
+ assertNotNull(target);
+ Target target2 = (Target) parent.getContext("target").getService();
+ assertNotNull(target);
+ assertSame(target, target2);
+ scope.onEvent(new ModuleStop(this, parent));
+ parent.stop();
+ scope.stop();
+
+ }
+
+
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockComponentFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockComponentFactory.java?rev=408125&r1=408124&r2=408125&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockComponentFactory.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockComponentFactory.java Sat May 20 20:44:41 2006
@@ -10,13 +10,14 @@
import org.apache.tuscany.core.system.model.SystemBinding;
import org.apache.tuscany.core.system.model.SystemImplementation;
import org.apache.tuscany.model.BoundReference;
+import org.apache.tuscany.model.BoundService;
import org.apache.tuscany.model.Component;
import org.apache.tuscany.model.JavaServiceContract;
import org.apache.tuscany.model.Reference;
import org.apache.tuscany.model.ReferenceTarget;
+import org.apache.tuscany.model.Scope;
import org.apache.tuscany.model.Service;
import org.apache.tuscany.model.ServiceContract;
-import org.apache.tuscany.model.Scope;
/**
* @version $$Rev$$ $$Date$$
@@ -110,7 +111,7 @@
}
- public static BoundReference<SystemBinding> createTargetReference() {
+ public static BoundReference<SystemBinding> createBoundReference() {
SystemBinding binding = new SystemBinding();
BoundReference<SystemBinding> reference = new BoundReference<SystemBinding>();
reference.setBinding(binding);
@@ -120,4 +121,26 @@
reference.setServiceContract(contract);
return reference;
}
+
+ /**
+ * Creates a bound service with the name "service" that is configured to be wired to a target named
+ * "target/Target"
+ */
+ public static BoundService<SystemBinding> createBoundService() {
+ SystemBinding binding = new SystemBinding();
+ BoundService<SystemBinding> service = new BoundService<SystemBinding>();
+ service.setBinding(binding);
+ service.setName("service");
+ ServiceContract contract = new JavaServiceContract();
+ contract.setInterfaze(Target.class);
+ service.setServiceContract(contract);
+ try {
+ service.setTarget(new URI("target/Target"));
+ } catch (URISyntaxException e) {
+ throw new AssertionError(e);
+ }
+ return service;
+ }
+
+
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/AutowireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/AutowireTestCase.java?rev=408125&r1=408124&r2=408125&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/AutowireTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/AutowireTestCase.java Sat May 20 20:44:41 2006
@@ -18,10 +18,15 @@
import org.apache.tuscany.spi.wire.TargetWire;
/**
+ * Performs basic autowiring tests to composite artifacts
* @version $$Rev$$ $$Date$$
*/
public class AutowireTestCase extends TestCase {
+ /**
+ * Tests autowiring to an atomic context
+ * @throws Exception
+ */
public void testAtomicAutowire() throws Exception {
WorkContext workContext = new WorkContextImpl();
ModuleScopeContext scopeContext = new ModuleScopeContext(workContext);
@@ -43,6 +48,9 @@
assertNull(parent.resolveExternalInstance(Source.class));
}
+ /**
+ * Tests autowiring to a service context which is wired to an atomic context.
+ */
public void testServiceAutowire() throws Exception {
WorkContext workContext = new WorkContextImpl();
ModuleScopeContext scopeContext = new ModuleScopeContext(workContext);
@@ -70,6 +78,9 @@
assertNull(source2);
}
+ /**
+ * Tests autowiring to a reference
+ */
public void testReferenceAutowire() throws Exception {
WorkContext workContext = new WorkContextImpl();
ModuleScopeContext scopeContext = new ModuleScopeContext(workContext);
@@ -77,6 +88,7 @@
SystemCompositeContext<?> parent = new SystemCompositeContextImpl("parent", null, null);
parent.start();
MockReferenceContext<Source> referenceContext = new MockReferenceContext<Source>("sourceReference", Source.class);
+ // create a mock wire for the reference which just holds a pre-instantiated target
TargetWire<Source> wire = new MockTargetWire<Source>(Source.class, new SourceImpl());
referenceContext.setTargetWire(wire);
parent.registerContext(referenceContext);
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org