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/01/13 13:34:41 UTC
svn commit: r495883 - in /incubator/tuscany/java/sca/kernel/core/src:
main/java/org/apache/tuscany/core/bootstrap/
main/java/org/apache/tuscany/core/implementation/composite/
main/java/org/apache/tuscany/core/implementation/system/builder/
main/resourc...
Author: jmarino
Date: Sat Jan 13 04:34:40 2007
New Revision: 495883
URL: http://svn.apache.org/viewvc?view=rev&rev=495883
Log:
move common composite builder code to an abstract class
Added:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeBuilder.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/SystemCompositeBuilder.java (contents, props changed)
- copied, changed from r495848, 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/implementation/composite/SystemComponentBuilderTestCase.java (contents, props changed)
- copied, changed from r495848, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilderTestCase.java
Removed:
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/implementation/system/builder/SystemComponentBuilderTestCase.java
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.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/resources/org/apache/tuscany/core/systemImplementation.scdl
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java?view=diff&rev=495883&r1=495882&r2=495883
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java Sat Jan 13 04:34:40 2007
@@ -64,7 +64,7 @@
import org.apache.tuscany.core.implementation.processor.ScopeProcessor;
import org.apache.tuscany.core.implementation.processor.ServiceProcessor;
import org.apache.tuscany.core.implementation.system.builder.SystemComponentBuilder;
-import org.apache.tuscany.core.implementation.system.builder.SystemCompositeBuilder;
+import org.apache.tuscany.core.implementation.composite.SystemCompositeBuilder;
import org.apache.tuscany.core.implementation.system.loader.SystemComponentTypeLoader;
import org.apache.tuscany.core.implementation.system.loader.SystemCompositeComponentTypeLoader;
import org.apache.tuscany.core.implementation.system.loader.SystemImplementationLoader;
Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeBuilder.java?view=auto&rev=495883
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeBuilder.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeBuilder.java Sat Jan 13 04:34:40 2007
@@ -0,0 +1,71 @@
+package org.apache.tuscany.core.implementation.composite;
+
+import org.apache.tuscany.spi.builder.BuilderException;
+import org.apache.tuscany.spi.builder.BuilderInstantiationException;
+import org.apache.tuscany.spi.component.Component;
+import org.apache.tuscany.spi.component.ComponentRegistrationException;
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.Service;
+import org.apache.tuscany.spi.deployer.DeploymentContext;
+import org.apache.tuscany.spi.extension.ComponentBuilderExtension;
+import org.apache.tuscany.spi.model.BoundReferenceDefinition;
+import org.apache.tuscany.spi.model.BoundServiceDefinition;
+import org.apache.tuscany.spi.model.ComponentDefinition;
+import org.apache.tuscany.spi.model.CompositeComponentType;
+import org.apache.tuscany.spi.model.Implementation;
+import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.ServiceDefinition;
+
+/**
+ * Abstract builder for composites
+ *
+ * @version $Rev$ $Date$
+ */
+public abstract class AbstractCompositeBuilder<T extends Implementation<CompositeComponentType>>
+ extends ComponentBuilderExtension<T> {
+
+ public CompositeComponent build(CompositeComponent parent,
+ CompositeComponent component,
+ CompositeComponentType<?, ?, ?> componentType,
+ DeploymentContext deploymentContext) throws BuilderException {
+
+ for (ComponentDefinition<? extends Implementation<?>> definition : componentType.getComponents().values()) {
+ try {
+ Component child = builderRegistry.build(component, definition, deploymentContext);
+ component.register(child);
+ } catch (ComponentRegistrationException e) {
+ throw new BuilderInstantiationException("Error registering component", e);
+ }
+ }
+ for (ServiceDefinition definition : componentType.getServices().values()) {
+ try {
+ if (definition instanceof BoundServiceDefinition) {
+ BoundServiceDefinition bsd = (BoundServiceDefinition) definition;
+ Service service = builderRegistry.build(component, bsd, deploymentContext);
+ component.register(service);
+ } else {
+ throw new UnsupportedOperationException();
+ }
+ } catch (ComponentRegistrationException e) {
+ throw new BuilderInstantiationException("Error registering service", e);
+ }
+ }
+ for (ReferenceDefinition definition : componentType.getReferences().values()) {
+ try {
+ if (definition instanceof BoundReferenceDefinition) {
+ BoundReferenceDefinition brd = (BoundReferenceDefinition) definition;
+ Reference child = builderRegistry.build(component, brd, deploymentContext);
+ component.register(child);
+ } else {
+ throw new UnsupportedOperationException();
+ }
+ } catch (ComponentRegistrationException e) {
+ throw new BuilderInstantiationException("Error registering reference", e);
+ }
+ }
+ component.getExtensions().putAll(componentType.getExtensions());
+ return component;
+ }
+
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeBuilder.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeBuilder.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
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=495883&r1=495882&r2=495883
==============================================================================
--- 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 Sat Jan 13 04:34:40 2007
@@ -19,29 +19,19 @@
package org.apache.tuscany.core.implementation.composite;
import org.apache.tuscany.spi.builder.BuilderException;
-import org.apache.tuscany.spi.builder.BuilderInstantiationException;
import org.apache.tuscany.spi.component.Component;
-import org.apache.tuscany.spi.component.ComponentRegistrationException;
import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.Reference;
-import org.apache.tuscany.spi.component.Service;
import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.extension.ComponentBuilderExtension;
-import org.apache.tuscany.spi.model.BoundReferenceDefinition;
-import org.apache.tuscany.spi.model.BoundServiceDefinition;
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.CompositeComponentType;
import org.apache.tuscany.spi.model.CompositeImplementation;
-import org.apache.tuscany.spi.model.Implementation;
-import org.apache.tuscany.spi.model.ReferenceDefinition;
-import org.apache.tuscany.spi.model.ServiceDefinition;
/**
* Instantiates a composite component from an assembly definition
*
* @version $Rev$ $Date$
*/
-public class CompositeBuilder extends ComponentBuilderExtension<CompositeImplementation> {
+public class CompositeBuilder extends AbstractCompositeBuilder<CompositeImplementation> {
public Component build(CompositeComponent parent,
ComponentDefinition<CompositeImplementation> componentDefinition,
@@ -51,42 +41,7 @@
String name = componentDefinition.getName();
CompositeComponentImpl component = new CompositeComponentImpl(name, parent, connector, null);
- for (ComponentDefinition<? extends Implementation<?>> definition : componentType.getComponents().values()) {
- try {
- Component child = builderRegistry.build(component, definition, deploymentContext);
- component.register(child);
- } catch (ComponentRegistrationException e) {
- throw new BuilderInstantiationException("Error registering component", e);
- }
- }
- for (ServiceDefinition definition : componentType.getServices().values()) {
- try {
- if (definition instanceof BoundServiceDefinition) {
- BoundServiceDefinition bsd = (BoundServiceDefinition) definition;
- Service service = builderRegistry.build(component, bsd, deploymentContext);
- component.register(service);
- } else {
- throw new UnsupportedOperationException();
- }
- } catch (ComponentRegistrationException e) {
- throw new BuilderInstantiationException("Error registering service", e);
- }
- }
- for (ReferenceDefinition definition : componentType.getReferences().values()) {
- try {
- if (definition instanceof BoundReferenceDefinition) {
- BoundReferenceDefinition brd = (BoundReferenceDefinition) definition;
- Reference child = builderRegistry.build(component, brd, deploymentContext);
- component.register(child);
- } else {
- throw new UnsupportedOperationException();
- }
- } catch (ComponentRegistrationException e) {
- throw new BuilderInstantiationException("Error registering reference", e);
- }
- }
- component.getExtensions().putAll(componentType.getExtensions());
- return component;
+ return build(parent, component, componentType, deploymentContext);
}
protected Class<CompositeImplementation> getImplementationType() {
Copied: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/SystemCompositeBuilder.java (from r495848, 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/composite/SystemCompositeBuilder.java?view=diff&rev=495883&p1=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java&r1=495848&p2=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/SystemCompositeBuilder.java&r2=495883
==============================================================================
--- 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/composite/SystemCompositeBuilder.java Sat Jan 13 04:34:40 2007
@@ -16,37 +16,25 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.core.implementation.system.builder;
-
-import java.util.ArrayList;
-import java.util.List;
+package org.apache.tuscany.core.implementation.composite;
import org.apache.tuscany.spi.builder.BuilderException;
-import org.apache.tuscany.spi.builder.BuilderInstantiationException;
import org.apache.tuscany.spi.builder.BuilderRegistry;
import org.apache.tuscany.spi.builder.Connector;
-import org.apache.tuscany.spi.component.Component;
-import org.apache.tuscany.spi.component.ComponentRegistrationException;
import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.extension.ComponentBuilderExtension;
-import org.apache.tuscany.spi.model.BoundServiceDefinition;
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.CompositeComponentType;
-import org.apache.tuscany.spi.model.Implementation;
-import org.apache.tuscany.spi.model.ServiceDefinition;
import org.apache.tuscany.spi.services.management.TuscanyManagementService;
-import org.apache.tuscany.core.implementation.composite.CompositeComponentImpl;
import org.apache.tuscany.core.implementation.system.model.SystemCompositeImplementation;
/**
* Produces system composite components by evaluating an assembly.
- *
+ *
* @version $Rev$ $Date$
*/
-public class SystemCompositeBuilder extends ComponentBuilderExtension<SystemCompositeImplementation> {
+public class SystemCompositeBuilder extends AbstractCompositeBuilder<SystemCompositeImplementation> {
private TuscanyManagementService managementService;
public SystemCompositeBuilder() {
@@ -60,62 +48,15 @@
this.managementService = managementService;
}
- @SuppressWarnings("unchecked")
- public Component build(CompositeComponent parent,
- ComponentDefinition<SystemCompositeImplementation> componentDefinition,
- DeploymentContext deploymentContext) throws BuilderException {
+ public CompositeComponent build(CompositeComponent parent,
+ ComponentDefinition<SystemCompositeImplementation> componentDefinition,
+ DeploymentContext deploymentContext) throws BuilderException {
SystemCompositeImplementation impl = componentDefinition.getImplementation();
CompositeComponentType<?, ?, ?> componentType = impl.getComponentType();
- // create lists of all components and serviceBindings in this composite
- List<ComponentDefinition<? extends Implementation<?>>> allComponents =
- new ArrayList<ComponentDefinition<? extends Implementation<?>>>();
- allComponents.addAll(componentType.getComponents().values());
-
- List<BoundServiceDefinition> allBoundServices = new ArrayList<BoundServiceDefinition>();
- for (ServiceDefinition serviceDefinition : componentType.getServices().values()) {
- if (serviceDefinition instanceof BoundServiceDefinition) {
- BoundServiceDefinition boundService = (BoundServiceDefinition)serviceDefinition;
- allBoundServices.add(boundService);
- }
- }
-
- // create the composite component
String name = componentDefinition.getName();
CompositeComponent component = new CompositeComponentImpl(name, parent, connector, true);
component.setManagementService(managementService);
- for (ComponentDefinition<? extends Implementation> childComponentDefinition : allComponents) {
- Component child;
- try {
- child = builderRegistry.build(component, childComponentDefinition, deploymentContext);
- } catch (BuilderException e) {
- e.addContextName(component.getName());
- e.addContextName(name);
- e.addContextName(parent.getName());
- throw e;
- }
- try {
- component.register(child);
- } catch (ComponentRegistrationException e) {
- throw new BuilderInstantiationException("Error registering component", e);
- }
- }
-
- for (BoundServiceDefinition serviceDefinition : allBoundServices) {
- SCAObject object;
- try {
- object = builderRegistry.build(component, serviceDefinition, deploymentContext);
- } catch (BuilderException e) {
- e.addContextName(serviceDefinition.getName());
- e.addContextName(name);
- e.addContextName(parent.getName());
- throw e;
- }
- try {
- component.register(object);
- } catch (ComponentRegistrationException e) {
- throw new BuilderInstantiationException("Error registering service", e);
- }
- }
+ build(parent, component, componentType, deploymentContext);
return component;
}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/SystemCompositeBuilder.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/SystemCompositeBuilder.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/systemImplementation.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/systemImplementation.scdl?view=diff&rev=495883&r1=495882&r2=495883
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/systemImplementation.scdl (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/systemImplementation.scdl Sat Jan 13 04:34:40 2007
@@ -41,6 +41,6 @@
<system:implementation.system class="org.apache.tuscany.core.implementation.system.builder.SystemComponentBuilder"/>
</component>
<component name="system.compositeBuilder">
- <system:implementation.system class="org.apache.tuscany.core.implementation.system.builder.SystemCompositeBuilder"/>
+ <system:implementation.system class="org.apache.tuscany.core.implementation.composite.SystemCompositeBuilder"/>
</component>
</composite>
Copied: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/SystemComponentBuilderTestCase.java (from r495848, incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilderTestCase.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/SystemComponentBuilderTestCase.java?view=diff&rev=495883&p1=incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilderTestCase.java&r1=495848&p2=incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/SystemComponentBuilderTestCase.java&r2=495883
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/SystemComponentBuilderTestCase.java Sat Jan 13 04:34:40 2007
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.core.implementation.system.builder;
+package org.apache.tuscany.core.implementation.composite;
import java.lang.reflect.Method;
@@ -37,6 +37,7 @@
import org.apache.tuscany.core.component.event.CompositeStop;
import org.apache.tuscany.core.component.scope.CompositeScopeContainer;
import org.apache.tuscany.core.implementation.system.model.SystemImplementation;
+import org.apache.tuscany.core.implementation.system.builder.SystemComponentBuilder;
import org.apache.tuscany.core.injection.SingletonObjectFactory;
import org.easymock.EasyMock;
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/SystemComponentBuilderTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/SystemComponentBuilderTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org