You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2006/09/14 02:54:51 UTC
svn commit: r443176 - in /incubator/tuscany/java/sca:
containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/
kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/
kernel/core/src/main/java/org/apache/t...
Author: rfeng
Date: Wed Sep 13 17:54:50 2006
New Revision: 443176
URL: http://svn.apache.org/viewvc?view=rev&rev=443176
Log:
Fix the CompositeComponentType and related builders to support recursive "include"
Modified:
incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringImplementationLoader.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/deployer/boot1-include.scdl
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/CompositeComponentType.java
Modified: incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringImplementationLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringImplementationLoader.java?view=diff&rev=443176&r1=443175&r2=443176
==============================================================================
--- incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringImplementationLoader.java (original)
+++ incubator/tuscany/java/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringImplementationLoader.java Wed Sep 13 17:54:50 2006
@@ -121,11 +121,11 @@
throw e;
}
}
- implementation.getComponentType().getServices().put(service.getName(), service);
+ type.getDeclaredServices().put(service.getName(), service);
} else if (REFERENCE_ELEMENT.equals(qname)) {
BoundReferenceDefinition reference =
(BoundReferenceDefinition) registry.load(parent, reader, deploymentContext);
- implementation.getComponentType().getReferences().put(reference.getName(), reference);
+ type.getDeclaredReferences().put(reference.getName(), reference);
}
break;
case END_ELEMENT:
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java?view=diff&rev=443176&r1=443175&r2=443176
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java Wed Sep 13 17:54:50 2006
@@ -82,6 +82,7 @@
}
}
+ /*
// add in components and services from included composites
for (Include include : componentType.getIncludes().values()) {
CompositeComponentType<?, ?, ?> included = include.getIncluded();
@@ -95,6 +96,7 @@
}
// TODO how to include references
}
+ */
String name = componentDefinition.getName();
CompositeComponentImpl component = new CompositeComponentImpl(name, parent, null, connector, null);
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java?view=diff&rev=443176&r1=443175&r2=443176
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java Wed Sep 13 17:54:50 2006
@@ -80,6 +80,7 @@
}
}
+ /*
// add in components and services from included composites
for (Include include : componentType.getIncludes().values()) {
CompositeComponentType<?, ?, ?> included = include.getIncluded();
@@ -92,6 +93,7 @@
}
}
}
+ */
// create the composite component
String name = componentDefinition.getName();
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java?view=diff&rev=443176&r1=443175&r2=443176
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java Wed Sep 13 17:54:50 2006
@@ -73,8 +73,10 @@
assertEquals("boot1", composite.getName());
// check parse of <service>
- Map<String, ServiceDefinition> services = composite.getServices();
- assertEquals(1, services.size());
+ Map<String, ServiceDefinition> services = composite.getDeclaredServices();
+ assertEquals(1, services.size()); // included doesn't count
+ services = composite.getServices();
+ assertEquals(2, services.size()); // included counts
BoundServiceDefinition serviceDefinition = (BoundServiceDefinition) services.get("service");
assertNotNull(serviceDefinition);
assertEquals("service", serviceDefinition.getName());
@@ -82,8 +84,10 @@
assertTrue(serviceDefinition.getBinding() instanceof SystemBinding);
// check parse of <component>
- Map<String, ComponentDefinition<? extends Implementation<?>>> components = composite.getComponents();
- assertEquals(1, components.size());
+ Map<String, ComponentDefinition<? extends Implementation<?>>> components = composite.getDeclaredComponents();
+ assertEquals(1, components.size()); // included doesn't count
+ components = composite.getComponents();
+ assertEquals(2, components.size()); // included counts
ComponentDefinition<? extends Implementation<?>> component = components.get("component");
assertNotNull(component);
PropertyValue<?> propVal = component.getPropertyValues().get("publicProperty");
Modified: incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/deployer/boot1-include.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/deployer/boot1-include.scdl?view=diff&rev=443176&r1=443175&r2=443176
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/deployer/boot1-include.scdl (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/deployer/boot1-include.scdl Wed Sep 13 17:54:50 2006
@@ -25,4 +25,10 @@
<system:implementation.system class="org.apache.tuscany.core.mock.component.BasicInterfaceImpl"/>
</component>
+ <service name="service2" >
+ <interface.java interface="org.apache.tuscany.core.mock.component.BasicInterface"/>
+ <system:binding.system/>
+ <reference>component2</reference>
+ </service>
+
</composite>
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=443176&r1=443175&r2=443176
==============================================================================
--- 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 Wed Sep 13 17:54:50 2006
@@ -18,6 +18,7 @@
*/
package org.apache.tuscany.spi.model;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -43,10 +44,94 @@
this.name = name;
}
+ @Override
+ @SuppressWarnings("unchecked")
+ /**
+ * Get all properties including the ones are from included composites
+ * @return
+ */
+ public Map<String, P> getProperties() {
+ Map<String, P> view = new HashMap<String, P>(super.getProperties());
+ for (Include i : includes.values()) {
+ view.putAll(i.getIncluded().getProperties());
+ }
+ return Collections.unmodifiableMap(view);
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ /**
+ * Get all references including the ones are from included composites
+ * @return
+ */
+ public Map<String, R> getReferences() {
+ Map<String, R> view = new HashMap<String, R>(super.getReferences());
+ for (Include i : includes.values()) {
+ view.putAll(i.getIncluded().getReferences());
+ }
+ return Collections.unmodifiableMap(view);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ /**
+ * Get all services including the ones are from included composites
+ * @return
+ */
+ public Map<String, S> getServices() {
+ Map<String, S> view = new HashMap<String, S>(super.getServices());
+ for (Include i : includes.values()) {
+ view.putAll(i.getIncluded().getServices());
+ }
+ return Collections.unmodifiableMap(view);
+ }
+
+ /**
+ * Get all components including the ones are from included composites
+ * @return
+ */
+ @SuppressWarnings("unchecked")
public Map<String, ComponentDefinition<? extends Implementation<?>>> getComponents() {
- return components;
+ Map<String, ComponentDefinition<? extends Implementation<?>>> view =
+ new HashMap<String, ComponentDefinition<? extends Implementation<?>>>(components);
+ for (Include i : includes.values()) {
+ view.putAll(i.getIncluded().getComponents());
+ }
+ return Collections.unmodifiableMap(view);
}
+ /**
+ * Get declared properties in this composite type, included doesn't count
+ * @return
+ */
+ public Map<String, P> getDeclaredProperties() {
+ return super.getProperties();
+ }
+
+ /**
+ * Get declared references in this composite type, included doesn't count
+ * @return
+ */
+ public Map<String, R> getDeclaredReferences() {
+ return super.getReferences();
+ }
+
+ /**
+ * Get declared services in this composite type, included doesn't count
+ * @return
+ */
+ public Map<String, S> getDeclaredServices() {
+ return super.getServices();
+ }
+
+ /**
+ * Get declared components in this composite type, included doesn't count
+ * @return
+ */
+ public Map<String, ComponentDefinition<? extends Implementation<?>>> getDeclaredComponents() {
+ return components;
+ }
+
public void add(ComponentDefinition<? extends Implementation<?>> componentDefinition) {
components.put(componentDefinition.getName(), componentDefinition);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org