Author: jmarino
Date: Fri Feb  9 00:04:22 2007
New Revision: 505212

URL: http://svn.apache.org/viewvc?view=rev&rev=505212
Log:
add support for n-levels of recursion for component loading

Modified:
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/AbstractDeploymentContext.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentTypeLoader.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/loader/SystemCompositeComponentTypeLoader.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/IncludeLoader.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java
    
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderNoBindingTestCase.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderNoReferenceTestCase.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderTestCase.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/IncludeLoaderTestCase.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ReferenceLoaderTestCase.java
    
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderReferenceTestCase.java
    
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/ComponentNames.java
    
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentContext.java

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/AbstractDeploymentContext.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/AbstractDeploymentContext.java?view=diff&rev=505212&r1=505211&r2=505212
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/AbstractDeploymentContext.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/AbstractDeploymentContext.java
 Fri Feb  9 00:04:22 2007
@@ -19,7 +19,9 @@
 package org.apache.tuscany.core.deployer;
 
 import java.net.URL;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.tuscany.spi.deployer.DeploymentContext;
@@ -33,6 +35,7 @@
     private final ClassLoader classLoader;
     private final URL scdlLocation;
     private final Map<String, Object> properties = new HashMap<String, 
Object>();
+    private List<String> pathNames = new ArrayList<String>();
 
     protected AbstractDeploymentContext(ClassLoader classLoader, URL 
scdlLocation) {
         this.classLoader = classLoader;
@@ -45,6 +48,10 @@
 
     public URL getScdlLocation() {
         return scdlLocation;
+    }
+
+    public List<String> getPathNames() {
+        return pathNames;
     }
 
     public Object getExtension(String name) {

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java?view=diff&rev=505212&r1=505211&r2=505212
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
 Fri Feb  9 00:04:22 2007
@@ -88,7 +88,8 @@
         final ScopeContainer scopeContainer = new 
CompositeScopeContainer(monitor);
         scopeContainer.start();
         DeploymentContext deploymentContext = new RootDeploymentContext(null, 
xmlFactory, scopeContainer, null);
-        try {
+        
deploymentContext.getPathNames().add(componentDefinition.getUri().toString());
+         try {
             load(parent, componentDefinition, deploymentContext);
         } catch (LoaderException e) {
             e.addContextName(componentDefinition.getUri().toString());

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentTypeLoader.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentTypeLoader.java?view=diff&rev=505212&r1=505211&r2=505212
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentTypeLoader.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentTypeLoader.java
 Fri Feb  9 00:04:22 2007
@@ -53,8 +53,9 @@
         throws LoaderException {
         URL scdlLocation = implementation.getScdlLocation();
         ClassLoader cl = new 
CompositeClassLoader(implementation.getClassLoader());
-        deploymentContext = new ChildDeploymentContext(deploymentContext, cl, 
scdlLocation);
-        CompositeComponentType componentType = loadFromSidefile(parent, 
scdlLocation, deploymentContext);
+        DeploymentContext childContext = new 
ChildDeploymentContext(deploymentContext, cl, scdlLocation);
+        childContext.getPathNames().addAll(deploymentContext.getPathNames());
+        CompositeComponentType componentType = loadFromSidefile(parent, 
scdlLocation, childContext);
         implementation.setComponentType(componentType);
     }
 

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/loader/SystemCompositeComponentTypeLoader.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/loader/SystemCompositeComponentTypeLoader.java?view=diff&rev=505212&r1=505211&r2=505212
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/loader/SystemCompositeComponentTypeLoader.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/loader/SystemCompositeComponentTypeLoader.java
 Fri Feb  9 00:04:22 2007
@@ -47,7 +47,8 @@
         return SystemCompositeImplementation.class;
     }
 
-    public void load(CompositeComponent parent, SystemCompositeImplementation 
implementation,
+    public void load(CompositeComponent parent,
+                     SystemCompositeImplementation implementation,
                      DeploymentContext deploymentContext)
         throws LoaderException {
         URL scdlLocation = implementation.getScdlLocation();
@@ -55,8 +56,9 @@
             throw new LoaderException("SCDL location not found");
         }
         ClassLoader cl = implementation.getClassLoader();
-        deploymentContext = new ChildDeploymentContext(deploymentContext, cl, 
scdlLocation);
-        CompositeComponentType componentType = loadFromSidefile(parent, 
scdlLocation, deploymentContext);
+        DeploymentContext childContext = new 
ChildDeploymentContext(deploymentContext, cl, scdlLocation);
+        childContext.getPathNames().addAll(deploymentContext.getPathNames());
+        CompositeComponentType componentType = loadFromSidefile(parent, 
scdlLocation, childContext);
         implementation.setComponentType(componentType);
     }
 

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java?view=diff&rev=505212&r1=505211&r2=505212
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
 Fri Feb  9 00:04:22 2007
@@ -112,11 +112,17 @@
 
         try {
             Implementation<?> impl = loadImplementation(parent, reader, 
deploymentContext);
+            deploymentContext.getPathNames().add(name);
             registry.loadComponentType(parent, impl, deploymentContext);
+            
deploymentContext.getPathNames().remove(deploymentContext.getPathNames().size() 
- 1);
 
             URI uri;
             try {
-                uri = new URI(parent.getUri().toString() + "/" + name);
+                StringBuilder buf = new StringBuilder();
+                for (String path : deploymentContext.getPathNames()) {
+                    buf.append(path).append("/");
+                }
+                uri = new URI(buf + name);
             } catch (URISyntaxException e) {
                 throw new IllegalSCDLNameException(e);
             }

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/IncludeLoader.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/IncludeLoader.java?view=diff&rev=505212&r1=505211&r2=505212
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/IncludeLoader.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/IncludeLoader.java
 Fri Feb  9 00:04:22 2007
@@ -87,6 +87,7 @@
         }
 
         DeploymentContext childContext = new 
ChildDeploymentContext(deploymentContext, cl, url);
+        childContext.getPathNames().addAll(deploymentContext.getPathNames());
         CompositeComponentType composite;
         try {
             composite = loadFromSidefile(parent, url, childContext);

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java?view=diff&rev=505212&r1=505211&r2=505212
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java
 Fri Feb  9 00:04:22 2007
@@ -20,6 +20,7 @@
 
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.util.List;
 import javax.xml.namespace.QName;
 import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
 import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
@@ -72,7 +73,15 @@
         ReferenceDefinition referenceDefinition = new ReferenceDefinition();
         referenceDefinition.setMultiplicity(multiplicity);
         try {
-            referenceDefinition.setUri(new URI(parent.getUri().toString() + 
"#" + name));
+            StringBuilder buf = new StringBuilder();
+            List<String> names = deploymentContext.getPathNames();
+            for (int i = 0; i < names.size() - 1; i++) {
+                buf.append("/");
+            }
+            if (names.size() > 0) {
+                buf.append(names.get(names.size() - 1));
+            }
+            referenceDefinition.setUri(new URI(buf + "#" + name));
         } catch (URISyntaxException e) {
             throw new IllegalSCDLNameException(e);
         }

Modified: 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java?view=diff&rev=505212&r1=505211&r2=505212
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java
 Fri Feb  9 00:04:22 2007
@@ -84,11 +84,15 @@
                         String target = text != null ? text.trim() : null;
                         QualifiedName qName = new QualifiedName(target);
                         try {
+                            StringBuilder buf = new StringBuilder();
+                            for (String path : 
deploymentContext.getPathNames()) {
+                                buf.append(path).append("/");
+                            }
                             if (qName.getPortName() == null) {
-                                targetUri = new URI(parent.getUri() + "/" + 
target);
+                                targetUri = new URI(buf + target);
                             } else {
                                 targetUri =
-                                    new URI(parent.getUri() + "/" + 
qName.getPartName() + "#" + qName.getPortName());
+                                    new URI(buf + qName.getPartName() + "#" + 
qName.getPortName());
                             }
                         } catch (URISyntaxException e) {
                             throw new IllegalSCDLNameException(e);

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=505212&r1=505211&r2=505212
==============================================================================
--- 
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
 Fri Feb  9 00:04:22 2007
@@ -69,7 +69,7 @@
     @SuppressWarnings("unchecked")
     public void testBoot1Load() throws LoaderException {
         CompositeComponent parent = createNiceMock(CompositeComponent.class);
-        URI uri = URI.create("scasystem://parent");
+        URI uri = URI.create("sca://parent");
         EasyMock.expect(parent.getUri()).andReturn(uri).atLeastOnce();
         EasyMock.replay(parent);
         URL scdl = BootstrapDeployerTestCase.class.getResource("boot1.scdl");
@@ -87,7 +87,7 @@
         assertEquals(2, services.size()); // included counts
         ServiceDefinition serviceDefinition = services.get("service");
         assertNotNull(serviceDefinition);
-        assertEquals("scasystem://parent#service", 
serviceDefinition.getUri().toString());
+        assertEquals("sca://parent#service", 
serviceDefinition.getUri().toString());
         assertEquals(BasicInterface.class, 
serviceDefinition.getServiceContract().getInterfaceClass());
         Collection<BindingDefinition> bindings = 
serviceDefinition.getBindings();
         assertTrue(bindings.isEmpty());
@@ -125,7 +125,7 @@
         parent.register(isA(SCAObject.class));
         replay(parent);
         // load the boot1 file using the bootstrap deployer
-        componentDefinition.setUri(URI.create("simple"));
+        componentDefinition.setUri(URI.create("sca://parent/simple"));
         Component component = deployer.deploy(parent, componentDefinition);
         assertNotNull(component);
         verify(parent);

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderNoBindingTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderNoBindingTestCase.java?view=diff&rev=505212&r1=505211&r2=505212
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderNoBindingTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderNoBindingTestCase.java
 Fri Feb  9 00:04:22 2007
@@ -19,6 +19,8 @@
 package org.apache.tuscany.core.loader;
 
 import java.net.URI;
+import java.util.List;
+import java.util.ArrayList;
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamReader;
@@ -49,14 +51,15 @@
     private ServiceDefinition service;
     private ReferenceDefinition reference;
     private CompositeComponent parent;
+    private DeploymentContext ctx;
 
     public void testNoServiceBinding() throws Exception {
-        loader.load(parent, null, reader, null);
+        loader.load(parent, null, reader, ctx);
         assert service.getBindings().isEmpty();
     }
 
     public void testNoReferenceBinding() throws Exception {
-        loader.load(parent, null, reader, null);
+        loader.load(parent, null, reader, ctx);
         assert reference.getBindings().isEmpty();
     }
 
@@ -78,10 +81,10 @@
         EasyMock.expect(registry.load(EasyMock.isA(CompositeComponent.class),
             (ModelObject) EasyMock.isNull(),
             EasyMock.isA(XMLStreamReader.class),
-            (DeploymentContext) EasyMock.isNull())).andReturn(impl);
+             EasyMock.isA(DeploymentContext.class))).andReturn(impl);
         registry.loadComponentType(EasyMock.isA(CompositeComponent.class),
             EasyMock.isA(Implementation.class),
-            (DeploymentContext) EasyMock.isNull());
+             EasyMock.isA(DeploymentContext.class));
         EasyMock.replay(registry);
         loader = new ComponentLoader(registry, null);
         reader = EasyMock.createMock(XMLStreamReader.class);
@@ -91,6 +94,12 @@
         EasyMock.expect(reader.getAttributeValue(null, 
"initLevel")).andReturn("0");
         EasyMock.expect(reader.nextTag()).andReturn(1);
         EasyMock.replay(reader);
+        ctx = EasyMock.createMock(DeploymentContext.class);
+        List<String> names = new ArrayList<String>();
+        EasyMock.expect(ctx.getPathNames()).andReturn(names).atLeastOnce();
+        EasyMock.replay(ctx);
+
+
     }
 
 }

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderNoReferenceTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderNoReferenceTestCase.java?view=diff&rev=505212&r1=505211&r2=505212
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderNoReferenceTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderNoReferenceTestCase.java
 Fri Feb  9 00:04:22 2007
@@ -1,6 +1,8 @@
 package org.apache.tuscany.core.loader;
 
 import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamException;
@@ -35,13 +37,14 @@
     private ComponentLoader loader;
     private XMLStreamReader reader;
     private CompositeComponent parent;
+    private DeploymentContext ctx;
 
     /**
      * Verifies an error is thrown when an attempt to configure a non-existent 
reference in SCDL is made
      */
     public void testNoReferenceOnComponentType() throws LoaderException, 
XMLStreamException {
         try {
-            loader.load(parent, null, reader, null);
+            loader.load(parent, null, reader, ctx);
             fail();
         } catch (UndefinedReferenceException e) {
             // expected
@@ -73,16 +76,20 @@
         LoaderRegistry mockRegistry = 
EasyMock.createMock(LoaderRegistry.class);
         mockRegistry.loadComponentType(EasyMock.isA(CompositeComponent.class),
             EasyMock.isA(Implementation.class),
-            (DeploymentContext) isNull());
+            EasyMock.isA(DeploymentContext.class));
         
EasyMock.expect(mockRegistry.load(EasyMock.isA(CompositeComponent.class),
             (ModelObject) isNull(),
             EasyMock.isA(XMLStreamReader.class),
-            (DeploymentContext) isNull())).andReturn(impl);
+             EasyMock.isA(DeploymentContext.class))).andReturn(impl);
         EasyMock.replay(mockRegistry);
         loader = new ComponentLoader(mockRegistry, null);
         parent = EasyMock.createMock(CompositeComponent.class);
         EasyMock.expect(parent.getUri()).andReturn(URI.create("foo"));
         EasyMock.replay(parent);
+        ctx = EasyMock.createMock(DeploymentContext.class);
+        List<String> names = new ArrayList<String>();
+        EasyMock.expect(ctx.getPathNames()).andReturn(names).atLeastOnce();
+        EasyMock.replay(ctx);
     }
 
 }

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderTestCase.java?view=diff&rev=505212&r1=505211&r2=505212
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderTestCase.java
 Fri Feb  9 00:04:22 2007
@@ -19,6 +19,9 @@
 package org.apache.tuscany.core.loader;
 
 import java.net.URI;
+import java.util.Collections;
+import java.util.List;
+import java.util.ArrayList;
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamException;
@@ -92,7 +95,12 @@
             EasyMock.eq(mockReader),
             EasyMock.isA(DeploymentContext.class))).andReturn(impl);
         EasyMock.replay(mockRegistry);
-        DeploymentContext ctx = 
EasyMock.createNiceMock(DeploymentContext.class);
+        DeploymentContext ctx = EasyMock.createMock(DeploymentContext.class);
+        ctx.getPathNames();
+        List<String> names = new ArrayList<String>();
+        names.add("foo");
+        EasyMock.expectLastCall().andReturn(names).anyTimes();
+        EasyMock.replay(ctx);
         ComponentDefinition component = loader.load(parent, null, mockReader, 
ctx);
         assertEquals(FULL_NAME, component.getUri().toString());
         assertNull(component.getInitLevel());
@@ -125,7 +133,12 @@
             EasyMock.eq(mockReader),
             EasyMock.isA(DeploymentContext.class))).andReturn(impl);
         EasyMock.replay(mockRegistry);
-        DeploymentContext ctx = 
EasyMock.createNiceMock(DeploymentContext.class);
+        DeploymentContext ctx = EasyMock.createMock(DeploymentContext.class);
+        ctx.getPathNames();
+        List<String> names = new ArrayList<String>();
+        names.add("foo");
+        EasyMock.expectLastCall().andReturn(names).anyTimes();
+        EasyMock.replay(ctx);
         ComponentDefinition component = loader.load(parent, null, mockReader, 
ctx);
         assertEquals(FULL_NAME, component.getUri().toString());
         assertEquals(Integer.valueOf(20), component.getInitLevel());
@@ -173,7 +186,12 @@
             EasyMock.isA(DeploymentContext.class))).andReturn(impl);
         EasyMock.replay(mockRegistry);
         try {
-            DeploymentContext ctx = 
EasyMock.createNiceMock(DeploymentContext.class);
+            DeploymentContext ctx = 
EasyMock.createMock(DeploymentContext.class);
+            ctx.getPathNames();
+            List<String> names = new ArrayList<String>();
+            names.add("foo");
+            EasyMock.expectLastCall().andReturn(names).anyTimes();
+            EasyMock.replay(ctx);
             loader.load(parent, null, mockReader, ctx);
             fail();
         } catch (UnrecognizedElementException e) {

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/IncludeLoaderTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/IncludeLoaderTestCase.java?view=diff&rev=505212&r1=505211&r2=505212
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/IncludeLoaderTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/IncludeLoaderTestCase.java
 Fri Feb  9 00:04:22 2007
@@ -19,6 +19,7 @@
 package org.apache.tuscany.core.loader;
 
 import java.net.URL;
+import java.util.Collections;
 import javax.xml.namespace.QName;
 import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
 import javax.xml.stream.XMLStreamException;
@@ -43,6 +44,7 @@
 import static org.easymock.EasyMock.isNull;
 import static org.easymock.EasyMock.replay;
 import static org.easymock.EasyMock.verify;
+import org.easymock.EasyMock;
 
 /**
  * @version $Rev$ $Date$
@@ -88,6 +90,8 @@
 
         expect(context.getScdlLocation()).andReturn(base);
         expect(context.getClassLoader()).andReturn(cl);
+        context.getPathNames();
+        
EasyMock.expectLastCall().andReturn(Collections.emptyList()).anyTimes();
 
         expect(registry.load((CompositeComponent) isNull(),
             (ModelObject) isNull(),
@@ -113,6 +117,8 @@
 
         expect(context.getScdlLocation()).andReturn(base);
         expect(context.getClassLoader()).andReturn(cl);
+        context.getPathNames();
+        
EasyMock.expectLastCall().andReturn(Collections.emptyList()).anyTimes();
 
         expect(registry.load((CompositeComponent) isNull(),
             (ModelObject) isNull(),
@@ -141,6 +147,8 @@
         expect(reader.next()).andReturn(END_ELEMENT);
 
         expect(context.getClassLoader()).andReturn(cl);
+        context.getPathNames();
+        
EasyMock.expectLastCall().andReturn(Collections.emptyList()).anyTimes();
 
         expect(registry.load((CompositeComponent) isNull(),
             (ModelObject) isNull(),

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ReferenceLoaderTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ReferenceLoaderTestCase.java?view=diff&rev=505212&r1=505211&r2=505212
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ReferenceLoaderTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ReferenceLoaderTestCase.java
 Fri Feb  9 00:04:22 2007
@@ -19,6 +19,8 @@
 package org.apache.tuscany.core.loader;
 
 import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamException;
@@ -32,6 +34,7 @@
 import org.apache.tuscany.spi.loader.LoaderRegistry;
 import org.apache.tuscany.spi.model.BindingDefinition;
 import org.apache.tuscany.spi.model.ComponentType;
+import org.apache.tuscany.spi.model.ModelObject;
 import org.apache.tuscany.spi.model.Property;
 import org.apache.tuscany.spi.model.ReferenceDefinition;
 import org.apache.tuscany.spi.model.ServiceContract;
@@ -54,6 +57,7 @@
     private XMLStreamReader mockReader;
     private LoaderRegistry mockRegistry;
     private CompositeComponent parent;
+    private DeploymentContext ctx;
 
     public void testWithNoInterface() throws LoaderException, 
XMLStreamException {
         String name = "referenceDefinition";
@@ -63,7 +67,7 @@
         
EasyMock.expect(mockReader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
         EasyMock.expect(mockReader.getName()).andReturn(REFERENCE).anyTimes();
         EasyMock.replay(mockReader);
-        ReferenceDefinition referenceDefinition = loader.load(parent, null, 
mockReader, null);
+        ReferenceDefinition referenceDefinition = loader.load(parent, null, 
mockReader, ctx);
         assertNotNull(referenceDefinition);
         assertEquals(PARENT_NAME + "#" + name, 
referenceDefinition.getUri().toString());
     }
@@ -78,7 +82,7 @@
         EasyMock.replay(mockReader);
         ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> 
type =
             new ComponentType<ServiceDefinition, ReferenceDefinition, 
Property<?>>();
-        ReferenceDefinition referenceDefinition = loader.load(parent, type, 
mockReader, null);
+        ReferenceDefinition referenceDefinition = loader.load(parent, type, 
mockReader, ctx);
         
assertTrue(ReferenceDefinition.class.equals(referenceDefinition.getClass()));
     }
 
@@ -94,10 +98,14 @@
 
         BindingDefinition binding = new BindingDefinition() {
         };
-        EasyMock.expect(mockRegistry.load(parent, null, mockReader, 
null)).andReturn(binding).times(2);
+        EasyMock.expect(mockRegistry.load(EasyMock.eq(parent),
+            (ModelObject) EasyMock.isNull(),
+            EasyMock.eq(mockReader),
+            EasyMock.isA(DeploymentContext.class)))
+            .andReturn(binding).times(2);
         EasyMock.replay(mockRegistry);
 
-        ReferenceDefinition referenceDefinition = loader.load(parent, null, 
mockReader, null);
+        ReferenceDefinition referenceDefinition = loader.load(parent, null, 
mockReader, ctx);
         assertEquals(2, referenceDefinition.getBindings().size());
     }
 
@@ -127,8 +135,14 @@
         mockRegistry = EasyMock.createMock(LoaderRegistry.class);
         loader = new ReferenceLoader(mockRegistry);
         deploymentContext = new RootDeploymentContext(null, null, null, null);
+        deploymentContext.getPathNames().add("parent");
         parent = EasyMock.createMock(CompositeComponent.class);
         EasyMock.expect(parent.getUri()).andReturn(URI.create(PARENT_NAME));
         EasyMock.replay(parent);
+        ctx = EasyMock.createMock(DeploymentContext.class);
+        List<String> names = new ArrayList<String>();
+        names.add("parent");
+        EasyMock.expect(ctx.getPathNames()).andReturn(names).atLeastOnce();
+        EasyMock.replay(ctx);
     }
 }

Modified: 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderReferenceTestCase.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderReferenceTestCase.java?view=diff&rev=505212&r1=505211&r2=505212
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderReferenceTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderReferenceTestCase.java
 Fri Feb  9 00:04:22 2007
@@ -19,6 +19,8 @@
 package org.apache.tuscany.core.loader;
 
 import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamException;
@@ -27,6 +29,7 @@
 import org.osoa.sca.Version;
 
 import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.loader.LoaderException;
 import org.apache.tuscany.spi.loader.LoaderRegistry;
 import org.apache.tuscany.spi.model.ServiceDefinition;
@@ -44,6 +47,7 @@
     private ServiceLoader loader;
     private XMLStreamReader mockReader;
     private CompositeComponent parent;
+    private DeploymentContext ctx;
 
     public void testReferenceNoFragment() throws LoaderException, 
XMLStreamException {
         String name = "serviceDefinition";
@@ -55,7 +59,7 @@
         
EasyMock.expect(mockReader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
         EasyMock.expect(mockReader.getName()).andReturn(SERVICE);
         EasyMock.replay(mockReader);
-        ServiceDefinition serviceDefinition = loader.load(parent, null, 
mockReader, null);
+        ServiceDefinition serviceDefinition = loader.load(parent, null, 
mockReader, ctx);
         assertNotNull(serviceDefinition);
         assertEquals("parent/target", serviceDefinition.getTarget().getPath());
         assertNull(serviceDefinition.getTarget().getFragment());
@@ -71,7 +75,7 @@
         
EasyMock.expect(mockReader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
         EasyMock.expect(mockReader.getName()).andReturn(SERVICE);
         EasyMock.replay(mockReader);
-        ServiceDefinition serviceDefinition = loader.load(parent, null, 
mockReader, null);
+        ServiceDefinition serviceDefinition = loader.load(parent, null, 
mockReader, ctx);
         assertNotNull(serviceDefinition);
         assertEquals("parent/target#fragment", 
serviceDefinition.getTarget().toString());
     }
@@ -86,5 +90,10 @@
         URI uri = URI.create(PARENT_NAME);
         EasyMock.expect(parent.getUri()).andReturn(uri).atLeastOnce();
         EasyMock.replay(parent);
+        ctx = EasyMock.createMock(DeploymentContext.class);
+        List<String> names = new ArrayList<String>();
+        names.add("parent");
+        EasyMock.expect(ctx.getPathNames()).andReturn(names).atLeastOnce();
+        EasyMock.replay(ctx);
     }
 }

Modified: 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/ComponentNames.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/ComponentNames.java?view=diff&rev=505212&r1=505211&r2=505212
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/ComponentNames.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/bootstrap/ComponentNames.java
 Fri Feb  9 00:04:22 2007
@@ -34,17 +34,17 @@
     /**
      * The name of the component that is the root of the application composite 
tree.
      */
-    public static final URI TUSCANY_APPLICATION_ROOT = 
URI.create("sca://tuscany.root.application");
+    public static final URI TUSCANY_APPLICATION_ROOT = 
URI.create("sca://root.application");
 
     /**
      * The name of the component that is the root of the system composite tree.
      */
-    public static final URI TUSCANY_SYSTEM_ROOT = 
URI.create("sca://tuscany.root.system");
+    public static final URI TUSCANY_SYSTEM_ROOT = 
URI.create("sca://root.system");
 
     /**
      * The name of the top-level component in the system composite tree.
      */
-    public static final URI TUSCANY_SYSTEM = URI.create("tuscany.system");
+    public static final URI TUSCANY_SYSTEM = 
URI.create("sca://root.system/main");
 
     /**
      * The name of the component that contains the deployer.

Modified: 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentContext.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentContext.java?view=diff&rev=505212&r1=505211&r2=505212
==============================================================================
--- 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentContext.java
 (original)
+++ 
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentContext.java
 Fri Feb  9 00:04:22 2007
@@ -19,6 +19,7 @@
 package org.apache.tuscany.spi.deployer;
 
 import java.net.URL;
+import java.util.List;
 import javax.xml.stream.XMLInputFactory;
 
 import org.apache.tuscany.spi.component.ScopeContainer;
@@ -31,8 +32,7 @@
  */
 public interface DeploymentContext {
     /**
-     * Returns the parent of this deployment context.
-     * Will be null for the context created at the root of a deployment.
+     * Returns the parent of this deployment context. Will be null for the 
context created at the root of a deployment.
      *
      * @return the parent of this deployment context; may be null
      */
@@ -66,6 +66,7 @@
      */
     URL getScdlLocation();
 
+
     /**
      * Return the extension property with the supplied name.
      *
@@ -77,8 +78,16 @@
     /**
      * Set the value of an extension property.
      *
-     * @param name the name of the property
+     * @param name  the name of the property
      * @param value the property value; if null then the extension property is 
removed
      */
     void putExtension(String name, Object value);
+
+    /**
+     * Returns and ordered list of path names representing the current 
component hierarchy as an assembly is loaded
+     *
+     * @return the ordered list of path names representing the current 
component hierarchy
+     */
+    public List<String> getPathNames();
+
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to