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/26 22:08:21 UTC
svn commit: r512012 - in /incubator/tuscany/java/sca/kernel:
core/src/main/java/org/apache/tuscany/core/loader/
core/src/test/java/org/apache/tuscany/core/loader/
spi/src/main/java/org/apache/tuscany/spi/model/
Author: jmarino
Date: Mon Feb 26 13:08:18 2007
New Revision: 512012
URL: http://svn.apache.org/viewvc?view=rev&rev=512012
Log:
add autowire support to component loading
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.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/spi/src/main/java/org/apache/tuscany/spi/model/ComponentDefinition.java
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=512012&r1=512011&r2=512012
==============================================================================
--- 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 Mon Feb 26 13:08:18 2007
@@ -86,6 +86,7 @@
private static final String PROPERTY_FILE_ATTR = "file";
private static final String PROPERTY_NAME_ATTR = "name";
+ private static final String PROPERTY_AUTOWIRE_ATTR = "autowire";
private static final String PROPERTY_SOURCE_ATTR = "source";
private PropertyObjectFactory propertyFactory;
@@ -106,6 +107,7 @@
assert COMPONENT.equals(reader.getName());
String name = reader.getAttributeValue(null, "name");
String initLevel = reader.getAttributeValue(null, "initLevel");
+ String autowire = reader.getAttributeValue(null, "autowire");
URI componentId = URI.create(context.getComponentId() + "/").resolve(name);
ClassLoader loader = context.getClassLoader();
@@ -116,7 +118,7 @@
ComponentDefinition<Implementation<?>> componentDefinition =
new ComponentDefinition<Implementation<?>>(componentId, impl);
-
+ componentDefinition.setAutowire(Boolean.parseBoolean(autowire));
if (initLevel != null) {
if (initLevel.length() == 0) {
componentDefinition.setInitLevel(0);
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=512012&r1=512011&r2=512012
==============================================================================
--- 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 Mon Feb 26 13:08:18 2007
@@ -19,15 +19,12 @@
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.XMLStreamReader;
import static org.osoa.sca.Constants.SCA_NS;
-import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.implementation.java.PojoComponentType;
import org.apache.tuscany.spi.loader.LoaderRegistry;
@@ -50,7 +47,6 @@
private XMLStreamReader reader;
private ServiceDefinition service;
private ReferenceDefinition reference;
- private Component parent;
private DeploymentContext ctx;
public void testNoServiceBinding() throws Exception {
@@ -66,9 +62,6 @@
protected void setUp() throws Exception {
super.setUp();
URI componentId = URI.create("sca://localhost/parent/");
- parent = EasyMock.createMock(Component.class);
- EasyMock.expect(parent.getUri()).andReturn(URI.create("parent"));
- EasyMock.replay(parent);
service = new ServiceDefinition();
service.setUri(URI.create("service"));
reference = new ReferenceDefinition();
@@ -93,10 +86,11 @@
EasyMock.expect(reader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
EasyMock.expect(reader.getAttributeValue(null, "name")).andReturn("foo");
EasyMock.expect(reader.getAttributeValue(null, "initLevel")).andReturn("0");
+ EasyMock.expect(reader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("autowire")))
+ .andReturn(null);
EasyMock.expect(reader.nextTag()).andReturn(1);
EasyMock.replay(reader);
ctx = EasyMock.createMock(DeploymentContext.class);
- List<String> names = new ArrayList<String>();
EasyMock.expect(ctx.getClassLoader()).andReturn(null);
EasyMock.expect(ctx.getScdlLocation()).andReturn(null);
EasyMock.expect(ctx.getComponentId()).andReturn(componentId);
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=512012&r1=512011&r2=512012
==============================================================================
--- 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 Mon Feb 26 13:08:18 2007
@@ -1,8 +1,6 @@
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;
@@ -10,7 +8,6 @@
import static org.osoa.sca.Constants.SCA_NS;
-import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.implementation.java.PojoComponentType;
import org.apache.tuscany.spi.loader.LoaderException;
@@ -36,7 +33,6 @@
private static final String NAME = "testComponent";
private ComponentLoader loader;
private XMLStreamReader reader;
- private Component parent;
private DeploymentContext ctx;
/**
@@ -63,6 +59,8 @@
.andReturn(NAME);
EasyMock.expect(reader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("initLevel")))
.andReturn(null);
+ EasyMock.expect(reader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("autowire")))
+ .andReturn(null);
EasyMock.expect(reader.getAttributeValue(EasyMock.isA(String.class), EasyMock.isA(String.class)))
.andReturn(null);
EasyMock.expect(reader.nextTag()).andReturn(0);
@@ -84,14 +82,10 @@
EasyMock.isA(DeploymentContext.class))).andReturn(impl);
EasyMock.replay(mockRegistry);
loader = new ComponentLoader(mockRegistry, null);
- parent = EasyMock.createMock(Component.class);
- EasyMock.expect(parent.getUri()).andReturn(URI.create("foo"));
- EasyMock.replay(parent);
ctx = EasyMock.createMock(DeploymentContext.class);
EasyMock.expect(ctx.getClassLoader()).andReturn(null);
EasyMock.expect(ctx.getScdlLocation()).andReturn(null);
EasyMock.expect(ctx.getComponentId()).andReturn(componentId);
- List<String> names = new ArrayList<String>();
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=512012&r1=512011&r2=512012
==============================================================================
--- 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 Mon Feb 26 13:08:18 2007
@@ -72,6 +72,8 @@
.andReturn(NAME);
EasyMock.expect(mockReader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("initLevel")))
.andReturn(null);
+ EasyMock.expect(mockReader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("autowire")))
+ .andReturn(null);
EasyMock.expect(mockReader.getAttributeValue(EasyMock.isA(String.class), EasyMock.isA(String.class)))
.andReturn(null);
EasyMock.expect(mockReader.nextTag()).andReturn(0);
@@ -99,12 +101,49 @@
assertNull(component.getInitLevel());
}
+ public void testAutowire() throws LoaderException, XMLStreamException {
+ EasyMock.expect(mockReader.getName()).andReturn(COMPONENT).atLeastOnce();
+ EasyMock.expect(mockReader.getAttributeValue((String) EasyMock.isNull(), EasyMock.isA(String.class)))
+ .andReturn(NAME);
+ EasyMock.expect(mockReader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("initLevel")))
+ .andReturn(null);
+ EasyMock.expect(mockReader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("autowire")))
+ .andReturn("true");
+ EasyMock.expect(mockReader.nextTag()).andReturn(0);
+ EasyMock.expect(mockReader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
+ EasyMock.replay(mockReader);
+
+ mockRegistry.loadComponentType(
+ EasyMock.isA(Implementation.class),
+ EasyMock.isA(DeploymentContext.class));
+
+ EasyMock.expectLastCall().andStubAnswer(new IAnswer<Object>() {
+ @SuppressWarnings("unchecked")
+ public Object answer() throws Throwable {
+ Implementation impl = (Implementation) EasyMock.getCurrentArguments()[0];
+ impl.setComponentType(new PojoComponentType());
+ return impl;
+ }
+ });
+ EasyMock.expect(mockRegistry.load(
+ (ModelObject) isNull(),
+ EasyMock.eq(mockReader),
+ EasyMock.isA(DeploymentContext.class))).andReturn(impl);
+ EasyMock.replay(mockRegistry);
+
+ ComponentDefinition component = loader.load(null, mockReader, ctx);
+
+ assertTrue(component.isAutowire());
+ }
+
public void testInitValue20() throws LoaderException, XMLStreamException {
EasyMock.expect(mockReader.getName()).andReturn(COMPONENT).atLeastOnce();
EasyMock.expect(mockReader.getAttributeValue((String) EasyMock.isNull(), EasyMock.isA(String.class)))
.andReturn(NAME);
EasyMock.expect(mockReader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("initLevel")))
.andReturn("20");
+ EasyMock.expect(mockReader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("autowire")))
+ .andReturn(null);
EasyMock.expect(mockReader.nextTag()).andReturn(0);
EasyMock.expect(mockReader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
EasyMock.replay(mockReader);
@@ -157,6 +196,8 @@
EasyMock.expect(mockReader.getAttributeValue((String) EasyMock.isNull(), EasyMock.isA(String.class)))
.andReturn(NAME);
EasyMock.expect(mockReader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("initLevel")))
+ .andReturn(null);
+ EasyMock.expect(mockReader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("autowire")))
.andReturn(null);
EasyMock.expect(mockReader.getAttributeValue(EasyMock.isA(String.class), EasyMock.isA(String.class)))
.andReturn(null);
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=512012&r1=512011&r2=512012
==============================================================================
--- 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 Mon Feb 26 13:08:18 2007
@@ -40,6 +40,7 @@
*/
public class ComponentDefinition<I extends Implementation<?>> extends ModelObject {
private URI uri;
+ private boolean autowire;
private Integer initLevel;
private final I implementation;
private final Map<String, ReferenceTarget> referenceTargets = new HashMap<String, ReferenceTarget>();
@@ -48,7 +49,7 @@
/**
* Constructor specifying the component's name and implementation.
*
- * @param uri the name of this component
+ * @param uri the name of this component
* @param implementation the implementation of this component
*/
public ComponentDefinition(URI uri, I implementation) {
@@ -90,6 +91,24 @@
*/
public void setUri(URI uri) {
this.uri = uri;
+ }
+
+ /**
+ * Returns true if autowire is enabled for the component.
+ *
+ * @return true if autowire is enabled for the component.
+ */
+ public boolean isAutowire() {
+ return autowire;
+ }
+
+ /**
+ * Sets autowire enablement for the component.
+ *
+ * @param autowire true if autowire is enabled.
+ */
+ public void setAutowire(boolean autowire) {
+ this.autowire = autowire;
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org