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]