You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/08/07 07:49:31 UTC
svn commit: r563395 - in /incubator/tuscany/java/sca:
itest/contribution-import-export/export-composite/src/test/java/hello/
itest/contribution-import-export/import-composite/src/test/java/helloworld/
itest/contribution-import-export/import-java/src/te...
Author: jsdelfino
Date: Mon Aug 6 22:49:29 2007
New Revision: 563395
URL: http://svn.apache.org/viewvc?view=rev&rev=563395
Log:
Work in progress. Allow SCADomain and CompositeActivator to handle different composites separately instead of wiring the whole set of composites in the in memory SCADomain together.
Modified:
incubator/tuscany/java/sca/itest/contribution-import-export/export-composite/src/test/java/hello/HelloTestCase.java
incubator/tuscany/java/sca/itest/contribution-import-export/import-composite/src/test/java/helloworld/HelloWorldServerTestCase.java
incubator/tuscany/java/sca/itest/contribution-import-export/import-java/src/test/java/helloworld/HelloWorldServerTestCase.java
incubator/tuscany/java/sca/itest/contribution-import-export/import-wsdl/src/test/java/helloworld/HelloWorldServerTestCase.java
incubator/tuscany/java/sca/itest/recursive/src/test/java/composite/LocateServiceEmbeddedSCADomainTestCase.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivator.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivatorImpl.java
incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/core/DistributedCompositeActivatorImpl.java
incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/DistributedSCADomainImpl.java
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/HotUpdatableSCADomain.java
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomainTestCase.java
incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomainTestCase.java
Modified: incubator/tuscany/java/sca/itest/contribution-import-export/export-composite/src/test/java/hello/HelloTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/contribution-import-export/export-composite/src/test/java/hello/HelloTestCase.java?view=diff&rev=563395&r1=563394&r2=563395
==============================================================================
--- incubator/tuscany/java/sca/itest/contribution-import-export/export-composite/src/test/java/hello/HelloTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/contribution-import-export/export-composite/src/test/java/hello/HelloTestCase.java Mon Aug 6 22:49:29 2007
@@ -56,8 +56,6 @@
Composite consumerComposite = consumerContribution.getDeployables().get(0);
domain.getDomainCompositeHelper().addComposite(consumerComposite);
- //activate SCA Domain
- domain.getDomainCompositeHelper().activateDomain();
//Start Components from my composite
domain.getDomainCompositeHelper().startComponent(domain.getDomainCompositeHelper().getComponent("HelloServiceComponent"));
}
Modified: incubator/tuscany/java/sca/itest/contribution-import-export/import-composite/src/test/java/helloworld/HelloWorldServerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/contribution-import-export/import-composite/src/test/java/helloworld/HelloWorldServerTestCase.java?view=diff&rev=563395&r1=563394&r2=563395
==============================================================================
--- incubator/tuscany/java/sca/itest/contribution-import-export/import-composite/src/test/java/helloworld/HelloWorldServerTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/contribution-import-export/import-composite/src/test/java/helloworld/HelloWorldServerTestCase.java Mon Aug 6 22:49:29 2007
@@ -25,6 +25,7 @@
import junit.framework.TestCase;
+import org.apache.tuscany.sca.assembly.Component;
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.contribution.Contribution;
import org.apache.tuscany.sca.contribution.service.ContributionService;
@@ -36,6 +37,7 @@
public class HelloWorldServerTestCase extends TestCase{
private ClassLoader cl;
private EmbeddedSCADomain domain;
+ private Contribution helloWorldContribution;
protected void setUp() throws Exception {
//Create a test embedded SCA domain
@@ -57,18 +59,17 @@
File helloWorldContribLocation = new File("./target/classes/");
URL helloWorldContribURL = helloWorldContribLocation.toURL();
- Contribution helloWorldContribution = contributionService.contribute("http://import-export/helloworld", helloWorldContribURL, false);
+ helloWorldContribution = contributionService.contribute("http://import-export/helloworld", helloWorldContribURL, false);
for (Composite deployable : helloWorldContribution.getDeployables() ) {
domain.getDomainCompositeHelper().addComposite(deployable);
}
- //activate SCA Domain
- domain.getDomainCompositeHelper().activateDomain();
-
//Start Components from my composite
- domain.getDomainCompositeHelper().startComponent(domain.getDomainCompositeHelper().getComponent("HelloServiceComponent"));
- domain.getDomainCompositeHelper().startComponent(domain.getDomainCompositeHelper().getComponent("SourceHelloServiceComponent"));
- domain.getDomainCompositeHelper().startComponent(domain.getDomainCompositeHelper().getComponent("HelloWorldServiceComponent"));
+ for (Composite deployable : helloWorldContribution.getDeployables() ) {
+ for (Component component: deployable.getComponents()) {
+ domain.getDomainCompositeHelper().startComponent(component);
+ }
+ }
}
public void testPing() throws IOException {
@@ -91,7 +92,11 @@
contributionService.remove("http://import-export/export-composite");
//Stop Components from my composite
- domain.getDomainCompositeHelper().stopComponent(domain.getDomainCompositeHelper().getComponent("HelloWorldServiceComponent"));
+ for (Composite deployable : helloWorldContribution.getDeployables() ) {
+ for (Component component: deployable.getComponents()) {
+ domain.getDomainCompositeHelper().stopComponent(component);
+ }
+ }
domain.stop();
domain.close();
Modified: incubator/tuscany/java/sca/itest/contribution-import-export/import-java/src/test/java/helloworld/HelloWorldServerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/contribution-import-export/import-java/src/test/java/helloworld/HelloWorldServerTestCase.java?view=diff&rev=563395&r1=563394&r2=563395
==============================================================================
--- incubator/tuscany/java/sca/itest/contribution-import-export/import-java/src/test/java/helloworld/HelloWorldServerTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/contribution-import-export/import-java/src/test/java/helloworld/HelloWorldServerTestCase.java Mon Aug 6 22:49:29 2007
@@ -61,9 +61,6 @@
domain.getDomainCompositeHelper().addComposite(deployable);
}
- //activate SCA Domain
- domain.getDomainCompositeHelper().activateDomain();
-
//Start Components from my composite
domain.getDomainCompositeHelper().startComponent(domain.getDomainCompositeHelper().getComponent("HelloWorldServiceComponent"));
}
Modified: incubator/tuscany/java/sca/itest/contribution-import-export/import-wsdl/src/test/java/helloworld/HelloWorldServerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/contribution-import-export/import-wsdl/src/test/java/helloworld/HelloWorldServerTestCase.java?view=diff&rev=563395&r1=563394&r2=563395
==============================================================================
--- incubator/tuscany/java/sca/itest/contribution-import-export/import-wsdl/src/test/java/helloworld/HelloWorldServerTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/contribution-import-export/import-wsdl/src/test/java/helloworld/HelloWorldServerTestCase.java Mon Aug 6 22:49:29 2007
@@ -62,9 +62,6 @@
domain.getDomainCompositeHelper().addComposite(deployable);
}
- //activate SCA Domain
- domain.getDomainCompositeHelper().activateDomain();
-
//Start Components from my composite
domain.getDomainCompositeHelper().startComponent(domain.getDomainCompositeHelper().getComponent("HelloWorldServiceComponent"));
}
Modified: incubator/tuscany/java/sca/itest/recursive/src/test/java/composite/LocateServiceEmbeddedSCADomainTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/recursive/src/test/java/composite/LocateServiceEmbeddedSCADomainTestCase.java?view=diff&rev=563395&r1=563394&r2=563395
==============================================================================
--- incubator/tuscany/java/sca/itest/recursive/src/test/java/composite/LocateServiceEmbeddedSCADomainTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/recursive/src/test/java/composite/LocateServiceEmbeddedSCADomainTestCase.java Mon Aug 6 22:49:29 2007
@@ -52,9 +52,6 @@
domain.getDomainCompositeHelper().addComposite(deployable);
}
- //activate SCA Domain
- domain.getDomainCompositeHelper().activateDomain();
-
//Start Components from my composite
domain.getDomainCompositeHelper().startComponent(domain.getDomainCompositeHelper().getComponent("SourceComponent"));
}
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivator.java?view=diff&rev=563395&r1=563394&r2=563395
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivator.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivator.java Mon Aug 6 22:49:29 2007
@@ -42,20 +42,6 @@
void deactivate(Composite composite) throws ActivationException;
/**
- * Start a composite
- * @deprecated
- * @param composite
- */
- void start(Composite composite) throws ActivationException;
-
- /**
- * Stop a composite
- * @deprecated
- * @param composite
- */
- void stop(Composite composite) throws ActivationException;
-
- /**
* Start a component
* @param component
*/
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivatorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivatorImpl.java?view=diff&rev=563395&r1=563394&r2=563395
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivatorImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivatorImpl.java Mon Aug 6 22:49:29 2007
@@ -31,10 +31,6 @@
import org.apache.tuscany.sca.assembly.Reference;
import org.apache.tuscany.sca.assembly.SCABindingFactory;
import org.apache.tuscany.sca.assembly.WireableBinding;
-import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
-import org.apache.tuscany.sca.assembly.builder.CompositeBuilderMonitor;
-import org.apache.tuscany.sca.assembly.builder.Problem;
-import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl;
import org.apache.tuscany.sca.core.invocation.InvocationChainImpl;
import org.apache.tuscany.sca.core.invocation.NonBlockingInterceptor;
import org.apache.tuscany.sca.interfacedef.IncompatibleInterfaceContractException;
@@ -66,8 +62,6 @@
*/
public class CompositeActivatorImpl implements CompositeActivator {
- private final AssemblyFactory assemblyFactory;
- private final SCABindingFactory scaBindingFactory;
private final InterfaceContractMapper interfaceContractMapper;
private final ScopeRegistry scopeRegistry;
private final WorkScheduler workScheduler;
@@ -88,9 +82,6 @@
WorkScheduler workScheduler,
RuntimeWireProcessor wireProcessor,
ProviderFactoryExtensionPoint providerFactories) {
- super();
- this.assemblyFactory = assemblyFactory;
- this.scaBindingFactory = scaBindingFactory;
this.interfaceContractMapper = interfaceContractMapper;
this.scopeRegistry = scopeRegistry;
this.workScheduler = workScheduler;
@@ -104,8 +95,7 @@
* @param composite
* @throws IncompatibleInterfaceContractException
*/
- @SuppressWarnings("unchecked")
- protected void configureComposite(Composite composite) throws IncompatibleInterfaceContractException {
+ private void createProviders(Composite composite) throws IncompatibleInterfaceContractException {
for (Component component : composite.getComponents()) {
for (ComponentService service : component.getServices()) {
@@ -131,25 +121,29 @@
Implementation implementation = component.getImplementation();
if (implementation instanceof Composite) {
- configureComposite((Composite)implementation);
+ createProviders((Composite)implementation);
} else if (implementation != null) {
- ImplementationProviderFactory providerFactory =
- (ImplementationProviderFactory)providerFactories.getProviderFactory(implementation.getClass());
- if (providerFactory != null) {
- ImplementationProvider implementationProvider =
- providerFactory.createImplementationProvider((RuntimeComponent)component, implementation);
- if (implementationProvider != null) {
- ((RuntimeComponent)component).setImplementationProvider(implementationProvider);
- }
- } else {
- throw new IllegalStateException("Provider factory not found for class: " + implementation
- .getClass().getName());
- }
+ createImplementationProvider((RuntimeComponent)component, implementation);
setScopeContainer(component);
}
}
}
+ private void createImplementationProvider(RuntimeComponent component, Implementation implementation) {
+ ImplementationProviderFactory providerFactory =
+ (ImplementationProviderFactory)providerFactories.getProviderFactory(implementation.getClass());
+ if (providerFactory != null) {
+ @SuppressWarnings("unchecked")
+ ImplementationProvider implementationProvider =
+ providerFactory.createImplementationProvider(component, implementation);
+ if (implementationProvider != null) {
+ component.setImplementationProvider(implementationProvider);
+ }
+ } else {
+ throw new IllegalStateException("Provider factory not found for class: " + implementation.getClass().getName());
+ }
+ }
+
private void createServiceBindingProviders(RuntimeComponent component,
RuntimeComponentService service,
List<Binding> bindings) {
@@ -157,6 +151,7 @@
BindingProviderFactory providerFactory =
(BindingProviderFactory)providerFactories.getProviderFactory(binding.getClass());
if (providerFactory != null) {
+ @SuppressWarnings("unchecked")
ServiceBindingProvider bindingProvider =
providerFactory.createServiceBindingProvider((RuntimeComponent)component,
(RuntimeComponentService)service,
@@ -177,6 +172,7 @@
BindingProviderFactory providerFactory =
(BindingProviderFactory)providerFactories.getProviderFactory(binding.getClass());
if (providerFactory != null) {
+ @SuppressWarnings("unchecked")
ReferenceBindingProvider bindingProvider =
providerFactory.createReferenceBindingProvider((RuntimeComponent)component,
(RuntimeComponentReference)reference,
@@ -193,7 +189,7 @@
/**
* Start a composite
*/
- protected void startComposite(Composite composite) {
+ private void startComposite(Composite composite) {
for (Component component : composite.getComponents()) {
startComponent(component);
}
@@ -202,7 +198,7 @@
/**
* Stop a composite
*/
- public void stopComposite(Composite composite) {
+ private void stopComposite(Composite composite) {
for (Component component : composite.getComponents()) {
stopComponent(component);
@@ -213,7 +209,7 @@
/**
* Start a component
*/
- public void startComponent(Component component) {
+ private void startComponent(Component component) {
for (ComponentService service : component.getServices()) {
for (Binding binding : service.getBindings()) {
@@ -290,7 +286,7 @@
/**
* Stop a component
*/
- public void stopComponent(Component component) {
+ private void stopComponent(Component component) {
for (ComponentService service : component.getServices()) {
for (Binding binding : service.getBindings()) {
ServiceBindingProvider bindingProvider = ((RuntimeComponentService)service).getBindingProvider(binding);
@@ -352,7 +348,7 @@
* @param composite
* @throws IncompatibleInterfaceContractException
*/
- protected void createRuntimeWires(Composite composite) throws IncompatibleInterfaceContractException {
+ private void createRuntimeWires(Composite composite) throws IncompatibleInterfaceContractException {
for (Component component : composite.getComponents()) {
Implementation implementation = component.getImplementation();
if (implementation instanceof Composite) {
@@ -764,57 +760,16 @@
runtimeComponent.setScopeContainer(scopeRegistry.getScopeContainer(runtimeComponent));
}
- protected void buildComposite(Composite composite) throws CompositeBuilderException {
-
- CompositeBuilderMonitor monitor = new CompositeBuilderMonitor() {
-
- public void problem(Problem problem) {
- // Uncommenting the following two lines can be useful to detect
- // and troubleshoot SCA assembly XML composite configuration
- // problems.
-
- System.out.println("Composite assembly problem: " + problem.getMessage());
- }
- };
-
- CompositeBuilderImpl builder =
- new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, interfaceContractMapper, monitor);
-
- builder.build(composite);
-
- // if (!problems.isEmpty()) {
- // throw new VariantRuntimeException(new RuntimeException("Problems in
- // the composite..."));
- // }
- }
-
public void activate(Composite composite) throws ActivationException {
try {
- buildComposite(composite);
- configureComposite(composite);
+ createProviders(composite);
createRuntimeWires(composite);
} catch (Exception e) {
throw new ActivationException(e);
}
}
-
+
public void deactivate(Composite composite) throws ActivationException {
- }
-
- public void start(Composite composite) throws ActivationException {
- try {
- startComposite(composite);
- } catch (Exception e) {
- throw new ActivationException(e);
- }
- }
-
- public void stop(Composite composite) throws ActivationException {
- try {
- stopComposite(composite);
- } catch (Exception e) {
- throw new ActivationException(e);
- }
}
public void start(Component component) throws ActivationException {
Modified: incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/core/DistributedCompositeActivatorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/core/DistributedCompositeActivatorImpl.java?view=diff&rev=563395&r1=563394&r2=563395
==============================================================================
--- incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/core/DistributedCompositeActivatorImpl.java (original)
+++ incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/core/DistributedCompositeActivatorImpl.java Mon Aug 6 22:49:29 2007
@@ -30,6 +30,7 @@
import org.apache.tuscany.sca.assembly.SCABinding;
import org.apache.tuscany.sca.assembly.SCABindingFactory;
import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
+import org.apache.tuscany.sca.core.runtime.ActivationException;
import org.apache.tuscany.sca.core.runtime.CompositeActivatorImpl;
import org.apache.tuscany.sca.distributed.assembly.DistributedSCABinding;
import org.apache.tuscany.sca.distributed.host.DistributedSCADomain;
@@ -89,7 +90,7 @@
}
}
-
+
/**
* Take the composite and use the super class to build it. Once done
* work out which components run in this node and create appropriate
@@ -98,14 +99,14 @@
*
* @param composite
*/
- protected void buildComposite(Composite composite) throws CompositeBuilderException {
- super.buildComposite(composite);
-
- // now we have a built composite look at which SCABindings
- // need updating based on which components are present
- // in this node
- assignComponentsToNode(composite);
+ public void activate(Composite composite) throws ActivationException {
+ try {
+ assignComponentsToNode(composite);
+ } catch (CompositeBuilderException e) {
+ throw new ActivationException(e);
+ }
+ super.activate(composite);
}
/**
Modified: incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/DistributedSCADomainImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/DistributedSCADomainImpl.java?view=diff&rev=563395&r1=563394&r2=563395
==============================================================================
--- incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/DistributedSCADomainImpl.java (original)
+++ incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/host/impl/DistributedSCADomainImpl.java Mon Aug 6 22:49:29 2007
@@ -100,28 +100,6 @@
}
/**
- * Start a composite
- * @deprecated
- * @param composite
- * @throws ActivationException
- */
- public void startComposite(Composite composite) throws ActivationException {
- CompositeActivator compositeActivator = runtime.getCompositeActivator();
- compositeActivator.start(composite);
- }
-
- /**
- * Stop a composite
- * @deprecated
- * @param composite
- * @throws ActivationException
- */
- public void stopComposite(Composite composite) throws ActivationException {
- CompositeActivator compositeActivator = runtime.getCompositeActivator();
- compositeActivator.stop(composite);
- }
-
- /**
* Get a reference to a component by name
* @param componentName
* @return
Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java?view=diff&rev=563395&r1=563394&r2=563395
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomain.java Mon Aug 6 22:49:29 2007
@@ -38,6 +38,8 @@
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.assembly.CompositeService;
import org.apache.tuscany.sca.assembly.SCABinding;
+import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
+import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
import org.apache.tuscany.sca.contribution.Contribution;
import org.apache.tuscany.sca.contribution.DeployedArtifact;
import org.apache.tuscany.sca.contribution.service.ContributionException;
@@ -148,20 +150,41 @@
}
}
+
+ // Build the SCA composites
+ CompositeBuilder compositeBuilder = runtime.getCompositeBuilder();
+ for (Composite composite: domainComposite.getIncludes()) {
+ try {
+ compositeBuilder.build(composite);
+ } catch (CompositeBuilderException e) {
+ throw new ServiceRuntimeException(e);
+ }
+ }
-
- // Activate and start the SCA domain composite
+ // Activate and start composites
CompositeActivator compositeActivator = runtime.getCompositeActivator();
- try {
- compositeActivator.activate(domainComposite);
- compositeActivator.start(domainComposite);
- } catch (ActivationException e) {
- throw new ServiceRuntimeException(e);
+ for (Composite composite: domainComposite.getIncludes()) {
+ try {
+ compositeActivator.activate(composite);
+ } catch (ActivationException e) {
+ throw new ServiceRuntimeException(e);
+ }
+ }
+ for (Composite composite: domainComposite.getIncludes()) {
+ try {
+ for (Component component : composite.getComponents()) {
+ compositeActivator.start(component);
+ }
+ } catch (ActivationException e) {
+ throw new ServiceRuntimeException(e);
+ }
}
// Index the top level components
- for (Component component : domainComposite.getComponents()) {
- components.put(component.getName(), component);
+ for (Composite composite: domainComposite.getIncludes()) {
+ for (Component component : composite.getComponents()) {
+ components.put(component.getName(), component);
+ }
}
this.componentManager = new DefaultSCADomainComponentManager(this);
@@ -172,6 +195,25 @@
super.close();
+ // Stop and deactivate composites
+ CompositeActivator compositeActivator = runtime.getCompositeActivator();
+ for (Composite composite: domainComposite.getIncludes()) {
+ try {
+ compositeActivator.deactivate(composite);
+ } catch (ActivationException e) {
+ throw new ServiceRuntimeException(e);
+ }
+ }
+ for (Composite composite: domainComposite.getIncludes()) {
+ try {
+ for (Component component : composite.getComponents()) {
+ compositeActivator.stop(component);
+ }
+ } catch (ActivationException e) {
+ throw new ServiceRuntimeException(e);
+ }
+ }
+
// Remove the contribution from the in-memory repository
ContributionService contributionService = runtime.getContributionService();
try {
@@ -180,15 +222,6 @@
throw new ServiceRuntimeException(e);
}
- // Stop the SCA domain composite
- CompositeActivator compositeActivator = runtime.getCompositeActivator();
- try {
- compositeActivator.stop(domainComposite);
- } catch (ActivationException e) {
- throw new ServiceRuntimeException(e);
-
- }
-
// Stop the runtime
try {
runtime.stop();
Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java?view=diff&rev=563395&r1=563394&r2=563395
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomain.java Mon Aug 6 22:49:29 2007
@@ -33,6 +33,8 @@
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.assembly.CompositeService;
import org.apache.tuscany.sca.assembly.SCABinding;
+import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
+import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
import org.apache.tuscany.sca.contribution.service.ContributionService;
import org.apache.tuscany.sca.core.runtime.ActivationException;
import org.apache.tuscany.sca.core.runtime.CompositeActivator;
@@ -67,11 +69,17 @@
*/
public Composite addComposite(Composite composite) throws ActivationException {
domainComposite.getIncludes().add(composite);
- //CompositeActivator compositeActivator = runtime.getCompositeActivator();
- //compositeActivator.activate(composite);
- //for (Component component : composite.getComponents()) {
- // components.put(component.getName(), component);
- //}
+ CompositeBuilder compositeBuilder = runtime.getCompositeBuilder();
+ try {
+ compositeBuilder.build(composite);
+ } catch (CompositeBuilderException e) {
+ throw new ActivationException(e);
+ }
+ CompositeActivator compositeActivator = runtime.getCompositeActivator();
+ compositeActivator.activate(composite);
+ for (Component component : composite.getComponents()) {
+ components.put(component.getName(), component);
+ }
return composite;
}
@@ -89,28 +97,6 @@
}
}
- /**
- * Start a composite
- * @deprecated
- * @param composite
- * @throws ActivationException
- */
- public void startComposite(Composite composite) throws ActivationException {
- CompositeActivator compositeActivator = runtime.getCompositeActivator();
- compositeActivator.start(composite);
- }
-
- /**
- * Stop a composite
- * @deprecated
- * @param composite
- * @throws ActivationException
- */
- public void stopComposite(Composite composite) throws ActivationException {
- CompositeActivator compositeActivator = runtime.getCompositeActivator();
- compositeActivator.stop(composite);
- }
-
public Set<String> getComponentNames(){
return Collections.unmodifiableSet(components.keySet());
}
@@ -153,19 +139,6 @@
compositeActivator.stop(component);
componentManager.notifyComponentStopped(component.getName());
}
-
- /**
- * Activate SCA Domain
- * @throws ActivationException
- */
- public void activateDomain() throws ActivationException {
- CompositeActivator compositeActivator = runtime.getCompositeActivator();
- compositeActivator.activate(domainComposite);
- for (Component component : domainComposite.getComponents()) {
- components.put(component.getName(), component);
- }
-
- }
}
/**
Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/HotUpdatableSCADomain.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/HotUpdatableSCADomain.java?view=diff&rev=563395&r1=563394&r2=563395
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/HotUpdatableSCADomain.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/HotUpdatableSCADomain.java Mon Aug 6 22:49:29 2007
@@ -32,6 +32,7 @@
import java.util.HashMap;
import java.util.List;
+import org.apache.tuscany.sca.assembly.Component;
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.contribution.resolver.impl.ModelResolverImpl;
import org.apache.tuscany.sca.contribution.service.ContributionService;
@@ -193,13 +194,13 @@
}
}
- domainHelper.activateDomain();
-
-// for (Object m : modelResolver.getModels()) {
-// if (m instanceof Composite) {
-// domainHelper.startComposite((Composite)m);
-// }
-// }
+ for (Object m : modelResolver.getModels()) {
+ if (m instanceof Composite) {
+ for (Component component: ((Composite)m).getComponents()) {
+ domainHelper.startComponent(component);
+ }
+ }
+ }
for (String componentName : domainHelper.getComponentNames()) {
domainHelper.startComponent(domainHelper.getComponent(componentName));
Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java?view=diff&rev=563395&r1=563394&r2=563395
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntime.java Mon Aug 6 22:49:29 2007
@@ -30,6 +30,7 @@
import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.DefaultSCABindingFactory;
import org.apache.tuscany.sca.assembly.SCABindingFactory;
+import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
import org.apache.tuscany.sca.assembly.xml.Constants;
import org.apache.tuscany.sca.context.ContextFactoryExtensionPoint;
import org.apache.tuscany.sca.context.DefaultContextFactoryExtensionPoint;
@@ -72,6 +73,7 @@
private AssemblyFactory assemblyFactory;
private ContributionService contributionService;
private CompositeActivator compositeActivator;
+ private CompositeBuilder compositeBuilder;
private ThreadPoolWorkManager workManager;
private ScopeRegistry scopeRegistry;
@@ -125,6 +127,11 @@
// Create the ScopeRegistry
scopeRegistry = ReallySmallRuntimeBuilder.createScopeRegistry(registry);
+
+ // Create a composite builder
+ compositeBuilder = ReallySmallRuntimeBuilder.createCompositeBuilder(assemblyFactory,
+ scaBindingFactory,
+ mapper);
// Create a composite activator
compositeActivator = ReallySmallRuntimeBuilder.createCompositeActivator(registry,
@@ -174,6 +181,10 @@
public CompositeActivator getCompositeActivator() {
return compositeActivator;
+ }
+
+ public CompositeBuilder getCompositeBuilder() {
+ return compositeBuilder;
}
public AssemblyFactory getAssemblyFactory() {
Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java?view=diff&rev=563395&r1=563394&r2=563395
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java Mon Aug 6 22:49:29 2007
@@ -41,6 +41,8 @@
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.assembly.ConstrainingType;
import org.apache.tuscany.sca.assembly.SCABindingFactory;
+import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
+import org.apache.tuscany.sca.assembly.builder.impl.CompositeBuilderImpl;
import org.apache.tuscany.sca.assembly.xml.ComponentTypeDocumentProcessor;
import org.apache.tuscany.sca.assembly.xml.ComponentTypeModelResolver;
import org.apache.tuscany.sca.assembly.xml.ComponentTypeProcessor;
@@ -159,6 +161,10 @@
wireProcessor, providerFactories);
return compositeActivator;
+ }
+
+ public static CompositeBuilder createCompositeBuilder(AssemblyFactory assemblyFactory, SCABindingFactory scaBindingFactory, InterfaceContractMapper interfaceContractMapper) {
+ return new CompositeBuilderImpl(assemblyFactory, scaBindingFactory, interfaceContractMapper, null);
}
/**
Modified: incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomainTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomainTestCase.java?view=diff&rev=563395&r1=563394&r2=563395
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomainTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/DefaultSCADomainTestCase.java Mon Aug 6 22:49:29 2007
@@ -49,16 +49,11 @@
assertEquals("CRUDServiceComponent", componentManager.getComponentNames().iterator().next());
assertNotNull(componentManager.getComponent("CRUDServiceComponent"));
- //FIXME this used to work because of a bug in the compositebuilder/activator, causing componentManager
- // to use a duplicate instance of the component, the original instance having already been started by
- // new DefaultSCADomain()...
-
- assertFalse(componentManager.isComponentStarted("CRUDServiceComponent"));
- componentManager.startComponent("CRUDServiceComponent");
assertTrue(componentManager.isComponentStarted("CRUDServiceComponent"));
componentManager.stopComponent("CRUDServiceComponent");
assertFalse(componentManager.isComponentStarted("CRUDServiceComponent"));
}
+
/**
* @throws java.lang.Exception
*/
Modified: incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomainTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomainTestCase.java?view=diff&rev=563395&r1=563394&r2=563395
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomainTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/impl/EmbeddedSCADomainTestCase.java Mon Aug 6 22:49:29 2007
@@ -71,10 +71,7 @@
EmbeddedSCADomain.DomainCompositeHelper domainHelper = domain.getDomainCompositeHelper();
domainHelper.addComposite(myComposite);
- // Activate the SCA Domain
- domainHelper.activateDomain();
-
- // Start the components in my composite
+ // Start my component
domainHelper.startComponent(domainHelper.getComponent("CRUDServiceComponent"));
// At this point the domain contains my contribution, my composite and
@@ -94,8 +91,8 @@
result = service.retrieve(id);
assertNull(result);
- // Stop my composite
- domainHelper.stopComposite(myComposite);
+ // Stop my component
+ domainHelper.stopComponent(domainHelper.getComponent("CRUDServiceComponent"));
// Remove my composite
domainHelper.removeComposite(myComposite);
@@ -129,12 +126,9 @@
EmbeddedSCADomain.DomainCompositeHelper domainHelper = domain.getDomainCompositeHelper();
domainHelper.addComposite(myComposite);
- // Activate the SCA Domain
- domainHelper.activateDomain();
-
- // Start the components in my composite
+ // Start my component
domainHelper.startComponent(domainHelper.getComponent("CRUDServiceComponent"));
-
+
// At this point the domain contains my contribution, my composite and
// it's started, my application code can start using it
@@ -161,9 +155,9 @@
assertTrue(cl.startCalled);
assertTrue(componentManager.isComponentStarted("CRUDServiceComponent"));
- // Stop my composite
- domainHelper.stopComposite(myComposite);
-
+ // Stop my component
+ domainHelper.stopComponent(domainHelper.getComponent("CRUDServiceComponent"));
+
// Remove my composite
domainHelper.removeComposite(myComposite);
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org