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/27 01:31:35 UTC
svn commit: r512090 - in /incubator/tuscany/java/sca/kernel:
core/src/main/java/org/apache/tuscany/core/loader/
core/src/main/java/org/apache/tuscany/core/resolver/
core/src/test/java/org/apache/tuscany/core/loader/
spi/src/main/java/org/apache/tuscany...
Author: jmarino
Date: Mon Feb 26 16:31:33 2007
New Revision: 512090
URL: http://svn.apache.org/viewvc?view=rev&rev=512090
Log:
add autowire loading for component references; deprecate @Autowire
Modified:
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/resolver/DefaultAutowireResolver.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/ComponentLoaderRefTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceDefinition.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceTarget.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=512090&r1=512089&r2=512090
==============================================================================
--- 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 16:31:33 2007
@@ -49,8 +49,8 @@
import org.apache.tuscany.spi.loader.LoaderRegistry;
import org.apache.tuscany.spi.loader.LoaderUtil;
import org.apache.tuscany.spi.loader.MissingImplementationException;
-import org.apache.tuscany.spi.loader.MissingRequiredPropertyException;
import org.apache.tuscany.spi.loader.MissingReferenceException;
+import org.apache.tuscany.spi.loader.MissingRequiredPropertyException;
import org.apache.tuscany.spi.loader.PropertyObjectFactory;
import org.apache.tuscany.spi.loader.ReferenceMultiplicityViolationException;
import org.apache.tuscany.spi.loader.UndefinedPropertyException;
@@ -217,13 +217,16 @@
}
String target = reader.getAttributeValue(null, "target");
+ boolean autowire = Boolean.parseBoolean(reader.getAttributeValue(null, "autowire"));
URI componentId = context.getComponentId();
- StringTokenizer tokenizer = new StringTokenizer(target);
List<URI> uris = new ArrayList<URI>();
- while (tokenizer.hasMoreTokens()) {
- String token = tokenizer.nextToken();
- QualifiedName qName = new QualifiedName(token);
- uris.add(componentId.resolve(qName.getFragment()));
+ if (target != null) {
+ StringTokenizer tokenizer = new StringTokenizer(target);
+ while (tokenizer.hasMoreTokens()) {
+ String token = tokenizer.nextToken();
+ QualifiedName qName = new QualifiedName(token);
+ uris.add(componentId.resolve(qName.getFragment()));
+ }
}
Implementation<?> impl = componentDefinition.getImplementation();
@@ -251,6 +254,7 @@
if (referenceTarget == null) {
referenceTarget = new ReferenceTarget();
referenceTarget.setReferenceName(componentId.resolve('#' + name));
+ referenceTarget.setAutowire(autowire);
componentDefinition.add(referenceTarget);
}
for (URI uri : uris) {
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=512090&r1=512089&r2=512090
==============================================================================
--- 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 Mon Feb 26 16:31:33 2007
@@ -57,7 +57,7 @@
resolve((ComponentDefinition<Implementation<CompositeComponentType<?, ?, ?>>>) definition, child);
}
for (ReferenceTarget target : child.getReferenceTargets().values()) {
- if (target.getTargets().isEmpty()) {
+ if (target.getTargets().isEmpty()) { // xcv 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()) {
+ if (target.getTargets().isEmpty()) { // xcv 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/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=512090&r1=512089&r2=512090
==============================================================================
--- 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 16:31:33 2007
@@ -68,6 +68,8 @@
EasyMock.expect(reader.getName()).andReturn(REFERENCE);
EasyMock.expect(reader.getAttributeValue((String) isNull(), EasyMock.eq("name")))
.andReturn("noreference");
+ EasyMock.expect(reader.getAttributeValue((String) EasyMock.isNull(), EasyMock.eq("autowire")))
+ .andReturn(null);
EasyMock.expect(reader.getAttributeValue(null, "target")).andReturn("text");
EasyMock.expect(reader.next()).andReturn(XMLStreamConstants.END_ELEMENT);
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderRefTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderRefTestCase.java?view=diff&rev=512090&r1=512089&r2=512090
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderRefTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderRefTestCase.java Mon Feb 26 16:31:33 2007
@@ -58,6 +58,7 @@
XMLStreamReader reader = EasyMock.createMock(XMLStreamReader.class);
EasyMock.expect(reader.getAttributeValue(null, "name")).andReturn("reference");
EasyMock.expect(reader.getAttributeValue(null, "target")).andReturn("target");
+ EasyMock.expect(reader.getAttributeValue(null, "autowire")).andReturn(null);
EasyMock.replay(reader);
loader.loadReference(reader, definition, context);
ReferenceTarget target = definition.getReferenceTargets().get("reference");
@@ -81,6 +82,7 @@
XMLStreamReader reader = EasyMock.createMock(XMLStreamReader.class);
EasyMock.expect(reader.getAttributeValue(null, "name")).andReturn("reference");
EasyMock.expect(reader.getAttributeValue(null, "target")).andReturn("target/fragment");
+ EasyMock.expect(reader.getAttributeValue(null, "autowire")).andReturn(null);
EasyMock.replay(reader);
loader.loadReference(reader, definition, context);
ReferenceTarget target = definition.getReferenceTargets().get("reference");
@@ -103,6 +105,7 @@
XMLStreamReader reader = EasyMock.createMock(XMLStreamReader.class);
EasyMock.expect(reader.getAttributeValue(null, "name")).andReturn("reference");
EasyMock.expect(reader.getAttributeValue(null, "target")).andReturn("target1/fragment1 target2/fragment2");
+ EasyMock.expect(reader.getAttributeValue(null, "autowire")).andReturn(null);
EasyMock.replay(reader);
loader.loadReference(reader, definition, context);
ReferenceTarget target = definition.getReferenceTargets().get("reference");
@@ -113,6 +116,29 @@
assertEquals(componentId.resolve("target2#fragment2"), uri2);
EasyMock.verify(reader);
}
+
+ public void testLoadReferenceAutowire() throws LoaderException, XMLStreamException {
+ PojoComponentType<?, MockReferenceDefinition, Property<?>> type =
+ new PojoComponentType<ServiceDefinition, MockReferenceDefinition, Property<?>>();
+ MockReferenceDefinition reference = new MockReferenceDefinition();
+ reference.setUri(URI.create("#reference"));
+ type.add(reference);
+ JavaImplementation impl = new JavaImplementation();
+ impl.setComponentType(type);
+ ComponentDefinition<?> definition = new ComponentDefinition<JavaImplementation>(impl);
+ definition.setUri(URI.create("component"));
+ XMLStreamReader reader = EasyMock.createMock(XMLStreamReader.class);
+ EasyMock.expect(reader.getAttributeValue(null, "name")).andReturn("reference");
+ EasyMock.expect(reader.getAttributeValue(null, "target")).andReturn("target/fragment");
+ EasyMock.expect(reader.getAttributeValue(null, "autowire")).andReturn("true");
+ EasyMock.replay(reader);
+ loader.loadReference(reader, definition, context);
+ ReferenceTarget target = definition.getReferenceTargets().get("reference");
+ assertTrue(target.isAutowire());
+ EasyMock.verify(reader);
+ }
+
+
protected void setUp() throws Exception {
super.setUp();
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=512090&r1=512089&r2=512090
==============================================================================
--- 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 Mon Feb 26 16:31:33 2007
@@ -79,10 +79,16 @@
this.multiplicity = multiplicity;
}
+ /**
+ * @deprecated
+ */
public boolean isAutowire() {
return autowire;
}
+ /**
+ * @deprecated
+ */
public void setAutowire(boolean autowire) {
this.autowire = autowire;
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceTarget.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceTarget.java?view=diff&rev=512090&r1=512089&r2=512090
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceTarget.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/ReferenceTarget.java Mon Feb 26 16:31:33 2007
@@ -29,6 +29,7 @@
*/
public class ReferenceTarget extends ModelObject {
private URI referenceName;
+ private boolean autowire;
private List<URI> targets = new ArrayList<URI>();
public URI getReferenceName() {
@@ -37,6 +38,24 @@
public void setReferenceName(URI referenceName) {
this.referenceName = referenceName;
+ }
+
+ /**
+ * Returns true if autowire is enabled for the reference.
+ *
+ * @return true if autowire is enabled for the reference.
+ */
+ public boolean isAutowire() {
+ return autowire;
+ }
+
+ /**
+ * Sets autowire enablement for the reference.
+ *
+ * @param autowire true if autowire is enabled.
+ */
+ public void setAutowire(boolean autowire) {
+ this.autowire = autowire;
}
public List<URI> getTargets() {
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org