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/10/02 08:58:21 UTC

svn commit: r451895 [2/3] - in /incubator/tuscany/java/sca: kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/ kernel/core/src/main/java/org/apache/tuscany/core/builder/ kernel/core/src/main/java/org/apache/tuscany/core/component/ kernel/core...

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=451895&r1=451894&r2=451895
==============================================================================
--- 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 Sun Oct  1 23:58:18 2006
@@ -118,6 +118,7 @@
         // create the target
         AtomicComponent target = EasyMock.createMock(AtomicComponent.class);
         EasyMock.expect(target.getScope()).andReturn(Scope.MODULE);
+        EasyMock.expect(target.isSystem()).andReturn(false).atLeastOnce();
         target.getInboundWire(EasyMock.eq("FooService"));
         EasyMock.expectLastCall().andReturn(targetWire).atLeastOnce();
         target.createTargetInvoker(EasyMock.eq("FooService"), EasyMock.eq(operation));
@@ -166,6 +167,7 @@
         // create the service
         Service service = EasyMock.createMock(Service.class);
         EasyMock.expect(service.getName()).andReturn("source");
+        EasyMock.expect(service.isSystem()).andReturn(false).atLeastOnce();
         EasyMock.expect(service.getParent()).andReturn(parent).atLeastOnce();
         EasyMock.expect(service.getInboundWire()).andReturn(inboundWire).atLeastOnce();
         EasyMock.expect(service.getScope()).andReturn(Scope.COMPOSITE);
@@ -243,6 +245,7 @@
 
         // create the source
         AtomicComponent source = EasyMock.createMock(AtomicComponent.class);
+        EasyMock.expect(source.isSystem()).andReturn(false).atLeastOnce();
         EasyMock.expect(source.getScope()).andReturn(Scope.MODULE);
         EasyMock.expect(source.getParent()).andReturn(parent).atLeastOnce();
         EasyMock.expect(source.getOutboundWires()).andReturn(outboundWires);

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicHttpSessionScopeTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicHttpSessionScopeTestCase.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicHttpSessionScopeTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicHttpSessionScopeTestCase.java Sun Oct  1 23:58:18 2006
@@ -25,7 +25,7 @@
 import org.apache.tuscany.core.component.WorkContextImpl;
 import org.apache.tuscany.core.component.event.HttpSessionEnd;
 import org.apache.tuscany.core.implementation.PojoConfiguration;
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponent;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
 import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponentImpl;
 import org.apache.tuscany.core.injection.EventInvoker;
 import org.apache.tuscany.core.injection.MethodEventInvoker;

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicModuleScopeTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicModuleScopeTestCase.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicModuleScopeTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicModuleScopeTestCase.java Sun Oct  1 23:58:18 2006
@@ -20,12 +20,12 @@
 
 import org.apache.tuscany.spi.component.ScopeContainer;
 import org.apache.tuscany.spi.component.WorkContext;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
 
 import junit.framework.TestCase;
 import org.apache.tuscany.core.component.WorkContextImpl;
 import org.apache.tuscany.core.component.event.CompositeStop;
 import org.apache.tuscany.core.implementation.PojoConfiguration;
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponent;
 import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponentImpl;
 import org.apache.tuscany.core.injection.EventInvoker;
 import org.apache.tuscany.core.injection.MethodEventInvoker;

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicRequestScopeTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicRequestScopeTestCase.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicRequestScopeTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicRequestScopeTestCase.java Sun Oct  1 23:58:18 2006
@@ -19,11 +19,11 @@
 package org.apache.tuscany.core.component.scope;
 
 import org.apache.tuscany.spi.component.ScopeContainer;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
 
 import junit.framework.TestCase;
 import org.apache.tuscany.core.component.event.RequestEnd;
 import org.apache.tuscany.core.implementation.PojoConfiguration;
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponent;
 import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponentImpl;
 import org.apache.tuscany.core.injection.EventInvoker;
 import org.apache.tuscany.core.injection.MethodEventInvoker;

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicStatelessScopeTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicStatelessScopeTestCase.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicStatelessScopeTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/BasicStatelessScopeTestCase.java Sun Oct  1 23:58:18 2006
@@ -19,11 +19,11 @@
 package org.apache.tuscany.core.component.scope;
 
 import org.apache.tuscany.spi.component.WorkContext;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
 
 import junit.framework.Assert;
 import junit.framework.TestCase;
 import org.apache.tuscany.core.component.WorkContextImpl;
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponent;
 import org.apache.tuscany.core.mock.component.StatelessComponent;
 import org.apache.tuscany.core.mock.component.StatelessComponentImpl;
 import org.apache.tuscany.core.mock.factories.MockFactory;

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInstanceLifecycleTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInstanceLifecycleTestCase.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInstanceLifecycleTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInstanceLifecycleTestCase.java Sun Oct  1 23:58:18 2006
@@ -19,13 +19,13 @@
 package org.apache.tuscany.core.component.scope;
 
 import org.apache.tuscany.spi.component.WorkContext;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
 
 import junit.framework.Assert;
 import junit.framework.TestCase;
 import org.apache.tuscany.core.component.WorkContextImpl;
 import org.apache.tuscany.core.component.event.HttpSessionEnd;
 import org.apache.tuscany.core.component.event.HttpSessionStart;
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponent;
 import org.apache.tuscany.core.mock.component.OrderedEagerInitPojo;
 import org.apache.tuscany.core.mock.component.OrderedInitPojo;
 import org.apache.tuscany.core.mock.component.OrderedInitPojoImpl;

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeRestartTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeRestartTestCase.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeRestartTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeRestartTestCase.java Sun Oct  1 23:58:18 2006
@@ -27,7 +27,7 @@
 import org.apache.tuscany.core.component.event.HttpSessionEnd;
 import org.apache.tuscany.core.component.event.HttpSessionStart;
 import org.apache.tuscany.core.implementation.PojoConfiguration;
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponent;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
 import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponentImpl;
 import org.apache.tuscany.core.injection.MethodEventInvoker;
 import org.apache.tuscany.core.injection.PojoObjectFactory;

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ModuleScopeInstanceLifecycleTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ModuleScopeInstanceLifecycleTestCase.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ModuleScopeInstanceLifecycleTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ModuleScopeInstanceLifecycleTestCase.java Sun Oct  1 23:58:18 2006
@@ -20,13 +20,13 @@
 
 
 import org.apache.tuscany.spi.component.WorkContext;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
 
 import junit.framework.Assert;
 import junit.framework.TestCase;
 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.implementation.system.component.SystemAtomicComponent;
 import org.apache.tuscany.core.mock.component.ModuleScopeDestroyOnlyComponent;
 import org.apache.tuscany.core.mock.component.ModuleScopeInitDestroyComponent;
 import org.apache.tuscany.core.mock.component.ModuleScopeInitOnlyComponent;

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ModuleScopeRestartTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ModuleScopeRestartTestCase.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ModuleScopeRestartTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ModuleScopeRestartTestCase.java Sun Oct  1 23:58:18 2006
@@ -27,7 +27,7 @@
 import org.apache.tuscany.core.component.event.CompositeStart;
 import org.apache.tuscany.core.component.event.CompositeStop;
 import org.apache.tuscany.core.implementation.PojoConfiguration;
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponent;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
 import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponentImpl;
 import org.apache.tuscany.core.injection.MethodEventInvoker;
 import org.apache.tuscany.core.injection.PojoObjectFactory;

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInstanceLifecycleTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInstanceLifecycleTestCase.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInstanceLifecycleTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInstanceLifecycleTestCase.java Sun Oct  1 23:58:18 2006
@@ -19,13 +19,13 @@
 package org.apache.tuscany.core.component.scope;
 
 import org.apache.tuscany.spi.component.WorkContext;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
 
 import junit.framework.Assert;
 import junit.framework.TestCase;
 import org.apache.tuscany.core.component.WorkContextImpl;
 import org.apache.tuscany.core.component.event.RequestEnd;
 import org.apache.tuscany.core.component.event.RequestStart;
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponent;
 import org.apache.tuscany.core.mock.component.OrderedEagerInitPojo;
 import org.apache.tuscany.core.mock.component.OrderedInitPojo;
 import org.apache.tuscany.core.mock.component.OrderedInitPojoImpl;

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeRestartTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeRestartTestCase.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeRestartTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeRestartTestCase.java Sun Oct  1 23:58:18 2006
@@ -26,7 +26,7 @@
 import org.apache.tuscany.core.component.WorkContextImpl;
 import org.apache.tuscany.core.component.event.RequestEnd;
 import org.apache.tuscany.core.implementation.PojoConfiguration;
-import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponent;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
 import org.apache.tuscany.core.implementation.system.component.SystemAtomicComponentImpl;
 import org.apache.tuscany.core.injection.MethodEventInvoker;
 import org.apache.tuscany.core.injection.PojoObjectFactory;

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java Sun Oct  1 23:58:18 2006
@@ -129,11 +129,11 @@
 
         // load the boot2 file using the bootstrap deployer
         componentDefinition.setName("newDeployer");
-        Component component = deployer.deploy(parent, componentDefinition);
+        CompositeComponent component = (CompositeComponent) deployer.deploy(parent, componentDefinition);
         assertNotNull(component);
         verify(parent);
         component.start();
-        Deployer newDeployer = (Deployer) component.getServiceInstance("deployer");
+        Deployer newDeployer = (Deployer) component.getSystemServiceInstance("deployer");
         assertNotNull(newDeployer);
 
 /*      // FIXME

Copied: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AutowireResolutionTestCase.java (from r451663, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/AutowireResolutionTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AutowireResolutionTestCase.java?view=diff&rev=451895&p1=incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/AutowireResolutionTestCase.java&r1=451663&p2=incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AutowireResolutionTestCase.java&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/AutowireResolutionTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AutowireResolutionTestCase.java Sun Oct  1 23:58:18 2006
@@ -16,12 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.core.implementation.system.component;
+package org.apache.tuscany.core.implementation.composite;
 
 import org.apache.tuscany.spi.component.CompositeComponent;
 
 import junit.framework.TestCase;
-import org.apache.tuscany.core.component.AutowireComponent;
 import org.easymock.EasyMock;
 import static org.easymock.EasyMock.createMock;
 import static org.easymock.EasyMock.eq;
@@ -37,40 +36,61 @@
 
     public void testConstruction() {
         CompositeComponent parent = createMock(CompositeComponent.class);
-        AutowireComponent autowire = createMock(AutowireComponent.class);
         replay(parent);
-        replay(autowire);
-        SystemCompositeComponent component = new SystemCompositeComponentImpl("test", parent, autowire, null, null);
+        CompositeComponent component = new CompositeComponentImpl("test", parent, null, null);
         assertEquals("test", component.getName());
         assertSame(parent, component.getParent());
         verify(parent);
-        verify(autowire);
     }
 
     public void testResolveToSelf() {
         CompositeComponent parent = createMock(CompositeComponent.class);
-        AutowireComponent autowire = createMock(AutowireComponent.class);
         replay(parent);
-        replay(autowire);
-        SystemCompositeComponent component = new SystemCompositeComponentImpl("test", parent, autowire, null, null);
+        CompositeComponent component = new CompositeComponentImpl("test", parent, null, null);
         assertSame(component, component.resolveInstance(CompositeComponent.class));
-        assertSame(component, component.resolveInstance(SystemCompositeComponent.class));
         verify(parent);
-        verify(autowire);
+    }
+
+    public void testSystemResolveToSelf() {
+        CompositeComponent parent = createMock(CompositeComponent.class);
+        replay(parent);
+        CompositeComponent component = new CompositeComponentImpl("test", parent, null, null);
+        assertSame(component, component.resolveSystemInstance(CompositeComponent.class));
+        verify(parent);
     }
 
     public void testResolvedByAutowire() {
         Foo foo = new Foo() {
         };
         CompositeComponent parent = createMock(CompositeComponent.class);
-        AutowireComponent autowire = createMock(AutowireComponent.class);
-        EasyMock.expect(autowire.resolveInstance(eq(Foo.class))).andReturn(foo);
+        EasyMock.expect(parent.resolveInstance(eq(Foo.class))).andReturn(foo);
         replay(parent);
-        replay(autowire);
-        SystemCompositeComponent component = new SystemCompositeComponentImpl("test", parent, autowire, null, null);
+        CompositeComponent component = new CompositeComponentImpl("test", parent, null, null);
         assertSame(foo, component.resolveInstance(Foo.class));
         verify(parent);
-        verify(autowire);
+    }
+
+    public void testSystemResolvedByAutowire() {
+        Foo foo = new Foo() {
+        };
+        CompositeComponent parent = createMock(CompositeComponent.class);
+        EasyMock.expect(parent.resolveSystemInstance(eq(Foo.class))).andReturn(foo);
+        replay(parent);
+        CompositeComponent component = new CompositeComponentImpl("test", parent, null, null);
+        assertSame(foo, component.resolveSystemInstance(Foo.class));
+        verify(parent);
+    }
+
+    /**
+     * Verify parent resolution strategy for application services
+     */
+    public void testNamespaceIsolationAutowire() {
+        Foo foo = new Foo() {
+        };
+        CompositeComponent parent = new CompositeComponentImpl("parent", null, null, null);
+        parent.registerJavaObject("foo", Foo.class, foo);
+        CompositeComponent component = new CompositeComponentImpl("test", parent, null, null);
+        assertNull(component.resolveInstance(Foo.class));
     }
 
     protected void setUp() throws Exception {

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AutowireResolutionTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AutowireResolutionTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AutowireTestCase.java (from r451663, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/AutowireTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AutowireTestCase.java?view=diff&rev=451895&p1=incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/AutowireTestCase.java&r1=451663&p2=incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AutowireTestCase.java&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/AutowireTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AutowireTestCase.java Sun Oct  1 23:58:18 2006
@@ -16,12 +16,20 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.core.implementation.system.component;
+package org.apache.tuscany.core.implementation.composite;
 
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.tuscany.spi.component.AtomicComponent;
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.Service;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
+
 import junit.framework.TestCase;
+import org.apache.tuscany.core.implementation.system.component.SystemReference;
+import org.apache.tuscany.core.implementation.system.component.SystemService;
 import org.easymock.EasyMock;
 
 /**
@@ -32,12 +40,10 @@
 public class AutowireTestCase extends TestCase {
 
     /**
-     * Tests autowiring to an atomic context
-     *
-     * @throws Exception
+     * Tests autowiring to an system atomic component
      */
-    public void testAtomicAutowire() throws Exception {
-        SystemCompositeComponent parent = new SystemCompositeComponentImpl("parent", null, null, null, null);
+    public void testSystemAtomicAutowire() throws Exception {
+        CompositeComponent parent = new CompositeComponentImpl("parent", null, null, null);
         parent.start();
 
         List<Class<?>> interfaces = new ArrayList<Class<?>>();
@@ -48,6 +54,36 @@
         EasyMock.expect(component.getName()).andReturn("source").atLeastOnce();
         EasyMock.expect(component.getServiceInstance()).andReturn(originalSource).atLeastOnce();
         EasyMock.expect(component.getServiceInterfaces()).andReturn(interfaces);
+        EasyMock.expect(component.isSystem()).andReturn(true).atLeastOnce();
+
+        EasyMock.replay(component);
+        parent.register(component);
+
+        Source source = parent.resolveSystemInstance(Source.class);
+        assertNotNull(source);
+        Source2 source2 = parent.resolveSystemInstance(Source2.class);
+        assertSame(source, source2);
+        assertNull(parent.resolveSystemExternalInstance(Source.class));
+        EasyMock.verify(component);
+    }
+
+    /**
+     * Tests autowiring to an system atomic component
+     */
+    public void testAtomicAutowire() throws Exception {
+        CompositeComponent parent = new CompositeComponentImpl("parent", null, null, null);
+        parent.start();
+
+        List<Class<?>> interfaces = new ArrayList<Class<?>>();
+        interfaces.add(Source.class);
+        interfaces.add(Source2.class);
+        Source originalSource = new SourceImpl();
+        AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
+        EasyMock.expect(component.getName()).andReturn("source").atLeastOnce();
+        EasyMock.expect(component.getServiceInstance()).andReturn(originalSource).atLeastOnce();
+        EasyMock.expect(component.getServiceInterfaces()).andReturn(interfaces);
+        EasyMock.expect(component.isSystem()).andReturn(false).atLeastOnce();
+
         EasyMock.replay(component);
         parent.register(component);
 
@@ -60,10 +96,10 @@
     }
 
     /**
-     * Tests autowiring to a service context which is wired to an atomic context.
+     * Tests autowiring to a system service which is wired to an atomic component.
      */
-    public void testServiceAutowire() throws Exception {
-        SystemCompositeComponent parent = new SystemCompositeComponentImpl("parent", null, null, null, null);
+    public void testSystemServiceAutowire() throws Exception {
+        CompositeComponent parent = new CompositeComponentImpl("parent", null, null, null);
         parent.start();
 
         List<Class<?>> interfaces = new ArrayList<Class<?>>();
@@ -75,6 +111,7 @@
         EasyMock.expect(component.getName()).andReturn("service").atLeastOnce();
         component.getInterface();
         EasyMock.expectLastCall().andReturn(Source.class).atLeastOnce();
+        EasyMock.expect(component.isSystem()).andReturn(true).atLeastOnce();
         EasyMock.expect(component.getServiceInstance()).andReturn(serviceSource);
         EasyMock.replay(component);
         parent.register(component);
@@ -83,6 +120,44 @@
         SystemAtomicComponent component2 = EasyMock.createMock(SystemAtomicComponent.class);
         EasyMock.expect(component2.getName()).andReturn("source").atLeastOnce();
         EasyMock.expect(component2.getServiceInterfaces()).andReturn(interfaces).atLeastOnce();
+        EasyMock.expect(component2.isSystem()).andReturn(true).atLeastOnce();
+        EasyMock.replay(component2);
+        parent.register(component2);
+
+        Source source = parent.resolveSystemExternalInstance(Source.class);
+        assertSame(serviceSource, source);
+        Source2 source2 = parent.resolveSystemExternalInstance(Source2.class);
+        assertNull(source2);
+        EasyMock.verify(component);
+        EasyMock.verify(component2);
+    }
+
+    /**
+     * Tests autowiring to a system service which is wired to an atomic component.
+     */
+    public void testServiceAutowire() throws Exception {
+        CompositeComponent parent = new CompositeComponentImpl("parent", null, null, null);
+        parent.start();
+
+        List<Class<?>> interfaces = new ArrayList<Class<?>>();
+        interfaces.add(Source.class);
+        interfaces.add(Source2.class);
+
+        Source serviceSource = new SourceImpl();
+        Service component = EasyMock.createMock(Service.class);
+        EasyMock.expect(component.getName()).andReturn("service").atLeastOnce();
+        component.getInterface();
+        EasyMock.expectLastCall().andReturn(Source.class).atLeastOnce();
+        EasyMock.expect(component.isSystem()).andReturn(false).atLeastOnce();
+        EasyMock.expect(component.getServiceInstance()).andReturn(serviceSource);
+        EasyMock.replay(component);
+        parent.register(component);
+
+
+        AtomicComponent component2 = EasyMock.createMock(AtomicComponent.class);
+        EasyMock.expect(component2.getName()).andReturn("source").atLeastOnce();
+        EasyMock.expect(component2.getServiceInterfaces()).andReturn(interfaces).atLeastOnce();
+        EasyMock.expect(component2.isSystem()).andReturn(false).atLeastOnce();
         EasyMock.replay(component2);
         parent.register(component2);
 
@@ -94,17 +169,41 @@
         EasyMock.verify(component2);
     }
 
+
     /**
-     * Tests autowiring to a reference
+     * Tests autowiring to a system reference
      */
-    public void testReferenceAutowire() throws Exception {
-        SystemCompositeComponent parent = new SystemCompositeComponentImpl("parent", null, null, null, null);
+    public void testSystemReferenceAutowire() throws Exception {
+        CompositeComponent parent = new CompositeComponentImpl("parent", null, null, null);
         parent.start();
 
         Source refSource = new SourceImpl();
         SystemReference reference = EasyMock.createMock(SystemReference.class);
         EasyMock.expect(reference.getName()).andReturn("service").atLeastOnce();
         EasyMock.expect(reference.getServiceInstance()).andReturn(refSource);
+        EasyMock.expect(reference.isSystem()).andReturn(true).atLeastOnce();
+        reference.getInterface();
+        EasyMock.expectLastCall().andReturn(Source.class);
+        EasyMock.replay(reference);
+        parent.register(reference);
+
+        Source source = parent.resolveSystemInstance(Source.class);
+        assertNotNull(source);
+        assertNull(parent.resolveSystemExternalInstance(Source.class));
+        EasyMock.verify(reference);
+    }
+
+    /**
+     * Tests autowiring to a reference
+     */
+    public void testReferenceAutowire() throws Exception {
+        CompositeComponent parent = new CompositeComponentImpl("parent", null, null, null);
+        parent.start();
+        Source refSource = new SourceImpl();
+        Reference reference = EasyMock.createMock(Reference.class);
+        EasyMock.expect(reference.getName()).andReturn("service").atLeastOnce();
+        EasyMock.expect(reference.getServiceInstance()).andReturn(refSource);
+        EasyMock.expect(reference.isSystem()).andReturn(false).atLeastOnce();
         reference.getInterface();
         EasyMock.expectLastCall().andReturn(Source.class);
         EasyMock.replay(reference);
@@ -115,6 +214,7 @@
         assertNull(parent.resolveExternalInstance(Source.class));
         EasyMock.verify(reference);
     }
+
 
     public static class SourceImpl implements Source, Source2 {
         public SourceImpl() {

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AutowireTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/AutowireTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeBuilderTestCase.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeBuilderTestCase.java Sun Oct  1 23:58:18 2006
@@ -74,7 +74,7 @@
 
     @SuppressWarnings("unchecked")
     public void testBuildConnect() throws Exception {
-        CompositeComponent parent = new CompositeComponentImpl(null, null, null, null, null);
+        CompositeComponent parent = new CompositeComponentImpl(null, null, null, null);
 
         CompositeBuilder builder = new CompositeBuilder();
         WireService wireService = new JDKWireService();

Copied: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplBasicTestCase.java (from r451885, incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplBasicTestCase.java?view=diff&rev=451895&p1=incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java&r1=451885&p2=incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplBasicTestCase.java&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplBasicTestCase.java Sun Oct  1 23:58:18 2006
@@ -16,85 +16,63 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.spi.extension;
+package org.apache.tuscany.core.implementation.composite;
 
 import java.util.List;
 
-import org.apache.tuscany.spi.builder.Connector;
-import org.apache.tuscany.spi.component.AtomicComponent;
 import org.apache.tuscany.spi.component.ComponentNotFoundException;
-import org.apache.tuscany.spi.component.DuplicateNameException;
+import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.component.IllegalTargetException;
-import org.apache.tuscany.spi.component.InvalidComponentTypeException;
 import org.apache.tuscany.spi.component.Reference;
-import org.apache.tuscany.spi.component.ScopeContainer;
 import org.apache.tuscany.spi.component.Service;
 import org.apache.tuscany.spi.component.TargetNotFoundException;
 import org.apache.tuscany.spi.event.Event;
 import org.apache.tuscany.spi.event.RuntimeEventListener;
-import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.spi.extension.ServiceExtension;
 import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.wire.TargetInvoker;
 
+import junit.framework.Assert;
 import junit.framework.TestCase;
+import org.apache.tuscany.core.component.event.CompositeStart;
+import org.easymock.EasyMock;
 import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.createNiceMock;
 import static org.easymock.EasyMock.eq;
 import static org.easymock.EasyMock.expectLastCall;
+import static org.easymock.EasyMock.isA;
 import static org.easymock.EasyMock.replay;
 
 /**
  * @version $Rev$ $Date$
  */
-public class CompositeComponentExtensionTestCase extends TestCase {
+public class CompositeComponentImplBasicTestCase extends TestCase {
 
     public void testGetScope() {
-        assertEquals(Scope.COMPOSITE, new Composite().getScope());
-    }
-
-    public void testInvalidType() {
-        Composite composite = new Composite();
-        try {
-            composite.register(getAtomic("foo"));
-            fail();
-        } catch (InvalidComponentTypeException e) {
-            // expected
-        }
-    }
-
-    public void testDuplicateName() {
-        Composite composite = new Composite();
-        composite.register(new ServiceExtension("foo", null, null, null));
-        try {
-            composite.register(new ServiceExtension("foo", null, null, null));
-            fail();
-        } catch (DuplicateNameException e) {
-            // expected
-        }
+        CompositeComponent composite = new CompositeComponentImpl("parent", null, null, null);
+        Assert.assertEquals(Scope.COMPOSITE, composite.getScope());
     }
 
     public void testGetChildren() {
-        Composite composite = new Composite();
+        CompositeComponent composite = new CompositeComponentImpl("parent", null, null, null);
         composite.register(new ServiceExtension("foo", null, null, null));
-        assertEquals(1, composite.getChildren().size());
+        Assert.assertEquals(1, composite.getChildren().size());
     }
 
     public void testGetServices() {
-        Composite composite = new Composite();
+        CompositeComponent composite = new CompositeComponentImpl("parent", null, null, null);
         composite.register(new ServiceExtension("foo", null, null, null));
         composite.register(getReference("bar"));
-        assertEquals(1, composite.getServices().size());
+        Assert.assertEquals(1, composite.getServices().size());
     }
 
     public void testGetService() {
-        Composite composite = new Composite();
+        CompositeComponent composite = new CompositeComponentImpl("parent", null, null, null);
         composite.register(new ServiceExtension("foo", null, null, null));
         composite.start();
         assertNotNull(composite.getService("foo"));
     }
 
     public void testServiceNotFound() {
-        Composite composite = new Composite();
+        CompositeComponent composite = new CompositeComponentImpl("parent", null, null, null);
         composite.register(new ServiceExtension("foo", null, null, null));
         composite.start();
         try {
@@ -106,7 +84,7 @@
     }
 
     public void testNotService() {
-        Composite composite = new Composite();
+        CompositeComponent composite = new CompositeComponentImpl("parent", null, null, null);
         composite.register(getReference("foo"));
         composite.start();
         try {
@@ -116,9 +94,9 @@
             // expected
         }
     }
-    
+
     public void testTargetNotFound() {
-        Composite composite = new Composite();
+        CompositeComponent composite = new CompositeComponentImpl("parent", null, null, null);
         composite.register(getReference("foo"));
         composite.start();
         try {
@@ -127,17 +105,17 @@
         } catch (TargetNotFoundException e) {
             // expected
         }
-    }    
+    }
 
     public void testReferencesServices() {
-        Composite composite = new Composite();
+        CompositeComponent composite = new CompositeComponentImpl("parent", null, null, null);
         composite.register(new ServiceExtension("foo", null, null, null));
         composite.register(getReference("bar"));
-        assertEquals(1, composite.getReferences().size());
+        Assert.assertEquals(1, composite.getReferences().size());
     }
 
     public void testServiceInterfaces() {
-        Composite composite = new Composite();
+        CompositeComponent composite = new CompositeComponentImpl("parent", null, null, null);
         Service service1 = getService("foo", Foo.class);
         composite.register(service1);
         Service service2 = getService("bar", Bar.class);
@@ -153,8 +131,9 @@
     }
 
     public void testGetServiceInstanceByName() {
-        Composite composite = new Composite();
+        CompositeComponent composite = new CompositeComponentImpl("parent", null, null, null);
         Service service = createMock(Service.class);
+        EasyMock.expect(service.isSystem()).andReturn(false).atLeastOnce();
         service.getName();
         expectLastCall().andReturn("foo").anyTimes();
         service.getInterface();
@@ -168,7 +147,7 @@
     }
 
     public void testGetServiceInstanceNotFound() {
-        Composite composite = new Composite();
+        CompositeComponent composite = new CompositeComponentImpl("parent", null, null, null);
         Service service = getService("foo", Foo.class);
         composite.register(service);
         try {
@@ -180,7 +159,7 @@
     }
 
     public void testGetServiceInstanceNotService() {
-        Composite composite = new Composite();
+        CompositeComponent composite = new CompositeComponentImpl("parent", null, null, null);
         Reference reference = getReference("foo");
         composite.register(reference);
         try {
@@ -192,73 +171,45 @@
     }
 
     public void testOnEvent() {
-        Composite composite = new Composite();
+        CompositeComponent composite = new CompositeComponentImpl("parent", null, null, null);
         Event event = new Event() {
             public Object getSource() {
                 return null;
             }
         };
         RuntimeEventListener listener = createMock(RuntimeEventListener.class);
+        listener.onEvent(isA(CompositeStart.class));
         listener.onEvent(eq(event));
         expectLastCall();
         replay(listener);
         composite.addListener(listener);
+        composite.start();
         composite.onEvent(event);
     }
 
     public void testPrepare() {
-        Composite composite = new Composite();
+        CompositeComponent composite = new CompositeComponentImpl("parent", null, null, null);
         composite.prepare();
     }
 
-// TODO method not implemented
-//    public void testSingleGetServiceInstance(){
-//        Composite composite = new Composite();
-//        Mock mock = mock(Service.class);
-//        mock.stubs().method("getName").will(returnValue("foo"));
-//        mock.stubs().method("getInterface").will(returnValue(Foo.class));
-//        mock.expects(once()).method("getServiceInstance").will(returnValue(new Foo(){}));
-//        Service service = (Service) mock.proxy();
-//        composite.register(service);
-//        assertNotNull(composite.getServiceInstance());
-//    }
-
-    private class Composite extends CompositeComponentExtension {
-        public Composite() {
-            super(null, null, createNiceMock(Connector.class), null);
-        }
-
-        public void setScopeContainer(ScopeContainer scopeContainer) {
-
-        }
-
-        public TargetInvoker createTargetInvoker(String targetName, Operation operation) {
-            return null;
-        }
-    }
-
-    private AtomicComponent getAtomic(String name) {
-        AtomicComponent component = createMock(AtomicComponent.class);
-        component.getName();
-        expectLastCall().andReturn(name).anyTimes();
-        replay(component);
-        return component;
-    }
-
     private Reference getReference(String name) {
-        Reference reference = createMock(Reference.class);
+        Reference reference = EasyMock.createNiceMock(Reference.class);
+        EasyMock.expect(reference.isSystem()).andReturn(false).atLeastOnce();
         reference.getName();
         expectLastCall().andReturn(name).anyTimes();
+        reference.getInterface();
+        expectLastCall().andReturn(Object.class).atLeastOnce();
         replay(reference);
         return reference;
     }
 
     private Service getService(String name, Class<?> interfaze) {
         Service service = createMock(Service.class);
+        EasyMock.expect(service.isSystem()).andReturn(false).atLeastOnce();
         service.getName();
         expectLastCall().andReturn(name).anyTimes();
         service.getInterface();
-        expectLastCall().andReturn(interfaze);
+        expectLastCall().andReturn(interfaze).atLeastOnce();
         replay(service);
         return service;
     }

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplBasicTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplBasicTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplSystemWireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplSystemWireTestCase.java?view=auto&rev=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplSystemWireTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplSystemWireTestCase.java Sun Oct  1 23:58:18 2006
@@ -0,0 +1,168 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.core.implementation.composite;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.tuscany.spi.QualifiedName;
+import org.apache.tuscany.spi.builder.BuilderConfigException;
+import org.apache.tuscany.spi.component.AtomicComponent;
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
+import org.apache.tuscany.spi.idl.java.JavaServiceContract;
+import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.wire.OutboundWire;
+
+import junit.framework.TestCase;
+import org.apache.tuscany.core.builder.ConnectorImpl;
+import org.easymock.EasyMock;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class CompositeComponentImplSystemWireTestCase extends TestCase {
+
+    /**
+     * Verifies system services in a CompositeComponentImpl are wired during the parent composite's prepare callback
+     */
+    public void testSystemServiceWire() {
+        InboundWire inbound = EasyMock.createMock(InboundWire.class);
+        EasyMock.expect(inbound.getServiceContract()).andReturn(new JavaServiceContract(Foo.class));
+        inbound.getInvocationChains();
+        EasyMock.expectLastCall().andReturn(Collections.emptyMap());
+
+        List<Class<?>> services = new ArrayList<Class<?>>();
+        services.add(Foo.class);
+        QualifiedName qName = new QualifiedName("target/bar");
+        OutboundWire outbound = EasyMock.createMock(OutboundWire.class);
+        EasyMock.expect(outbound.getTargetName()).andReturn(qName).atLeastOnce();
+        outbound.getInvocationChains();
+        EasyMock.expectLastCall().andReturn(Collections.emptyMap());
+        outbound.setTargetWire(EasyMock.eq(inbound));
+        EasyMock.expect(outbound.getServiceContract()).andReturn(new JavaServiceContract(Foo.class)).atLeastOnce();
+        List<OutboundWire> wires = new ArrayList<OutboundWire>();
+        wires.add(outbound);
+        Map<String, List<OutboundWire>> wireMap = new HashMap<String, List<OutboundWire>>();
+        wireMap.put("ref", wires);
+        CompositeComponent parent = new CompositeComponentImpl("foo", "foo", null, new ConnectorImpl(), null);
+        SystemAtomicComponent source = EasyMock.createMock(SystemAtomicComponent.class);
+        EasyMock.expect(source.getScope()).andReturn(Scope.MODULE).atLeastOnce();
+        EasyMock.expect(source.getName()).andReturn("source").atLeastOnce();
+        EasyMock.expect(source.getServiceInterfaces()).andReturn(services);
+        EasyMock.expect(source.getOutboundWires()).andReturn(wireMap);
+        source.getInboundWires();
+        EasyMock.expectLastCall().andReturn(Collections.emptyMap());
+        EasyMock.expect(source.isSystem()).andReturn(true).atLeastOnce();
+        EasyMock.expect(source.getParent()).andReturn(parent).atLeastOnce();
+
+        source.prepare();
+        EasyMock.replay(source);
+
+        EasyMock.expect(outbound.getContainer()).andReturn(source);
+        EasyMock.replay(outbound);
+
+        parent.register(source);
+
+        SystemAtomicComponent target = EasyMock.createMock(SystemAtomicComponent.class);
+        EasyMock.expect(target.getName()).andReturn("target").atLeastOnce();
+        EasyMock.expect(target.getServiceInterfaces()).andReturn(services);
+        EasyMock.expect(target.getInboundWire("bar")).andReturn(inbound).atLeastOnce();
+        EasyMock.expect(target.getScope()).andReturn(Scope.MODULE).atLeastOnce();
+        EasyMock.expect(target.getParent()).andReturn(parent).atLeastOnce();
+        target.getInboundWires();
+        EasyMock.expectLastCall().andReturn(Collections.emptyMap());
+
+        target.prepare();
+        target.getOutboundWires();
+        EasyMock.expectLastCall().andReturn(Collections.emptyMap());
+        EasyMock.expect(target.isSystem()).andReturn(true).atLeastOnce();
+        EasyMock.replay(target);
+
+        EasyMock.expect(inbound.getContainer()).andReturn(target);
+        EasyMock.replay(inbound);
+
+        parent.register(target);
+        parent.prepare();
+        EasyMock.verify(source);
+        EasyMock.verify(target);
+        EasyMock.verify(inbound);
+        EasyMock.verify(outbound);
+    }
+
+
+    /**
+     * Verifies an application component cannot be wired to a system service in the same composite
+     */
+    public void testSystemServiceIsolationWire() {
+        InboundWire inbound = EasyMock.createMock(InboundWire.class);
+        EasyMock.replay(inbound);
+
+        List<Class<?>> services = new ArrayList<Class<?>>();
+        services.add(Foo.class);
+        QualifiedName qName = new QualifiedName("target/bar");
+        OutboundWire outbound = EasyMock.createMock(OutboundWire.class);
+        EasyMock.expect(outbound.getReferenceName()).andReturn("foo");
+        EasyMock.expect(outbound.getTargetName()).andReturn(qName).atLeastOnce();
+        EasyMock.replay(outbound);
+
+        List<OutboundWire> wires = new ArrayList<OutboundWire>();
+        wires.add(outbound);
+        Map<String, List<OutboundWire>> wireMap = new HashMap<String, List<OutboundWire>>();
+        wireMap.put("ref", wires);
+        CompositeComponent parent = new CompositeComponentImpl("foo", "foo", null, new ConnectorImpl(), null);
+        SystemAtomicComponent source = EasyMock.createMock(SystemAtomicComponent.class);
+        EasyMock.expect(source.getName()).andReturn("source").atLeastOnce();
+        EasyMock.expect(source.getServiceInterfaces()).andReturn(services);
+        EasyMock.expect(source.getOutboundWires()).andReturn(wireMap);
+        EasyMock.expect(source.isSystem()).andReturn(true).atLeastOnce();
+        EasyMock.expect(source.getParent()).andReturn(parent).atLeastOnce();
+        EasyMock.replay(source);
+
+        parent.register(source);
+
+        AtomicComponent target = EasyMock.createMock(AtomicComponent.class);
+        EasyMock.expect(target.getName()).andReturn("target").atLeastOnce();
+        EasyMock.expect(target.getServiceInterfaces()).andReturn(services);
+        EasyMock.expect(target.isSystem()).andReturn(false).atLeastOnce();
+        EasyMock.replay(target);
+
+        parent.register(target);
+        try {
+            parent.prepare();
+            fail();
+        } catch (BuilderConfigException e) {
+            //expected
+        }
+        EasyMock.verify(source);
+        EasyMock.verify(target);
+        EasyMock.verify(inbound);
+        EasyMock.verify(outbound);
+    }
+
+
+    private class Foo {
+
+    }
+
+}

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplSystemWireTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplSystemWireTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplTestCase.java?view=auto&rev=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplTestCase.java Sun Oct  1 23:58:18 2006
@@ -0,0 +1,174 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.core.implementation.composite;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.tuscany.spi.component.AtomicComponent;
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
+
+import junit.framework.TestCase;
+import org.easymock.EasyMock;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class CompositeComponentImplTestCase extends TestCase {
+
+    public void testSetUri() throws Exception {
+        CompositeComponentImpl component = new CompositeComponentImpl("foo", "foo/bar", null, null, null);
+        assertEquals("foo/bar", component.getURI());
+    }
+
+    public void testRegisterSystemService() throws Exception {
+        List<Class<?>> services = new ArrayList<Class<?>>();
+        services.add(Foo.class);
+        CompositeComponent parent = new CompositeComponentImpl("foo", "foo", null, null, null);
+        SystemAtomicComponent component = EasyMock.createMock(SystemAtomicComponent.class);
+        EasyMock.expect(component.getName()).andReturn("bar").atLeastOnce();
+        EasyMock.expect(component.getServiceInterfaces()).andReturn(services);
+        EasyMock.expect(component.isSystem()).andReturn(true).atLeastOnce();
+        EasyMock.replay(component);
+        parent.register(component);
+        assertNull(parent.getChild("bar"));
+        assertNotNull(parent.getSystemChild("bar"));
+        EasyMock.verify(component);
+    }
+
+    public void testRegister() throws Exception {
+        List<Class<?>> services = new ArrayList<Class<?>>();
+        services.add(Foo.class);
+        CompositeComponent parent = new CompositeComponentImpl("foo", "foo", null, null, null);
+        AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
+        EasyMock.expect(component.getName()).andReturn("bar").atLeastOnce();
+        EasyMock.expect(component.getServiceInterfaces()).andReturn(services);
+        EasyMock.expect(component.isSystem()).andReturn(false).atLeastOnce();
+        EasyMock.replay(component);
+        parent.register(component);
+        assertNull(parent.getSystemChild("bar"));
+        assertNotNull(parent.getChild("bar"));
+        EasyMock.verify(component);
+    }
+
+    /**
+     * Verifies a system service and application component can be registered with the same name in a composite
+     */
+    public void testSystemServiceApplicationNamespaceIsolation() throws Exception {
+        List<Class<?>> services = new ArrayList<Class<?>>();
+        services.add(Foo.class);
+        CompositeComponent parent = new CompositeComponentImpl("foo", "foo", null, null, null);
+        SystemAtomicComponent component = EasyMock.createMock(SystemAtomicComponent.class);
+        EasyMock.expect(component.getName()).andReturn("bar").atLeastOnce();
+        EasyMock.expect(component.getServiceInterfaces()).andReturn(services);
+        EasyMock.expect(component.isSystem()).andReturn(true).atLeastOnce();
+        EasyMock.replay(component);
+        parent.register(component);
+        AtomicComponent component2 = EasyMock.createMock(AtomicComponent.class);
+        EasyMock.expect(component2.getName()).andReturn("bar").atLeastOnce();
+        EasyMock.expect(component2.getServiceInterfaces()).andReturn(services);
+        EasyMock.expect(component2.isSystem()).andReturn(false).atLeastOnce();
+        EasyMock.replay(component2);
+        parent.register(component2);
+        EasyMock.verify(component);
+        EasyMock.verify(component2);
+    }
+
+    public void testSystemServiceLifecycle() throws Exception {
+        List<Class<?>> services = new ArrayList<Class<?>>();
+        services.add(Foo.class);
+        CompositeComponent parent = new CompositeComponentImpl("foo", "foo", null, null, null);
+        SystemAtomicComponent component = EasyMock.createMock(SystemAtomicComponent.class);
+        component.start();
+        EasyMock.expect(component.getName()).andReturn("bar").atLeastOnce();
+        EasyMock.expect(component.getServiceInterfaces()).andReturn(services);
+        EasyMock.expect(component.isSystem()).andReturn(true).atLeastOnce();
+        component.stop();
+        EasyMock.replay(component);
+        parent.register(component);
+        parent.start();
+        parent.stop();
+        EasyMock.verify(component);
+    }
+
+    public void testComponentLifecycle() throws Exception {
+        List<Class<?>> services = new ArrayList<Class<?>>();
+        services.add(Foo.class);
+        CompositeComponent parent = new CompositeComponentImpl("foo", "foo", null, null, null);
+        AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
+        component.start();
+        EasyMock.expect(component.getName()).andReturn("bar").atLeastOnce();
+        EasyMock.expect(component.getServiceInterfaces()).andReturn(services);
+        EasyMock.expect(component.isSystem()).andReturn(false).atLeastOnce();
+        component.stop();
+        EasyMock.replay(component);
+        parent.register(component);
+        parent.start();
+        parent.stop();
+        EasyMock.verify(component);
+    }
+
+    public void testSystemServiceAutowire() throws Exception {
+        List<Class<?>> services = new ArrayList<Class<?>>();
+        services.add(Foo.class);
+        CompositeComponent parent = new CompositeComponentImpl("foo", "foo", null, null, null);
+        SystemAtomicComponent component = EasyMock.createMock(SystemAtomicComponent.class);
+        component.start();
+        EasyMock.expect(component.getName()).andReturn("bar").atLeastOnce();
+        EasyMock.expect(component.getServiceInterfaces()).andReturn(services);
+        EasyMock.expect(component.getServiceInstance()).andReturn(new Foo() {
+        });
+        EasyMock.expect(component.isSystem()).andReturn(true).atLeastOnce();
+        component.stop();
+        EasyMock.replay(component);
+        parent.register(component);
+        parent.start();
+        assertNull(parent.resolveSystemExternalInstance(Foo.class));
+        assertNotNull(parent.resolveSystemInstance(Foo.class));
+        parent.stop();
+        EasyMock.verify(component);
+    }
+
+
+    public void testAutowire() throws Exception {
+        List<Class<?>> services = new ArrayList<Class<?>>();
+        services.add(Foo.class);
+        CompositeComponent parent = new CompositeComponentImpl("foo", "foo", null, null, null);
+        SystemAtomicComponent component = EasyMock.createMock(SystemAtomicComponent.class);
+        component.start();
+        EasyMock.expect(component.getName()).andReturn("bar").atLeastOnce();
+        EasyMock.expect(component.getServiceInterfaces()).andReturn(services);
+        EasyMock.expect(component.getServiceInstance()).andReturn(new Foo() {
+        });
+        EasyMock.expect(component.isSystem()).andReturn(false).atLeastOnce();
+        component.stop();
+        EasyMock.replay(component);
+        parent.register(component);
+        parent.start();
+        assertNull(parent.resolveExternalInstance(Foo.class));
+        assertNotNull(parent.resolveInstance(Foo.class));
+        parent.stop();
+        EasyMock.verify(component);
+    }
+
+    private class Foo {
+
+    }
+}

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentResolutionTestCase.java (from r451663, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/SystemCompositeComponentResolutionTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentResolutionTestCase.java?view=diff&rev=451895&p1=incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/SystemCompositeComponentResolutionTestCase.java&r1=451663&p2=incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentResolutionTestCase.java&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/SystemCompositeComponentResolutionTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentResolutionTestCase.java Sun Oct  1 23:58:18 2006
@@ -16,12 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.core.implementation.system.component;
+package org.apache.tuscany.core.implementation.composite;
 
 import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.tuscany.spi.component.AtomicComponent;
+import org.apache.tuscany.spi.component.ComponentNotFoundException;
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.Service;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
 
 import junit.framework.TestCase;
 import org.apache.tuscany.core.mock.component.Source;
@@ -33,10 +37,30 @@
  *
  * @version $$Rev$$ $$Date$$
  */
-public class SystemCompositeComponentResolutionTestCase extends TestCase {
+public class CompositeComponentResolutionTestCase extends TestCase {
 
-    public void testComponentResolution() throws NoSuchMethodException {
-        SystemCompositeComponent parent = new SystemCompositeComponentImpl("foo", null, null, null, null);
+    public void testSystemComponentResolution() throws NoSuchMethodException {
+        CompositeComponent parent = new CompositeComponentImpl("foo", null, null, null);
+        parent.start();
+        List<Class<?>> interfaces = new ArrayList<Class<?>>();
+        interfaces.add(Source.class);
+        Source originalSource = new SourceImpl();
+        SystemAtomicComponent component = EasyMock.createMock(SystemAtomicComponent.class);
+        EasyMock.expect(component.getName()).andReturn("source").atLeastOnce();
+        EasyMock.expect(component.getServiceInstance()).andReturn(originalSource);
+        EasyMock.expect(component.isSystem()).andReturn(true).atLeastOnce();
+        EasyMock.expect(component.getServiceInterfaces()).andReturn(interfaces);
+        EasyMock.replay(component);
+        parent.register(component);
+        assertNull(parent.getChild("source"));
+        AtomicComponent target = (AtomicComponent) parent.getSystemChild("source");
+        Source source = (Source) target.getServiceInstance();
+        assertNotNull(source);
+        EasyMock.verify(component);
+    }
+
+    public void testLocateSystemService() throws NoSuchMethodException {
+        CompositeComponent parent = new CompositeComponentImpl("foo", null, null, null);
         parent.start();
         List<Class<?>> interfaces = new ArrayList<Class<?>>();
         interfaces.add(Source.class);
@@ -44,13 +68,92 @@
         SystemAtomicComponent component = EasyMock.createMock(SystemAtomicComponent.class);
         EasyMock.expect(component.getName()).andReturn("source").atLeastOnce();
         EasyMock.expect(component.getServiceInstance()).andReturn(originalSource);
+        EasyMock.expect(component.isSystem()).andReturn(true).atLeastOnce();
+        EasyMock.expect(component.getServiceInterfaces()).andReturn(interfaces);
+        EasyMock.replay(component);
+        parent.register(component);
+        Source source = parent.locateSystemService(Source.class, "source");
+        assertNotNull(source);
+        EasyMock.verify(component);
+    }
+
+    public void testLocateService() throws NoSuchMethodException {
+        CompositeComponent parent = new CompositeComponentImpl("foo", null, null, null);
+        parent.start();
+        List<Class<?>> interfaces = new ArrayList<Class<?>>();
+        interfaces.add(Source.class);
+        Source originalSource = new SourceImpl();
+        AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
+        EasyMock.expect(component.getName()).andReturn("source").atLeastOnce();
+        EasyMock.expect(component.getServiceInstance()).andReturn(originalSource);
+        EasyMock.expect(component.isSystem()).andReturn(false).atLeastOnce();
+        EasyMock.expect(component.getServiceInterfaces()).andReturn(interfaces);
+        EasyMock.replay(component);
+        parent.register(component);
+        Source source = parent.locateService(Source.class, "source");
+        assertNotNull(source);
+        EasyMock.verify(component);
+    }
+
+    public void testComponentResolution() throws NoSuchMethodException {
+        CompositeComponent parent = new CompositeComponentImpl("foo", null, null, null);
+        parent.start();
+        List<Class<?>> interfaces = new ArrayList<Class<?>>();
+        interfaces.add(Source.class);
+        Source originalSource = new SourceImpl();
+        AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
+        EasyMock.expect(component.getName()).andReturn("source").atLeastOnce();
+        EasyMock.expect(component.getServiceInstance()).andReturn(originalSource);
+        EasyMock.expect(component.isSystem()).andReturn(false).atLeastOnce();
         EasyMock.expect(component.getServiceInterfaces()).andReturn(interfaces);
         EasyMock.replay(component);
         parent.register(component);
-        AtomicComponent ctx = (AtomicComponent) parent.getChild("source");
-        Source source = (Source) ctx.getServiceInstance();
+        assertNull(parent.getSystemChild("source"));
+        AtomicComponent target = (AtomicComponent) parent.getChild("source");
+        Source source = (Source) target.getServiceInstance();
         assertNotNull(source);
         EasyMock.verify(component);
+    }
+
+
+    public void testGetService() throws NoSuchMethodException {
+        CompositeComponent parent = new CompositeComponentImpl("foo", null, null, null);
+        parent.start();
+        Service service = EasyMock.createMock(Service.class);
+        EasyMock.expect(service.getName()).andReturn("source").atLeastOnce();
+        EasyMock.expect(service.isSystem()).andReturn(false).atLeastOnce();
+        service.getInterface();
+        EasyMock.expectLastCall().andReturn(Source.class);
+        EasyMock.replay(service);
+        parent.register(service);
+        assertNotNull(parent.getService("source"));
+        try {
+            parent.getSystemService("source");
+            fail();
+        } catch (ComponentNotFoundException e) {
+            // expected
+        }
+        EasyMock.verify(service);
+    }
+
+    public void testSystemGetService() throws NoSuchMethodException {
+        CompositeComponent parent = new CompositeComponentImpl("foo", null, null, null);
+        parent.start();
+        Service service = EasyMock.createMock(Service.class);
+        EasyMock.expect(service.getName()).andReturn("source").atLeastOnce();
+        EasyMock.expect(service.isSystem()).andReturn(true).atLeastOnce();
+        service.getInterface();
+        EasyMock.expectLastCall().andReturn(Source.class);
+        EasyMock.replay(service);
+        parent.register(service);
+        assertNotNull(parent.getSystemService("source"));
+        try {
+            parent.getService("source");
+            fail();
+        } catch (ComponentNotFoundException e) {
+            // expected
+        }
+        EasyMock.verify(service);
     }
 
 

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentResolutionTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentResolutionTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLifecycleTestCase.java (from r451663, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/SystemCompositeLifecycleTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLifecycleTestCase.java?view=diff&rev=451895&p1=incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/SystemCompositeLifecycleTestCase.java&r1=451663&p2=incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLifecycleTestCase.java&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/SystemCompositeLifecycleTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLifecycleTestCase.java Sun Oct  1 23:58:18 2006
@@ -16,12 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.core.implementation.system.component;
+package org.apache.tuscany.core.implementation.composite;
 
 import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.tuscany.spi.component.AtomicComponent;
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
 
 import junit.framework.TestCase;
 import org.apache.tuscany.core.mock.component.Source;
@@ -31,10 +33,10 @@
 /**
  * @version $$Rev$$ $$Date$$
  */
-public class SystemCompositeLifecycleTestCase extends TestCase {
+public class CompositeLifecycleTestCase extends TestCase {
 
     public void testLifecycle() throws Exception {
-        SystemCompositeComponent composite = new SystemCompositeComponentImpl("foo", null, null, null, null);
+        CompositeComponent composite = new CompositeComponentImpl("foo", null, null, null);
         composite.start();
         assertNull(composite.getChild("nothtere"));
         composite.stop();
@@ -43,7 +45,7 @@
         composite.stop();
     }
 
-    public void testRestart() throws NoSuchMethodException {
+    public void testSystemRestart() throws NoSuchMethodException {
         List<Class<?>> interfaces = new ArrayList<Class<?>>();
         interfaces.add(Source.class);
         Source originalSource = new SourceImpl();
@@ -52,11 +54,42 @@
         component.stop();
         EasyMock.expectLastCall().times(2);
         EasyMock.expect(component.getName()).andReturn("source").atLeastOnce();
+        EasyMock.expect(component.isSystem()).andReturn(true).atLeastOnce();
+        EasyMock.expect(component.getServiceInstance()).andReturn(originalSource).atLeastOnce();
+        EasyMock.expect(component.getServiceInterfaces()).andReturn(interfaces);
+        EasyMock.replay(component);
+
+        CompositeComponent composite = new CompositeComponentImpl("foo", null, null, null);
+        composite.start();
+        composite.register(component);
+
+        AtomicComponent atomicComponent = (AtomicComponent) composite.getSystemChild("source");
+        Source source = (Source) atomicComponent.getServiceInstance();
+        assertNotNull(source);
+        composite.stop();
+        composite.start();
+        atomicComponent = (AtomicComponent) composite.getSystemChild("source");
+        Source source2 = (Source) atomicComponent.getServiceInstance();
+        assertNotNull(source2);
+        composite.stop();
+        EasyMock.verify(component);
+    }
+
+    public void testRestart() throws NoSuchMethodException {
+        List<Class<?>> interfaces = new ArrayList<Class<?>>();
+        interfaces.add(Source.class);
+        Source originalSource = new SourceImpl();
+        AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
+        component.start();
+        component.stop();
+        EasyMock.expectLastCall().times(2);
+        EasyMock.expect(component.getName()).andReturn("source").atLeastOnce();
+        EasyMock.expect(component.isSystem()).andReturn(false).atLeastOnce();
         EasyMock.expect(component.getServiceInstance()).andReturn(originalSource).atLeastOnce();
         EasyMock.expect(component.getServiceInterfaces()).andReturn(interfaces);
         EasyMock.replay(component);
 
-        SystemCompositeComponent composite = new SystemCompositeComponentImpl("foo", null, null, null, null);
+        CompositeComponent composite = new CompositeComponentImpl("foo", null, null, null);
         composite.start();
         composite.register(component);
 

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLifecycleTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLifecycleTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositePropagationTestCase.java (from r451663, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/CompositePropagationTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositePropagationTestCase.java?view=diff&rev=451895&p1=incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/CompositePropagationTestCase.java&r1=451663&p2=incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositePropagationTestCase.java&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/CompositePropagationTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositePropagationTestCase.java Sun Oct  1 23:58:18 2006
@@ -16,27 +16,45 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.core.implementation.system.component;
+package org.apache.tuscany.core.implementation.composite;
 
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
+
 import junit.framework.TestCase;
 import org.apache.tuscany.core.mock.component.Source;
+import org.easymock.EasyMock;
 import static org.easymock.EasyMock.createMock;
 import static org.easymock.EasyMock.expect;
 import static org.easymock.EasyMock.replay;
 import static org.easymock.EasyMock.verify;
 
 /**
- * Tests registering arbitrarily deep child composite contexts
  *
  * @version $Rev$ $Date$
  */
 public class CompositePropagationTestCase extends TestCase {
 
-    private SystemCompositeComponent parent;
-    private SystemCompositeComponent child2;
+    private CompositeComponent parent;
+    private CompositeComponent child2;
+
+    public void testSystemLifecyclePropagation() throws NoSuchMethodException {
+        parent.start();
+        List<Class<?>> interfaces = new ArrayList<Class<?>>();
+        interfaces.add(Source.class);
+        SystemAtomicComponent component = createMock(SystemAtomicComponent.class);
+        expect(component.getName()).andReturn("source").anyTimes();
+        component.stop();
+        expect(component.getServiceInterfaces()).andReturn(interfaces);
+        EasyMock.expect(component.isSystem()).andReturn(true).atLeastOnce();
+        replay(component);
+        child2.register(component);
+        parent.stop();
+        verify(component);
+    }
 
     public void testLifecyclePropagation() throws NoSuchMethodException {
         parent.start();
@@ -46,6 +64,7 @@
         expect(component.getName()).andReturn("source").anyTimes();
         component.stop();
         expect(component.getServiceInterfaces()).andReturn(interfaces);
+        EasyMock.expect(component.isSystem()).andReturn(false).atLeastOnce();
         replay(component);
         child2.register(component);
         parent.stop();
@@ -55,9 +74,9 @@
 
     protected void setUp() throws Exception {
         super.setUp();
-        parent = new SystemCompositeComponentImpl("parent", null, null, null, null);
-        SystemCompositeComponent child1 = new SystemCompositeComponentImpl("child1", parent, null, null, null);
-        child2 = new SystemCompositeComponentImpl("child2", child1, null, null, null);
+        parent = new CompositeComponentImpl("parent", null, null, null);
+        CompositeComponent child1 = new CompositeComponentImpl("child1", parent, null, null);
+        child2 = new CompositeComponentImpl("child2", child1, null, null);
         child1.register(child2);
         parent.register(child1);
     }

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositePropagationTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositePropagationTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Copied: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/DuplicateRegistrationTestCase.java (from r451663, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/DuplicateRegistrationTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/DuplicateRegistrationTestCase.java?view=diff&rev=451895&p1=incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/DuplicateRegistrationTestCase.java&r1=451663&p2=incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/DuplicateRegistrationTestCase.java&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/component/DuplicateRegistrationTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/DuplicateRegistrationTestCase.java Sun Oct  1 23:58:18 2006
@@ -16,12 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.    
  */
-package org.apache.tuscany.core.implementation.system.component;
+package org.apache.tuscany.core.implementation.composite;
 
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.component.DuplicateNameException;
+import org.apache.tuscany.spi.component.SystemAtomicComponent;
 
 import junit.framework.TestCase;
 import org.apache.tuscany.core.mock.component.Source;
@@ -35,19 +37,21 @@
 public class DuplicateRegistrationTestCase extends TestCase {
 
     public void testDuplicateRegistration() throws Exception {
-        SystemCompositeComponent parent = new SystemCompositeComponentImpl(null, null, null, null, null);
+        CompositeComponent parent = new CompositeComponentImpl(null, null, null, null);
         parent.start();
 
         List<Class<?>> interfaces = new ArrayList<Class<?>>();
         interfaces.add(Source.class);
         SystemAtomicComponent component1 = EasyMock.createMock(SystemAtomicComponent.class);
         EasyMock.expect(component1.getName()).andReturn("source").atLeastOnce();
+        EasyMock.expect(component1.isSystem()).andReturn(true).atLeastOnce();
         component1.stop();
         EasyMock.expect(component1.getServiceInterfaces()).andReturn(interfaces);
         EasyMock.replay(component1);
 
         SystemAtomicComponent component2 = EasyMock.createMock(SystemAtomicComponent.class);
         EasyMock.expect(component2.getName()).andReturn("source").atLeastOnce();
+        EasyMock.expect(component2.isSystem()).andReturn(true).atLeastOnce();
         component2.stop();
         EasyMock.expect(component2.getServiceInterfaces()).andReturn(interfaces);
         EasyMock.replay(component2);
@@ -61,6 +65,30 @@
         }
         parent.stop();
     }
+
+    public void testDuplicateNameSystemService() throws Exception {
+        List<Class<?>> services = new ArrayList<Class<?>>();
+        services.add(Source.class);
+        CompositeComponent parent = new CompositeComponentImpl("foo", "foo", null, null, null);
+        SystemAtomicComponent component = EasyMock.createMock(SystemAtomicComponent.class);
+        EasyMock.expect(component.getName()).andReturn("bar").atLeastOnce();
+        EasyMock.expect(component.getServiceInterfaces()).andReturn(services);
+        EasyMock.expect(component.isSystem()).andReturn(true).atLeastOnce();
+        EasyMock.replay(component);
+        parent.register(component);
+        SystemAtomicComponent component2 = EasyMock.createMock(SystemAtomicComponent.class);
+        EasyMock.expect(component2.getName()).andReturn("bar").atLeastOnce();
+        EasyMock.expect(component2.getServiceInterfaces()).andReturn(services);
+        EasyMock.expect(component2.isSystem()).andReturn(true).atLeastOnce();
+        EasyMock.replay(component2);
+        try {
+            parent.register(component2);
+            fail();
+        } catch (DuplicateNameException e) {
+            // expected
+        }
+    }
+
 
     protected void setUp() throws Exception {
         super.setUp();

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/DuplicateRegistrationTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/DuplicateRegistrationTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoaderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoaderTestCase.java?view=diff&rev=451895&r1=451894&r2=451895
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoaderTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/ImplementationCompositeLoaderTestCase.java Sun Oct  1 23:58:18 2006
@@ -25,16 +25,17 @@
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
-import junit.framework.TestCase;
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
 import static org.osoa.sca.Version.XML_NAMESPACE_1_0;
 
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.loader.LoaderException;
 import org.apache.tuscany.spi.model.CompositeImplementation;
+
+import junit.framework.TestCase;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
 
 /**
  * @version $Rev$ $Date$



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