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:56:09 UTC

svn commit: r512028 - in /incubator/tuscany/java/sca/kernel: core/src/main/java/org/apache/tuscany/core/implementation/composite/ core/src/main/java/org/apache/tuscany/core/loader/ core/src/test/java/org/apache/tuscany/core/implementation/composite/ sp...

Author: jmarino
Date: Mon Feb 26 13:56:08 2007
New Revision: 512028

URL: http://svn.apache.org/viewvc?view=rev&rev=512028
Log:
add autowire support to composite loading

Added:
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLoaderTestCase.java   (with props)
Modified:
    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/loader/ComponentLoader.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeComponentType.java

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=512028&r1=512027&r2=512028
==============================================================================
--- 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 Mon Feb 26 13:56:08 2007
@@ -78,24 +78,26 @@
         ModelObject object,
         XMLStreamReader reader,
         DeploymentContext deploymentContext) throws XMLStreamException, LoaderException {
-        CompositeComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> composite =
+        CompositeComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> type =
             new CompositeComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
-        composite.setName(reader.getAttributeValue(null, "name"));
+        type.setName(reader.getAttributeValue(null, "name"));
+        boolean autowire = Boolean.parseBoolean(reader.getAttributeValue(null, "autowire"));
+        type.setAutowire(autowire);
         boolean done = false;
         while (!done) {
             switch (reader.next()) {
                 case START_ELEMENT:
-                    ModelObject o = registry.load(composite, reader, deploymentContext);
+                    ModelObject o = registry.load(type, reader, deploymentContext);
                     if (o instanceof ServiceDefinition) {
-                        composite.add((ServiceDefinition) o);
+                        type.add((ServiceDefinition) o);
                     } else if (o instanceof ReferenceDefinition) {
-                        composite.add((ReferenceDefinition) o);
+                        type.add((ReferenceDefinition) o);
                     } else if (o instanceof Property<?>) {
-                        composite.add((Property<?>) o);
+                        type.add((Property<?>) o);
                     } else if (o instanceof ComponentDefinition<?>) {
-                        composite.add((ComponentDefinition<?>) o);
+                        type.add((ComponentDefinition<?>) o);
                     } else if (o instanceof Include) {
-                        composite.add((Include) o);
+                        type.add((Include) o);
                     } else if (o instanceof Dependency) {
                         Artifact artifact = ((Dependency) o).getArtifact();
                         if (artifactRepository != null) {
@@ -115,11 +117,11 @@
                             }
                         }
                     } else if (o instanceof WireDefinition) {
-                        composite.add((WireDefinition) o);
+                        type.add((WireDefinition) o);
                     } else {
                         // add as an unknown model extension
                         if (o != null) {
-                            composite.getExtensions().put(o.getClass(), o);
+                            type.getExtensions().put(o.getClass(), o);
                         }
                     }
                     reader.next();
@@ -127,17 +129,17 @@
                 case END_ELEMENT:
                     if (COMPOSITE.equals(reader.getName())) {
                         // if there are wire defintions then link them up to the relevant components
-                        resolveWires(composite);
-                        verifyCompositeCompleteness(composite);
+                        resolveWires(type);
+                        verifyCompositeCompleteness(type);
                         done = true;
                         break;
                     }
             }
         }
-        for (ComponentDefinition<? extends Implementation<?>> c : composite.getComponents().values()) {
-            PropertyHelper.processProperties(composite, c, deploymentContext);
+        for (ComponentDefinition<? extends Implementation<?>> c : type.getComponents().values()) {
+            PropertyHelper.processProperties(type, c, deploymentContext);
         }
-        return composite;
+        return type;
     }
 
     protected void resolveWires(CompositeComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> composite)

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=512028&r1=512027&r2=512028
==============================================================================
--- 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:56:08 2007
@@ -86,7 +86,6 @@
 
     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;

Added: 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=auto&rev=512028
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLoaderTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLoaderTestCase.java Mon Feb 26 13:56:08 2007
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.core.implementation.composite;
+
+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.loader.LoaderRegistry;
+import org.apache.tuscany.spi.model.CompositeComponentType;
+
+import junit.framework.TestCase;
+import org.easymock.EasyMock;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class CompositeLoaderTestCase extends TestCase {
+    public static final QName COMPOSITE = new QName(SCA_NS, "composite");
+    private CompositeLoader loader;
+
+    public void testLoadNameAndDefaultAutowire() throws Exception {
+        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.END_ELEMENT);
+        EasyMock.expect(reader.getName()).andReturn(COMPOSITE);
+        EasyMock.replay(reader);
+        CompositeComponentType<?, ?, ?> type = loader.load(null, reader, null);
+        assertEquals("composite", type.getName());
+        assertFalse(type.isAutowire());
+        EasyMock.verify(reader);
+    }
+
+    public void testAutowire() throws Exception {
+        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.END_ELEMENT);
+        EasyMock.expect(reader.getName()).andReturn(COMPOSITE);
+        EasyMock.replay(reader);
+        CompositeComponentType<?, ?, ?> type = loader.load(null, reader, null);
+        assertTrue(type.isAutowire());
+        EasyMock.verify(reader);
+    }
+
+
+    protected void setUp() throws Exception {
+        super.setUp();
+        LoaderRegistry registry = EasyMock.createNiceMock(LoaderRegistry.class);
+        EasyMock.replay(registry);
+        loader = new CompositeLoader(registry, null);
+    }
+}

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLoaderTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeLoaderTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeComponentType.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeComponentType.java?view=diff&rev=512028&r1=512027&r2=512028
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeComponentType.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeComponentType.java Mon Feb 26 13:56:08 2007
@@ -36,6 +36,7 @@
     P extends Property<?>> extends ComponentType<S, R, P> {
 
     private String name;
+    private boolean autowire;
     private final Map<String, ComponentDefinition<? extends Implementation<?>>> components =
         new HashMap<String, ComponentDefinition<? extends Implementation<?>>>();
     private final Map<String, Include> includes = new HashMap<String, Include>();
@@ -51,6 +52,24 @@
 
     public void setName(String name) {
         this.name = name;
+    }
+
+    /**
+     * Returns if autowire is set of for composite
+     *
+     * @return true if autowire is set for the composite
+     */
+    public boolean isAutowire() {
+        return autowire;
+    }
+
+    /**
+     * Sets autowire for the composite
+     *
+     * @param autowire true if autowire is enabled for the composite
+     */
+    public void setAutowire(boolean autowire) {
+        this.autowire = autowire;
     }
 
     @Override



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org