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