summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/Node.java27
-rw-r--r--sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java23
-rw-r--r--sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/InstalledContribution.java12
-rw-r--r--sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java2
4 files changed, 43 insertions, 21 deletions
diff --git a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/Node.java b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/Node.java
index efe4c2d27b..046ce4ac83 100644
--- a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/Node.java
+++ b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/Node.java
@@ -32,6 +32,10 @@ import org.apache.tuscany.sca.monitor.ValidationException;
import org.apache.tuscany.sca.runtime.ActivationException;
import org.oasisopen.sca.NoSuchServiceException;
+/**
+ * A Node is a collection of contributions and started composites which are part
+ * of an SCA Domain.
+ */
public interface Node {
/**
@@ -108,6 +112,29 @@ public interface Node {
* @throws ValidationException
*/
String start(String contributionURI, Reader compositeXML) throws ContributionReadException, XMLStreamException, ActivationException, ValidationException;
+
+ /**
+ * 4599 10.5.2 add Deployment Composite & update Deployment Composite
+ * 4600 Adds or updates a deployment composite using a supplied composite ("composite by value" - a data
+ * 4601 structure, not an existing resource in the Domain) to the contribution identified by a supplied contribution
+ * 4602 URI. The added or updated deployment composite is given a relative URI that matches the @name
+ * 4603 attribute of the composite, with a ".composite" suffix. Since all composites run within the context of a
+ * 4604 installed contribution (any component implementations or other definitions are resolved within that
+ * 4605 contribution), this functionality makes it possible for the deployer to create a composite with final
+ * 4606 configuration and wiring decisions and add it to an installed contribution without having to modify the
+ * 4607 contents of the root contribution.
+ * 4608 Also, in some use cases, a contribution might include only implementation code (e.g. PHP scripts). It is
+ * 4609 then possible for those to be given component names by a (possibly generated) composite that is added
+ * 4610 into the installed contribution, without having to modify the packaging. *
+ *
+ * @param contributionURI the URI of the installed contribution to add the composite to
+ * @param composite the Composite to add to the contribution
+ * @return
+ * @throws XMLStreamException
+ * @throws ContributionReadException
+ * @throws ActivationException
+ * @throws ValidationException
+ */
String start(String contributionURI, Composite composite) throws ActivationException, ValidationException;
/**
diff --git a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java
index c82fc3a81c..923a12c9b1 100644
--- a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java
+++ b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/DeployedComposite.java
@@ -45,14 +45,13 @@ public class DeployedComposite {
private Composite composite;
private InstalledContribution installedContribution;
private List<Contribution> dependedOnContributions;
- private Composite domainComposite; // TODO: this is misleadingly named
+ private Composite builtComposite;
private CompositeActivator compositeActivator;
private CompositeContext compositeContext;
private Deployer deployer;
private EndpointRegistry endpointRegistry;
private ExtensionPointRegistry extensionPointRegistry;
- private Contribution systemContribution;
public DeployedComposite(Composite composite,
InstalledContribution ic,
@@ -83,35 +82,29 @@ public class DeployedComposite {
contribution.add(installedContribution.getContribution());
contribution.get(0).getDeployables().clear();
contribution.get(0).getDeployables().add(composite);
-
-
+
Monitor monitor = deployer.createMonitor();
- if (systemContribution == null) {
- this.systemContribution = deployer.cloneSystemContribution(monitor);
- }
- domainComposite = deployer.build(contribution, dependedOnContributions, systemContribution, new HashMap<QName, List<String>>(), monitor);
+ builtComposite = deployer.build(contribution, dependedOnContributions, new HashMap<QName, List<String>>(), monitor);
monitor.analyzeProblems();
compositeContext = new CompositeContext(extensionPointRegistry,
endpointRegistry,
- domainComposite,
+ builtComposite,
null, // nothing appears to use the domain name in CompositeContext
null, // don't need node uri
deployer.getSystemDefinitions());
- start();
-
this.uri = getCompositeURI(composite, installedContribution);
}
public void start() throws ActivationException {
- compositeActivator.activate(compositeContext, domainComposite);
- compositeActivator.start(compositeContext, domainComposite);
+ compositeActivator.activate(compositeContext, builtComposite);
+ compositeActivator.start(compositeContext, builtComposite);
}
public void stop() throws ActivationException {
- compositeActivator.stop(compositeContext, domainComposite);
- compositeActivator.deactivate(domainComposite);
+ compositeActivator.stop(compositeContext, builtComposite);
+ compositeActivator.deactivate(builtComposite);
}
public String getURI() {
diff --git a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/InstalledContribution.java b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/InstalledContribution.java
index d3a2526ab9..d781fc0c77 100644
--- a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/InstalledContribution.java
+++ b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/InstalledContribution.java
@@ -66,6 +66,12 @@ public class InstalledContribution {
public List<String> getDependentContributionURIs() {
return dependentContributionURIs;
}
+
+ public void start(DeployedComposite composite) throws ActivationException {
+ composite.start();
+ startedComposites.put(composite.getURI(), composite);
+ }
+
public void stop(String compositeURI) throws ActivationException {
DeployedComposite dc = startedComposites.remove(compositeURI);
if (dc == null) {
@@ -75,15 +81,11 @@ public class InstalledContribution {
stoppedComposites.put(compositeURI, dc);
}
- public void start(DeployedComposite composite) {
- startedComposites.put(composite.getURI(), composite);
- }
-
public boolean restart(String compositeURI) throws ActivationException {
DeployedComposite dc = stoppedComposites.remove(compositeURI);
if (dc != null) {
dc.start();
- startedComposites.put(dc.getURI(), dc);
+ startedComposites.put(compositeURI, dc);
}
return dc != null;
}
diff --git a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java
index 19e05f9408..b1d1c97e61 100644
--- a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java
+++ b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java
@@ -74,11 +74,11 @@ public class NodeImpl implements Node {
private String domainName;
private Deployer deployer;
- private Map<String, InstalledContribution> installedContributions = new HashMap<String, InstalledContribution>();
private CompositeActivator compositeActivator;
private EndpointRegistry endpointRegistry;
private ExtensionPointRegistry extensionPointRegistry;
private TuscanyRuntime tuscanyRuntime;
+ private Map<String, InstalledContribution> installedContributions = new HashMap<String, InstalledContribution>();
private static Map<String, Node> allNodes = new HashMap<String, Node>();