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 2007/02/28 17:18:12 UTC
svn commit: r512824 - in /incubator/tuscany/java/sca/kernel:
core/src/main/java/org/apache/tuscany/core/deployer/
core/src/main/java/org/apache/tuscany/core/implementation/composite/
core/src/main/java/org/apache/tuscany/core/implementation/processor/ ...
Author: jmarino
Date: Wed Feb 28 08:18:10 2007
New Revision: 512824
URL: http://svn.apache.org/viewvc?view=rev&rev=512824
Log:
have consturctor processor support autowired references; fix propagation of autowire context for includes; start conversion of runtime extension model to use SCA 1.0 autowire
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/implementation/composite/CompositeComponentTypeLoader.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeLoader.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ConstructorProcessor.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessor.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/resolver/DefaultAutowireResolver.java
incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/composite.scdl
incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/databinding.scdl
incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/deployment.scdl
incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/formatters.scdl
incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/implementation.scdl
incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/interfaceJava.scdl
incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/javaImplementation.scdl
incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/loader.scdl
incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/systemImplementation.scdl
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLoaderTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ConstructorReferenceTestCase.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/ComponentLoaderValidationTestCase.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/resources/org/apache/tuscany/core/deployer/boot2.scdl
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentContext.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentTypeLoaderExtension.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ContributionProcessorExtension.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorExtension.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceDefinition.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=512824&r1=512823&r2=512824
==============================================================================
--- 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 Wed Feb 28 08:18:10 2007
@@ -50,6 +50,7 @@
this.classLoader = classLoader;
this.scdlLocation = scdlLocation;
this.componentId = componentId;
+ this.autowire = autowire;
}
public ClassLoader getClassLoader() {
@@ -66,6 +67,10 @@
public boolean isAutowire() {
return autowire;
+ }
+
+ public void setAutowire(boolean autowire) {
+ this.autowire = autowire;
}
@Deprecated
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=512824&r1=512823&r2=512824
==============================================================================
--- 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 Wed Feb 28 08:18:10 2007
@@ -52,7 +52,8 @@
URL scdlLocation = implementation.getScdlLocation();
ClassLoader cl = new CompositeClassLoader(implementation.getClassLoader());
URI componentId = URI.create(context.getComponentId().toString() + '/');
- DeploymentContext childContext = new ChildDeploymentContext(context, cl, scdlLocation, componentId, false);
+ DeploymentContext childContext =
+ new ChildDeploymentContext(context, cl, scdlLocation, componentId, context.isAutowire());
CompositeComponentType componentType = loadFromSidefile(scdlLocation, childContext);
implementation.setComponentType(componentType);
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeLoader.java?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeLoader.java Wed Feb 28 08:18:10 2007
@@ -78,6 +78,7 @@
ModelObject object,
XMLStreamReader reader,
DeploymentContext deploymentContext) throws XMLStreamException, LoaderException {
+
CompositeComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
new CompositeComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
type.setName(reader.getAttributeValue(null, "name"));
@@ -87,7 +88,10 @@
while (!done) {
switch (reader.next()) {
case START_ELEMENT:
+ boolean oldAutowire = deploymentContext.isAutowire();
+ deploymentContext.setAutowire(autowire);
ModelObject o = registry.load(type, reader, deploymentContext);
+ deploymentContext.setAutowire(oldAutowire);
if (o instanceof ServiceDefinition) {
type.add((ServiceDefinition) o);
} else if (o instanceof ReferenceDefinition) {
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ConstructorProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ConstructorProcessor.java?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ConstructorProcessor.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ConstructorProcessor.java Wed Feb 28 08:18:10 2007
@@ -89,12 +89,12 @@
Annotation[] paramAnnotations = annotations[i];
try {
if (!service.processParam(param,
- constructor.getGenericParameterTypes()[i],
- paramAnnotations,
- names,
- i,
- type,
- injectionNames)) {
+ constructor.getGenericParameterTypes()[i],
+ paramAnnotations,
+ names,
+ i,
+ type,
+ injectionNames)) {
String name = (i < names.length) ? names[i] : "";
service.addName(injectionNames, i, name);
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceImpl.java?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ImplementationProcessorServiceImpl.java Wed Feb 28 08:18:10 2007
@@ -349,11 +349,14 @@
JavaMappedReference reference = new JavaMappedReference();
String name = refAnnotation.name();
if (name == null || name.length() == 0) {
- if (constructorNames.length < pos + 1 || constructorNames[pos] == null
+ if (constructorNames.length == 0 || constructorNames[0].length() == 0) {
+ name = "_ref" + pos;
+ } else if (constructorNames.length < pos + 1 || constructorNames[pos] == null
|| constructorNames[pos].length() == 0) {
throw new InvalidReferenceException("No name specified for reference parameter " + (pos + 1));
+ } else {
+ name = constructorNames[pos];
}
- name = constructorNames[pos];
} else if (pos < constructorNames.length && constructorNames[pos] != null
&& constructorNames[pos].length() != 0 && !name.equals(constructorNames[pos])) {
String paramNum = String.valueOf(pos + 1);
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessor.java?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessor.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessor.java Wed Feb 28 08:18:10 2007
@@ -51,8 +51,7 @@
private JavaInterfaceProcessorRegistry regsitry;
- public ReferenceProcessor(@Autowire
- JavaInterfaceProcessorRegistry registry) {
+ public ReferenceProcessor(@Reference JavaInterfaceProcessorRegistry registry) {
this.regsitry = registry;
}
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=512824&r1=512823&r2=512824
==============================================================================
--- 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 Wed Feb 28 08:18:10 2007
@@ -57,8 +57,11 @@
}
ClassLoader cl = implementation.getClassLoader();
URI componentId = deploymentContext.getComponentId();
- DeploymentContext childContext = new ChildDeploymentContext(deploymentContext, cl, scdlLocation, componentId,
- false);
+ DeploymentContext childContext = new ChildDeploymentContext(deploymentContext,
+ cl,
+ scdlLocation,
+ componentId,
+ deploymentContext.isAutowire());
CompositeComponentType componentType = loadFromSidefile(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=512824&r1=512823&r2=512824
==============================================================================
--- 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 Wed Feb 28 08:18:10 2007
@@ -36,10 +36,10 @@
import org.w3c.dom.Document;
import static org.osoa.sca.Constants.SCA_NS;
import org.osoa.sca.annotations.Constructor;
+import org.osoa.sca.annotations.Reference;
import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.QualifiedName;
-import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.databinding.extension.DOMHelper;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.extension.LoaderExtension;
@@ -91,7 +91,7 @@
private PropertyObjectFactory propertyFactory;
@Constructor
- public ComponentLoader(@Autowire LoaderRegistry registry, @Autowire PropertyObjectFactory propertyFactory) {
+ public ComponentLoader(@Reference LoaderRegistry registry, @Reference PropertyObjectFactory propertyFactory) {
super(registry);
this.propertyFactory = propertyFactory;
}
@@ -106,11 +106,18 @@
assert COMPONENT.equals(reader.getName());
String name = reader.getAttributeValue(null, "name");
String initLevel = reader.getAttributeValue(null, "initLevel");
- boolean autowire = Boolean.parseBoolean(reader.getAttributeValue(null, "autowire")) || context.isAutowire();
+ String autowireAttr = reader.getAttributeValue(null, "autowire");
+ boolean autowire;
+ if (autowireAttr == null) {
+ autowire = context.isAutowire();
+ } else {
+ autowire = Boolean.parseBoolean(autowireAttr);
+ }
URI componentId = URI.create(context.getComponentId() + "/").resolve(name);
ClassLoader loader = context.getClassLoader();
URL location = context.getScdlLocation();
+ // xcv test
DeploymentContext childContext = new ChildDeploymentContext(context, loader, location, componentId, autowire);
Implementation<?> impl = loadImplementation(reader, childContext);
registry.loadComponentType(impl, childContext);
@@ -149,11 +156,12 @@
ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
(ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>) componentDefinition
.getImplementation().getComponentType();
+
for (ReferenceDefinition ref : type.getReferences().values()) {
// add reference target definitions if autowire is enabled for references that are not
// explicitly configured with autowire by the component
if (!componentDefinition.getReferenceTargets().containsKey(ref.getUri().getFragment())) {
- if (ref.isAutowire() || autowire) {
+ if (ref.getAutowire() || autowire) {
ReferenceTarget referenceTarget = new ReferenceTarget();
String compName = componentDefinition.getUri().toString();
URI refName = URI.create(compName + ref.getUri().toString());
@@ -301,7 +309,7 @@
return;
}
for (ReferenceDefinition referenceDef : type.getReferences().values()) {
- if (referenceDef.isAutowire() || !referenceDef.isRequired()) {
+ if (referenceDef.getAutowire() || !referenceDef.isRequired()) {
continue;
}
String name = referenceDef.getUri().getFragment();
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=512824&r1=512823&r2=512824
==============================================================================
--- 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 Wed Feb 28 08:18:10 2007
@@ -59,8 +59,7 @@
return INCLUDE;
}
- public Include load(ModelObject object, XMLStreamReader reader,
- DeploymentContext deploymentContext)
+ public Include load(ModelObject object, XMLStreamReader reader, DeploymentContext deploymentContext)
throws XMLStreamException, LoaderException {
assert INCLUDE.equals(reader.getName());
@@ -88,7 +87,8 @@
// when we include, the componentId remains that of the parent
URI componentId = deploymentContext.getComponentId();
- DeploymentContext childContext = new ChildDeploymentContext(deploymentContext, cl, url, componentId, false);
+ boolean autowire = deploymentContext.isAutowire();
+ DeploymentContext childContext = new ChildDeploymentContext(deploymentContext, cl, url, componentId, autowire);
CompositeComponentType composite;
composite = loadFromSidefile(url, childContext);
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java Wed Feb 28 08:18:10 2007
@@ -57,7 +57,7 @@
resolve((ComponentDefinition<Implementation<CompositeComponentType<?, ?, ?>>>) definition, child);
}
for (ReferenceTarget target : child.getReferenceTargets().values()) {
- if (target.getTargets().isEmpty()) { // xcv should be isAutowire
+ if (target.getTargets().isEmpty()) { // TODO JFM should be isAutowire
String fragment = target.getReferenceName().getFragment();
ReferenceDefinition reference = childType.getReferences().get(fragment);
assert reference != null;
@@ -69,7 +69,7 @@
} else {
// a leaf level component
for (ReferenceTarget target : definition.getReferenceTargets().values()) {
- if (target.getTargets().isEmpty()) { // xcv should be isAutowire
+ if (target.getTargets().isEmpty()) { // TODO JFM should be isAutowire
String fragment = target.getReferenceName().getFragment();
ReferenceDefinition reference = type.getReferences().get(fragment);
assert reference != null;
Modified: incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/composite.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/composite.scdl?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/composite.scdl (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/composite.scdl Wed Feb 28 08:18:10 2007
@@ -24,20 +24,23 @@
-->
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
- name="org.apache.tuscany.core.Composite">
+ name="org.apache.tuscany.core.Composite"
+ autowire="true">
<!-- Composite implementation type -->
<component name="composite.loader">
<system:implementation.system class="org.apache.tuscany.core.implementation.composite.CompositeLoader"/>
</component>
<component name="composite.implementationLoader">
- <system:implementation.system class="org.apache.tuscany.core.implementation.composite.ImplementationCompositeLoader"/>
+ <system:implementation.system
+ class="org.apache.tuscany.core.implementation.composite.ImplementationCompositeLoader"/>
</component>
<component name="composite.dependencyLoader">
<system:implementation.system class="org.apache.tuscany.core.loader.DependencyLoader"/>
</component>
<component name="composite.componentTypeLoader">
- <system:implementation.system class="org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader"/>
+ <system:implementation.system
+ class="org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader"/>
</component>
<component name="composite.builder">
<system:implementation.system class="org.apache.tuscany.core.implementation.composite.CompositeBuilder"/>
Modified: incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/databinding.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/databinding.scdl?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/databinding.scdl (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/databinding.scdl Wed Feb 28 08:18:10 2007
@@ -18,144 +18,148 @@
* under the License.
-->
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
- name="org.apache.tuscany.core.DataBinding">
+ name="org.apache.tuscany.core.DataBinding"
+ autowire="true">
<component name="databinding.wirePostProcessor">
- <system:implementation.system class="org.apache.tuscany.core.databinding.impl.DataBindingWirePostProcessor" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.impl.DataBindingWirePostProcessor"/>
</component>
<component name="databinding.javaInterfaceProcessor">
- <system:implementation.system class="org.apache.tuscany.core.databinding.impl.DataBindingJavaInterfaceProcessor" />
+ <system:implementation.system
+ class="org.apache.tuscany.core.databinding.impl.DataBindingJavaInterfaceProcessor"/>
</component>
-
- <component name="databinding.passByValueWirePostProcessor" >
- <system:implementation.system class="org.apache.tuscany.core.databinding.impl.PassByValueWirePostProcessor" />
+
+ <component name="databinding.passByValueWirePostProcessor">
+ <system:implementation.system class="org.apache.tuscany.core.databinding.impl.PassByValueWirePostProcessor"/>
</component>
<!-- DataBinding registry -->
<component name="databinding.registry">
- <system:implementation.system class="org.apache.tuscany.core.databinding.impl.DataBindingRegistryImpl" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.impl.DataBindingRegistryImpl"/>
</component>
<!-- DataBinding registry -->
<component name="databinding.mediator">
- <system:implementation.system class="org.apache.tuscany.core.databinding.impl.MediatorImpl" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.impl.MediatorImpl"/>
</component>
<!-- Transformer registry -->
<component name="databinding.transformerRegistry" initLevel="90">
- <system:implementation.system class="org.apache.tuscany.core.databinding.impl.TransformerRegistryImpl" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.impl.TransformerRegistryImpl"/>
</component>
<component name="dataType.loader">
- <system:implementation.system class="org.apache.tuscany.core.databinding.impl.DataTypeLoader" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.impl.DataTypeLoader"/>
</component>
<!-- Simple databindings -->
<component name="databinding.dom">
- <system:implementation.system class="org.apache.tuscany.core.databinding.impl.SimpleDataBinding" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.impl.SimpleDataBinding"/>
<property name="className">org.w3c.dom.Node</property>
</component>
-
+
<component name="databinding.javabeans">
- <system:implementation.system class="org.apache.tuscany.core.databinding.javabeans.JavaBeansDataBinding" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.javabeans.JavaBeansDataBinding"/>
</component>
<!-- Transformers -->
<component name="transformer.Input2InputTransformer">
- <system:implementation.system class="org.apache.tuscany.core.databinding.impl.Input2InputTransformer" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.impl.Input2InputTransformer"/>
</component>
<component name="transformer.Output2OutputTransformer">
- <system:implementation.system class="org.apache.tuscany.core.databinding.impl.Output2OutputTransformer" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.impl.Output2OutputTransformer"/>
</component>
<component name="transformer.InputSource2Node">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.InputSource2Node" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.InputSource2Node"/>
</component>
<component name="transformer.InputSource2SAX">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.InputSource2SAX" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.InputSource2SAX"/>
</component>
<component name="transformer.InputStream2Node">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.InputStream2Node" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.InputStream2Node"/>
</component>
<component name="transformer.InputStream2SAX">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.InputStream2SAX" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.InputStream2SAX"/>
</component>
<component name="transformer.DOMNode2JavaBean">
- <system:implementation.system class="org.apache.tuscany.core.databinding.javabeans.DOMNode2JavaBeanTransformer" />
+ <system:implementation.system
+ class="org.apache.tuscany.core.databinding.javabeans.DOMNode2JavaBeanTransformer"/>
</component>
<component name="transformer.Node2OutputStream">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.Node2OutputStream" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.Node2OutputStream"/>
</component>
<component name="transformer.Node2String">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.Node2String" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.Node2String"/>
</component>
<component name="transformer.Node2Writer">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.Node2Writer" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.Node2Writer"/>
</component>
<component name="transformer.Node2XMLStreamReader">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.Node2XMLStreamReader" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.Node2XMLStreamReader"/>
</component>
<component name="transformer.JavaBean2DOMNode">
- <system:implementation.system class="org.apache.tuscany.core.databinding.javabeans.JavaBean2DOMNodeTransformer" />
+ <system:implementation.system
+ class="org.apache.tuscany.core.databinding.javabeans.JavaBean2DOMNodeTransformer"/>
</component>
<component name="transformer.Reader2Node">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.Reader2Node" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.Reader2Node"/>
</component>
<component name="transformer.Reader2SAX">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.Reader2SAX" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.Reader2SAX"/>
</component>
<component name="transformer.SAX2DOMPipe">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.SAX2DOMPipe" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.SAX2DOMPipe"/>
</component>
<component name="transformer.Source2ResultTransformer">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.Source2ResultTransformer" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.Source2ResultTransformer"/>
</component>
<component name="transformer.StreamDataPipe">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.StreamDataPipe" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.StreamDataPipe"/>
</component>
<component name="transformer.String2Node">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.String2Node" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.String2Node"/>
</component>
<component name="transformer.String2SAX">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.String2SAX" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.String2SAX"/>
</component>
<component name="transformer.String2XMLStreamReader">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.String2XMLStreamReader" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.String2XMLStreamReader"/>
</component>
<component name="transformer.Writer2ReaderDataPipe">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.Writer2ReaderDataPipe" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.Writer2ReaderDataPipe"/>
</component>
<component name="transformer.XMLStreamReader2Node">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.XMLStreamReader2Node" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.XMLStreamReader2Node"/>
</component>
<component name="transformer.XMLStreamReader2SAX">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.XMLStreamReader2SAX" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.XMLStreamReader2SAX"/>
</component>
<component name="transformer.XMLStreamReader2String">
- <system:implementation.system class="org.apache.tuscany.core.databinding.xml.XMLStreamReader2String" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.xml.XMLStreamReader2String"/>
</component>
</composite>
Modified: incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/deployment.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/deployment.scdl?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/deployment.scdl (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/deployment.scdl Wed Feb 28 08:18:10 2007
@@ -23,35 +23,40 @@
$Rev$ $Date$
-->
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
- name="org.apache.tuscany.core.Deployment">
+ name="org.apache.tuscany.core.Deployment"
+ autowire="true">
<!-- Contribution Service -->
<component name="contributionDirectoryWatcher" initLevel="100">
- <system:implementation.system class="org.apache.tuscany.core.services.deployment.ContributionDirectoryWatcher" />
- <property name="path">target/deployables</property>
+ <system:implementation.system class="org.apache.tuscany.core.services.deployment.ContributionDirectoryWatcher"/>
+ <property name="path">target/deployables</property>
</component>
<component name="contributionService" initLevel="90">
- <system:implementation.system class="org.apache.tuscany.core.services.deployment.ContributionServiceImpl" />
+ <system:implementation.system class="org.apache.tuscany.core.services.deployment.ContributionServiceImpl"/>
</component>
<component name="contributionRepository" initLevel="40">
- <system:implementation.system class="org.apache.tuscany.core.services.deployment.ContributionRepositoryImpl" />
+ <system:implementation.system class="org.apache.tuscany.core.services.deployment.ContributionRepositoryImpl"/>
<property name="repository">target/repository</property>
</component>
<component name="contributionProcessorRegistry" initLevel="35">
- <system:implementation.system class="org.apache.tuscany.core.services.deployment.ContributionProcessorRegistryImpl" />
+ <system:implementation.system
+ class="org.apache.tuscany.core.services.deployment.ContributionProcessorRegistryImpl"/>
</component>
<component name="contentTypeDescriber" initLevel="30">
- <system:implementation.system class="org.apache.tuscany.core.services.deployment.ContentTypeDescriberImpl" />
+ <system:implementation.system class="org.apache.tuscany.core.services.deployment.ContentTypeDescriberImpl"/>
</component>
<component name="JarContributionProcessor" initLevel="30">
- <system:implementation.system class="org.apache.tuscany.core.services.deployment.contribution.JarContributionProcessor" />
+ <system:implementation.system
+ class="org.apache.tuscany.core.services.deployment.contribution.JarContributionProcessor"/>
</component>
<component name="JavaContributionProcessor" initLevel="30">
- <system:implementation.system class="org.apache.tuscany.core.services.deployment.contribution.JavaContributionProcessor" />
+ <system:implementation.system
+ class="org.apache.tuscany.core.services.deployment.contribution.JavaContributionProcessor"/>
</component>
<component name="ScdlContributionProcessor" initLevel="30">
- <system:implementation.system class="org.apache.tuscany.core.services.deployment.contribution.ScdlContributionProcessor" />
- </component>
+ <system:implementation.system
+ class="org.apache.tuscany.core.services.deployment.contribution.ScdlContributionProcessor"/>
+ </component>
</composite>
Modified: incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/formatters.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/formatters.scdl?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/formatters.scdl (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/formatters.scdl Wed Feb 28 08:18:10 2007
@@ -24,7 +24,8 @@
-->
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
- name="org.apache.tuscany.core.Formatters">
+ name="org.apache.tuscany.core.Formatters"
+ autowire="true">
<component name="LoaderExceptionFormatter">
<system:implementation.system class="org.apache.tuscany.core.loader.LoaderExceptionFormatter"/>
Modified: incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/implementation.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/implementation.scdl?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/implementation.scdl (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/implementation.scdl Wed Feb 28 08:18:10 2007
@@ -24,7 +24,8 @@
-->
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
- name="org.apache.tuscany.core.Implementation">
+ name="org.apache.tuscany.core.Implementation"
+ autowire="true">
<!-- Foundation implementation processors -->
<component name="implementation.ImplementationProcessorService">
Modified: incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/interfaceJava.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/interfaceJava.scdl?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/interfaceJava.scdl (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/interfaceJava.scdl Wed Feb 28 08:18:10 2007
@@ -24,7 +24,8 @@
-->
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
- name="org.apache.tuscany.core.InterfaceJava">
+ name="org.apache.tuscany.core.InterfaceJava"
+ autowire="true">
<component name="interfaceJava.interfaceProcessorRegistry">
<system:implementation.system class="org.apache.tuscany.core.idl.java.JavaInterfaceProcessorRegistryImpl"/>
Modified: incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/javaImplementation.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/javaImplementation.scdl?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/javaImplementation.scdl (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/javaImplementation.scdl Wed Feb 28 08:18:10 2007
@@ -24,7 +24,8 @@
-->
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
- name="org.apache.tuscany.core.JavaImplementation">
+ name="org.apache.tuscany.core.JavaImplementation"
+ autowire="true">
<!-- Java implementation type -->
<component name="java.implementationLoader">
Modified: incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/loader.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/loader.scdl?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/loader.scdl (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/loader.scdl Wed Feb 28 08:18:10 2007
@@ -24,7 +24,8 @@
-->
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
- name="org.apache.tuscany.core.Loader">
+ name="org.apache.tuscany.core.Loader"
+ autowire="true">
<!-- Foundation element loader implementations -->
<component name="elementLoader.component">
Modified: incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/systemImplementation.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/systemImplementation.scdl?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/systemImplementation.scdl (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/systemImplementation.scdl Wed Feb 28 08:18:10 2007
@@ -24,21 +24,26 @@
-->
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
- name="org.apache.tuscany.core.SystemImplementation">
+ name="org.apache.tuscany.core.SystemImplementation"
+ autowire="true">
<!-- System implementation type -->
<component name="system.componentTypeLoader">
- <system:implementation.system class="org.apache.tuscany.core.implementation.system.loader.SystemComponentTypeLoader"/>
+ <system:implementation.system
+ class="org.apache.tuscany.core.implementation.system.loader.SystemComponentTypeLoader"/>
</component>
<component name="system.compositeComponentTypeLoader">
- <system:implementation.system class="org.apache.tuscany.core.implementation.system.loader.SystemCompositeComponentTypeLoader"/>
+ <system:implementation.system
+ class="org.apache.tuscany.core.implementation.system.loader.SystemCompositeComponentTypeLoader"/>
</component>
<component name="system.implementationLoader">
- <system:implementation.system class="org.apache.tuscany.core.implementation.system.loader.SystemImplementationLoader"/>
+ <system:implementation.system
+ class="org.apache.tuscany.core.implementation.system.loader.SystemImplementationLoader"/>
</component>
<component name="system.componentBuilder">
- <system:implementation.system class="org.apache.tuscany.core.implementation.system.builder.SystemComponentBuilder"/>
+ <system:implementation.system
+ class="org.apache.tuscany.core.implementation.system.builder.SystemComponentBuilder"/>
</component>
<component name="system.compositeBuilder">
<system:implementation.system class="org.apache.tuscany.core.implementation.composite.SystemCompositeBuilder"/>
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLoaderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLoaderTestCase.java?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLoaderTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLoaderTestCase.java Wed Feb 28 08:18:10 2007
@@ -24,11 +24,15 @@
import static org.osoa.sca.Constants.SCA_NS;
+import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.loader.LoaderRegistry;
import org.apache.tuscany.spi.model.CompositeComponentType;
+import org.apache.tuscany.spi.model.ModelObject;
import junit.framework.TestCase;
+import org.apache.tuscany.core.deployer.RootDeploymentContext;
import org.easymock.EasyMock;
+import org.easymock.IAnswer;
/**
* @version $Rev$ $Date$
@@ -60,6 +64,123 @@
CompositeComponentType<?, ?, ?> type = loader.load(null, reader, null);
assertTrue(type.isAutowire());
EasyMock.verify(reader);
+ }
+
+ /**
+ * Tests autowire enabled is propagated when children are loaded
+ */
+ public void testAutowireContextEnabledPropagation() throws Exception {
+ LoaderRegistry registry = EasyMock.createMock(LoaderRegistry.class);
+ registry.load(EasyMock.isA(ModelObject.class),
+ EasyMock.isA(XMLStreamReader.class),
+ EasyMock.isA(DeploymentContext.class));
+ EasyMock.expectLastCall().andStubAnswer(new IAnswer<Object>() {
+ public Object answer() throws Throwable {
+ DeploymentContext context = (DeploymentContext) EasyMock.getCurrentArguments()[2];
+ assertTrue("autowire not propagated", context.isAutowire());
+ return null;
+ }
+ });
+ EasyMock.replay(registry);
+ DeploymentContext context = new RootDeploymentContext(null, null, null, null, null, true);
+ XMLStreamReader reader = EasyMock.createMock(XMLStreamReader.class);
+ EasyMock.expect(reader.getAttributeValue(null, "name")).andReturn("composite");
+ EasyMock.expect(reader.getAttributeValue(null, "autowire")).andReturn("true");
+ EasyMock.expect(reader.next()).andReturn(XMLStreamConstants.START_ELEMENT);
+ EasyMock.expect(reader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
+ EasyMock.expect(reader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
+ EasyMock.expect(reader.getName()).andReturn(COMPOSITE);
+ EasyMock.replay(reader);
+ loader.load(null, reader, context);
+ assertTrue(context.isAutowire());
+ }
+
+ /**
+ * Tests autowire enabled is propagated when children are loaded and composite is set to use inherited autowire
+ * settings
+ */
+ public void testAutowireContextEnabledInheritedPropagation() throws Exception {
+ LoaderRegistry registry = EasyMock.createMock(LoaderRegistry.class);
+ registry.load(EasyMock.isA(ModelObject.class),
+ EasyMock.isA(XMLStreamReader.class),
+ EasyMock.isA(DeploymentContext.class));
+ EasyMock.expectLastCall().andStubAnswer(new IAnswer<Object>() {
+ public Object answer() throws Throwable {
+ DeploymentContext context = (DeploymentContext) EasyMock.getCurrentArguments()[2];
+ assertTrue("autowire not propagated", context.isAutowire());
+ return null;
+ }
+ });
+ EasyMock.replay(registry);
+ DeploymentContext context = new RootDeploymentContext(null, null, null, null, null, true);
+ XMLStreamReader reader = EasyMock.createMock(XMLStreamReader.class);
+ EasyMock.expect(reader.getAttributeValue(null, "name")).andReturn("composite");
+ EasyMock.expect(reader.getAttributeValue(null, "autowire")).andReturn(null);
+ EasyMock.expect(reader.next()).andReturn(XMLStreamConstants.START_ELEMENT);
+ EasyMock.expect(reader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
+ EasyMock.expect(reader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
+ EasyMock.expect(reader.getName()).andReturn(COMPOSITE);
+ EasyMock.replay(reader);
+ loader.load(null, reader, context);
+ assertTrue(context.isAutowire());
+ }
+
+ /**
+ * Tests autowire false is propagated when children are loaded and composite inherits autowire settings
+ */
+ public void testAutowireFalseContextPropagation() throws Exception {
+ LoaderRegistry registry = EasyMock.createMock(LoaderRegistry.class);
+ registry.load(EasyMock.isA(ModelObject.class),
+ EasyMock.isA(XMLStreamReader.class),
+ EasyMock.isA(DeploymentContext.class));
+ EasyMock.expectLastCall().andStubAnswer(new IAnswer<Object>() {
+ public Object answer() throws Throwable {
+ DeploymentContext context = (DeploymentContext) EasyMock.getCurrentArguments()[2];
+ assertFalse("autowire not propagated", context.isAutowire());
+ return null;
+ }
+ });
+ EasyMock.replay(registry);
+ DeploymentContext context = new RootDeploymentContext(null, null, null, null, null, false);
+ XMLStreamReader reader = EasyMock.createMock(XMLStreamReader.class);
+ EasyMock.expect(reader.getAttributeValue(null, "name")).andReturn("composite");
+ EasyMock.expect(reader.getAttributeValue(null, "autowire")).andReturn(null);
+ EasyMock.expect(reader.next()).andReturn(XMLStreamConstants.START_ELEMENT);
+ EasyMock.expect(reader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
+ EasyMock.expect(reader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
+ EasyMock.expect(reader.getName()).andReturn(COMPOSITE);
+ EasyMock.replay(reader);
+ loader.load(null, reader, context);
+ assertFalse(context.isAutowire());
+ }
+
+ /**
+ * Tests autowire false is propagated when children are loaded and composite autowire is set to false
+ */
+ public void testAutowireCompositeFalsePropagation() throws Exception {
+ LoaderRegistry registry = EasyMock.createMock(LoaderRegistry.class);
+ registry.load(EasyMock.isA(ModelObject.class),
+ EasyMock.isA(XMLStreamReader.class),
+ EasyMock.isA(DeploymentContext.class));
+ EasyMock.expectLastCall().andStubAnswer(new IAnswer<Object>() {
+ public Object answer() throws Throwable {
+ DeploymentContext context = (DeploymentContext) EasyMock.getCurrentArguments()[2];
+ assertFalse("autowire not propagated", context.isAutowire());
+ return null;
+ }
+ });
+ EasyMock.replay(registry);
+ DeploymentContext context = new RootDeploymentContext(null, null, null, null, null, true);
+ XMLStreamReader reader = EasyMock.createMock(XMLStreamReader.class);
+ EasyMock.expect(reader.getAttributeValue(null, "name")).andReturn("composite");
+ EasyMock.expect(reader.getAttributeValue(null, "autowire")).andReturn("false");
+ EasyMock.expect(reader.next()).andReturn(XMLStreamConstants.START_ELEMENT);
+ EasyMock.expect(reader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
+ EasyMock.expect(reader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
+ EasyMock.expect(reader.getName()).andReturn(COMPOSITE);
+ EasyMock.replay(reader);
+ loader.load(null, reader, context);
+ assertTrue(context.isAutowire());
}
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ConstructorReferenceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ConstructorReferenceTestCase.java?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ConstructorReferenceTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ConstructorReferenceTestCase.java Wed Feb 28 08:18:10 2007
@@ -71,13 +71,9 @@
public void testNoName() throws Exception {
PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>> type =
new PojoComponentType<JavaMappedService, JavaMappedReference, JavaMappedProperty<?>>();
- Constructor<BadFoo> ctor = BadFoo.class.getConstructor(String.class);
- try {
- processor.visitConstructor(ctor, type, null);
- fail();
- } catch (InvalidReferenceException e) {
- // expected
- }
+ Constructor<NoNameFoo> ctor = NoNameFoo.class.getConstructor(String.class);
+ processor.visitConstructor(ctor, type, null);
+ assertNotNull(type.getReferences().get("_ref0"));
}
public void testNamesOnConstructor() throws Exception {
@@ -125,12 +121,12 @@
private static class Foo {
@org.osoa.sca.annotations.Constructor()
- public Foo(@Reference(name = "myRef", required = true) String prop) {
+ public Foo(@Reference(name = "myRef", required = true)String prop) {
}
@org.osoa.sca.annotations.Constructor()
- public Foo(@Reference(name = "myRef1") String prop1, @Reference(name = "myRef2") String prop2) {
+ public Foo(@Reference(name = "myRef1")String prop1, @Reference(name = "myRef2")String prop2) {
}
@@ -145,10 +141,18 @@
}
}
+ private static class NoNameFoo {
+
+ @org.osoa.sca.annotations.Constructor
+ public NoNameFoo(@Reference String prop) {
+
+ }
+ }
+
private static class BadFoo {
@org.osoa.sca.annotations.Constructor
- public BadFoo(@Reference(name = "myRef") String prop1, @Reference(name = "myRef") String prop2) {
+ public BadFoo(@Reference(name = "myRef")String prop1, @Reference(name = "myRef")String prop2) {
}
@@ -163,7 +167,7 @@
}
@org.osoa.sca.annotations.Constructor({"myRef", "myRef2"})
- public BadFoo(@Reference List ref, @Reference(name = "myOtherRef") List ref2) {
+ public BadFoo(@Reference List ref, @Reference(name = "myOtherRef")List ref2) {
}
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=512824&r1=512823&r2=512824
==============================================================================
--- 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 Wed Feb 28 08:18:10 2007
@@ -133,7 +133,7 @@
ComponentDefinition component = loader.load(null, mockReader, ctx);
- assertTrue(component.isAutowire());
+ assertTrue(component.getAutowire());
}
public void testInitValue20() throws LoaderException, XMLStreamException {
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderValidationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderValidationTestCase.java?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderValidationTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderValidationTestCase.java Wed Feb 28 08:18:10 2007
@@ -1,22 +1,21 @@
package org.apache.tuscany.core.loader;
import java.net.URI;
-
import javax.xml.stream.XMLStreamException;
import org.apache.tuscany.spi.implementation.java.PojoComponentType;
-import org.apache.tuscany.spi.loader.ReferenceMultiplicityViolationException;
import org.apache.tuscany.spi.loader.LoaderException;
import org.apache.tuscany.spi.loader.LoaderRegistry;
import org.apache.tuscany.spi.loader.MissingReferenceException;
import org.apache.tuscany.spi.loader.PropertyObjectFactory;
+import org.apache.tuscany.spi.loader.ReferenceMultiplicityViolationException;
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.Implementation;
import org.apache.tuscany.spi.model.Multiplicity;
import org.apache.tuscany.spi.model.Property;
import org.apache.tuscany.spi.model.ReferenceDefinition;
-import org.apache.tuscany.spi.model.ServiceDefinition;
import org.apache.tuscany.spi.model.ReferenceTarget;
+import org.apache.tuscany.spi.model.ServiceDefinition;
import junit.framework.TestCase;
import org.apache.tuscany.core.implementation.java.JavaImplementation;
@@ -129,7 +128,8 @@
refDefinition.setMultiplicity(Multiplicity.ZERO_ONE);
loader.validate(defn);
- }
+ }
+
public void testAutowire() throws LoaderException, XMLStreamException {
PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
new PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
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=512824&r1=512823&r2=512824
==============================================================================
--- 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 Wed Feb 28 08:18:10 2007
@@ -88,6 +88,7 @@
expect(context.getScdlLocation()).andReturn(base);
expect(context.getClassLoader()).andReturn(cl);
+ expect(context.isAutowire()).andReturn(false);
expect(context.getComponentId()).andReturn(componentId);
expect(registry.load(
@@ -114,6 +115,7 @@
expect(context.getScdlLocation()).andReturn(base);
expect(context.getClassLoader()).andReturn(cl);
+ expect(context.isAutowire()).andReturn(false);
expect(context.getComponentId()).andReturn(componentId);
expect(registry.load(
@@ -143,6 +145,7 @@
expect(reader.next()).andReturn(END_ELEMENT);
expect(context.getClassLoader()).andReturn(cl);
+ expect(context.isAutowire()).andReturn(false);
expect(context.getComponentId()).andReturn(componentId);
expect(registry.load(
Modified: incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl Wed Feb 28 08:18:10 2007
@@ -23,7 +23,9 @@
-->
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
- name="boot2">
+ name="boot2"
+ autowire="true">
+
<!-- expose Deployer API as a service -->
<service name="deployer" promote="deployerImpl">
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=512824&r1=512823&r2=512824
==============================================================================
--- 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 Wed Feb 28 08:18:10 2007
@@ -82,6 +82,13 @@
*/
boolean isAutowire();
+ /**
+ * Sets if the autowire is enabled for the current deployment.
+ *
+ * @return true Sets if the autowire is enabled for the current deployment
+ */
+ void setAutowire(boolean autowire);
+
@Deprecated
Map<URI, Component> getComponents();
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java Wed Feb 28 08:18:10 2007
@@ -20,6 +20,7 @@
import org.osoa.sca.annotations.EagerInit;
import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Reference;
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.builder.BindingBuilder;
@@ -43,7 +44,7 @@
public abstract class BindingBuilderExtension<B extends BindingDefinition> implements BindingBuilder<B> {
protected BuilderRegistry builderRegistry;
- @Autowire
+ @Reference
public void setBuilderRegistry(BuilderRegistry registry) {
this.builderRegistry = registry;
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java Wed Feb 28 08:18:10 2007
@@ -20,8 +20,8 @@
import org.osoa.sca.annotations.EagerInit;
import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Reference;
-import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.builder.BuilderRegistry;
import org.apache.tuscany.spi.builder.ComponentBuilder;
import org.apache.tuscany.spi.component.ScopeRegistry;
@@ -44,27 +44,27 @@
protected WorkContext workContext;
protected PolicyBuilderRegistry policyBuilderRegistry;
- @Autowire
+ @Reference
public void setBuilderRegistry(BuilderRegistry registry) {
this.builderRegistry = registry;
}
- @Autowire
+ @Reference
public void setScopeRegistry(ScopeRegistry scopeRegistry) {
this.scopeRegistry = scopeRegistry;
}
- @Autowire
+ @Reference
public void setProxyService(ProxyService proxyService) {
this.proxyService = proxyService;
}
- @Autowire
+ @Reference
public void setWorkContext(WorkContext workContext) {
this.workContext = workContext;
}
- @Autowire
+ @Reference
public void setPolicyBuilderRegistry(PolicyBuilderRegistry registry) {
policyBuilderRegistry = registry;
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentTypeLoaderExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentTypeLoaderExtension.java?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentTypeLoaderExtension.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentTypeLoaderExtension.java Wed Feb 28 08:18:10 2007
@@ -22,6 +22,7 @@
import org.osoa.sca.annotations.Init;
import org.osoa.sca.annotations.Scope;
import org.osoa.sca.annotations.EagerInit;
+import org.osoa.sca.annotations.Reference;
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.loader.ComponentTypeLoader;
@@ -43,7 +44,7 @@
this.loaderRegistry = loaderRegistry;
}
- @Autowire
+ @Reference
public void setLoaderRegistry(LoaderRegistry loaderRegistry) {
this.loaderRegistry = loaderRegistry;
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ContributionProcessorExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ContributionProcessorExtension.java?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ContributionProcessorExtension.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/ContributionProcessorExtension.java Wed Feb 28 08:18:10 2007
@@ -23,6 +23,7 @@
import org.osoa.sca.annotations.EagerInit;
import org.osoa.sca.annotations.Init;
import org.osoa.sca.annotations.Service;
+import org.osoa.sca.annotations.Reference;
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.deployer.ContributionProcessor;
@@ -45,7 +46,7 @@
/**
* @param registry the registry to set
*/
- @Autowire
+ @Reference
public void setContributionProcessorRegistry(ContributionProcessorRegistry registry) {
this.registry = registry;
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorExtension.java?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorExtension.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/ImplementationProcessorExtension.java Wed Feb 28 08:18:10 2007
@@ -28,8 +28,8 @@
import org.osoa.sca.annotations.Destroy;
import org.osoa.sca.annotations.EagerInit;
import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Reference;
-import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.deployer.DeploymentContext;
/**
@@ -41,7 +41,7 @@
public abstract class ImplementationProcessorExtension implements ImplementationProcessor {
private IntrospectionRegistry registry;
- @Autowire
+ @Reference
public void setRegistry(IntrospectionRegistry registry) {
this.registry = registry;
}
@@ -92,7 +92,7 @@
DeploymentContext context) throws ProcessingException {
}
-
+
protected static Class<?> getBaseType(Class<?> cls, Type genericType) {
if (cls.isArray()) {
return cls.getComponentType();
@@ -100,12 +100,12 @@
if (genericType == cls) {
return Object.class;
} else {
- ParameterizedType parameterizedType = (ParameterizedType)genericType;
+ ParameterizedType parameterizedType = (ParameterizedType) genericType;
Type baseType = parameterizedType.getActualTypeArguments()[0];
if (baseType instanceof Class) {
- return (Class<?>)baseType;
+ return (Class<?>) baseType;
} else if (baseType instanceof ParameterizedType) {
- return (Class<?>)((ParameterizedType)baseType).getRawType();
+ return (Class<?>) ((ParameterizedType) baseType).getRawType();
} else {
return null;
}
@@ -113,5 +113,5 @@
} else {
return cls;
}
- }
+ }
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java Wed Feb 28 08:18:10 2007
@@ -98,7 +98,7 @@
*
* @return true if autowire is enabled for the component.
*/
- public boolean isAutowire() {
+ public boolean getAutowire() {
return autowire;
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceDefinition.java?view=diff&rev=512824&r1=512823&r2=512824
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceDefinition.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceDefinition.java Wed Feb 28 08:18:10 2007
@@ -18,10 +18,10 @@
*/
package org.apache.tuscany.spi.model;
+import java.net.URI;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import java.net.URI;
/**
* Represents a component reference
@@ -82,7 +82,7 @@
/**
* @deprecated
*/
- public boolean isAutowire() {
+ public boolean getAutowire() {
return autowire;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org