You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2007/09/08 17:08:21 UTC
svn commit: r573852 - in
/incubator/tuscany/java/sca/modules/distributed-impl/src/main/java/org/apache/tuscany/sca/distributed/node/impl:
ContributionManagerImpl.java NodeImpl.java
Author: antelder
Date: Sat Sep 8 08:08:21 2007
New Revision: 573852
URL: http://svn.apache.org/viewvc?rev=573852&view=rev
Log:
Add methods to start supporting multiple contributions
Modified:
incubator/tuscany/java/sca/modules/distributed-impl/src/main/java/org/apache/tuscany/sca/distributed/node/impl/ContributionManagerImpl.java
incubator/tuscany/java/sca/modules/distributed-impl/src/main/java/org/apache/tuscany/sca/distributed/node/impl/NodeImpl.java
Modified: incubator/tuscany/java/sca/modules/distributed-impl/src/main/java/org/apache/tuscany/sca/distributed/node/impl/ContributionManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/distributed-impl/src/main/java/org/apache/tuscany/sca/distributed/node/impl/ContributionManagerImpl.java?rev=573852&r1=573851&r2=573852&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/distributed-impl/src/main/java/org/apache/tuscany/sca/distributed/node/impl/ContributionManagerImpl.java (original)
+++ incubator/tuscany/java/sca/modules/distributed-impl/src/main/java/org/apache/tuscany/sca/distributed/node/impl/ContributionManagerImpl.java Sat Sep 8 08:08:21 2007
@@ -20,27 +20,18 @@
package org.apache.tuscany.sca.distributed.node.impl;
import java.io.IOException;
+import java.io.InputStream;
import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
-import org.apache.tuscany.sca.assembly.Component;
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
import org.apache.tuscany.sca.contribution.Contribution;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.resolver.impl.ModelResolverImpl;
import org.apache.tuscany.sca.contribution.service.ContributionException;
import org.apache.tuscany.sca.contribution.service.ContributionService;
import org.apache.tuscany.sca.core.assembly.ActivationException;
-import org.apache.tuscany.sca.core.assembly.RuntimeComponentImpl;
-import org.apache.tuscany.sca.distributed.domain.Domain;
import org.apache.tuscany.sca.distributed.node.ContributionManager;
-import org.apache.tuscany.sca.host.embedded.impl.EmbeddedSCADomain;
import org.apache.tuscany.sca.host.embedded.impl.ReallySmallRuntime;
-import org.apache.tuscany.sca.host.embedded.management.variation.ComponentListener;
-import org.apache.tuscany.sca.host.embedded.management.variation.ComponentManager;
public class ContributionManagerImpl implements ContributionManager {
@@ -156,4 +147,60 @@
}
}
+ public void startContributionJAR(URL contributionJAR) throws ActivationException, ContributionException,
+ IOException, CompositeBuilderException {
+
+ if (contribution == null) {
+ addContributionJAR(contributionJAR);
+ }
+
+ if (contribution != null) {
+ for (Composite composite : contribution.getDeployables()) {
+ nodeRuntime.getCompositeActivator().start(composite);
+ }
+ } else {
+ throw new ActivationException("Contribution " + contributionLocation + " not added");
+ }
+ }
+
+ public void addContributionJAR(URL contributionJar) throws CompositeBuilderException, ActivationException {
+
+ ContributionService contributionService = nodeRuntime.getContributionService();
+
+ Contribution contribution = contributeJAR(contributionJar, contributionService);
+
+ // Add the composites to the top level domain
+ for (Composite composite : contribution.getDeployables()) {
+ nodeComposite.getIncludes().add(composite);
+ nodeRuntime.getCompositeBuilder().build(composite);
+ }
+
+ // activate all of the composites just loaded
+ for (Composite composite : contribution.getDeployables()) {
+ nodeRuntime.getCompositeActivator().activate(composite);
+ }
+ }
+
+ protected Contribution contributeJAR(URL contributionJar, ContributionService contributionService) throws ActivationException {
+ InputStream is;
+ try {
+ is = contributionJar.openStream();
+ } catch (IOException e) {
+ throw new ActivationException(e);
+ }
+ Contribution contribution;
+ try {
+ contribution = contributionService.contribute(contributionJar.toString(), contributionJar, is, modelResolver);
+ } catch (Exception e) {
+ throw new ActivationException(e);
+ }
+ if (is != null) {
+ try {
+ is.close();
+ } catch (IOException e) {
+ throw new ActivationException(e);
+ }
+ }
+ return contribution;
+ }
}
Modified: incubator/tuscany/java/sca/modules/distributed-impl/src/main/java/org/apache/tuscany/sca/distributed/node/impl/NodeImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/distributed-impl/src/main/java/org/apache/tuscany/sca/distributed/node/impl/NodeImpl.java?rev=573852&r1=573851&r2=573852&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/distributed-impl/src/main/java/org/apache/tuscany/sca/distributed/node/impl/NodeImpl.java (original)
+++ incubator/tuscany/java/sca/modules/distributed-impl/src/main/java/org/apache/tuscany/sca/distributed/node/impl/NodeImpl.java Sat Sep 8 08:08:21 2007
@@ -107,6 +107,13 @@
this.isStandalone = true;
init();
}
+ public NodeImpl(ClassLoader cl) throws ActivationException {
+ this.domainUri = LOCAL_DOMAIN_URI ;
+ this.nodeUri = LOCAL_NODE_NAME;
+ this.isStandalone = true;
+ this.domainClassLoader = cl;
+ init();
+ }
public NodeImpl(String domainUri)
throws ActivationException {
@@ -522,5 +529,6 @@
return componentContext.createSelfReference(businessInterface);
}
}
- }
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org