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