summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2010-08-02 12:59:02 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2010-08-02 12:59:02 +0000
commit3e0e09e6e2cfd96f814c307ce5757f5c86c70993 (patch)
treec62ec896a38fdca88513384143cc53cc84e4c3a5
parent6f2ce523bebbe1c91bb0a0c8955683fee1947809 (diff)
Add a createStandaloneNode method which creates a Node running a composite outside of any domain
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@981495 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/NodeFactory.java60
1 files changed, 26 insertions, 34 deletions
diff --git a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/NodeFactory.java b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/NodeFactory.java
index cafa772a25..9c8219564e 100644
--- a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/NodeFactory.java
+++ b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/node2/NodeFactory.java
@@ -28,6 +28,7 @@ import org.apache.tuscany.sca.core.FactoryExtensionPoint;
import org.apache.tuscany.sca.core.ModuleActivatorExtensionPoint;
import org.apache.tuscany.sca.core.UtilityExtensionPoint;
import org.apache.tuscany.sca.core.assembly.RuntimeAssemblyFactory;
+import org.apache.tuscany.sca.core.assembly.impl.EndpointRegistryImpl;
import org.apache.tuscany.sca.deployment.Deployer;
import org.apache.tuscany.sca.node2.impl.NodeImpl;
import org.apache.tuscany.sca.runtime.CompositeActivator;
@@ -44,37 +45,40 @@ public class NodeFactory {
private ExtensibleDomainRegistryFactory domainRegistryFactory;
private RuntimeAssemblyFactory assemblyFactory;
+ public static NodeFactory newInstance() {
+ return new NodeFactory(null);
+ }
+ public static NodeFactory newInstance(Properties config) {
+ return new NodeFactory(config);
+ }
+
/**
- * A helper method to simplify creating a Node with an installed contributions
- * @param compositeURI URI of a composite to run relative to the first contribution
- * if compositeURI is null then all deployable composites in the first contribution will be run
- * @param contributionURLs URLs to contributions to install
+ * A helper method to simplify creating a standalone Node
+ * @param compositeURI URI within the contribution of a composite to run
+ * if compositeURI is null then all deployable composites in the contribution will be run
+ * @param contributionURL URL of the contribution
+ * @param dependentContributionURLs optional URLs of dependent contributions
* @return a Node with installed contributions
*/
- public static Node createNode(String compositeURI, String... contributionURLs) {
+ public static Node createStandaloneNode(String compositeURI, String contributionURL, String... dependentContributionURLs) {
try {
-
- Node node = newInstance().createOneoffNode();
- String uri = "";
- for (int i=contributionURLs.length-1; i>-1; i--) {
- boolean runDeployables = (i==0) && (compositeURI == null);
- int lastDot = contributionURLs[i].lastIndexOf('.');
- int lastSep = contributionURLs[i].lastIndexOf("/");
- if (lastDot > -1 && lastSep > -1 && lastDot > lastSep) {
- uri = contributionURLs[i].substring(lastSep+1, lastDot);
- } else {
- uri = contributionURLs[i];
- }
+ NodeFactory nodeFactory = newInstance();
+ EndpointRegistry endpointRegistry = new EndpointRegistryImpl(nodeFactory.extensionPointRegistry, null, null);
+ NodeImpl node = new NodeImpl("default", nodeFactory.deployer, nodeFactory.compositeActivator, endpointRegistry, nodeFactory.extensionPointRegistry, nodeFactory);
- node.installContribution(uri, contributionURLs[i], null, null, runDeployables);
+ for (int i=dependentContributionURLs.length-1; i>-1; i--) {
+ node.installContribution(null, dependentContributionURLs[i], null, null, false);
}
+
+ String curi = node.installContribution(null, contributionURL, null, null, compositeURI == null);
if (compositeURI != null) {
- if (uri.endsWith("/")) {
- uri = uri + compositeURI;
+ if (curi.endsWith("/")) {
+ curi = curi + compositeURI;
} else {
- uri = uri + "/" + compositeURI;
+ curi = curi + "/" + compositeURI;
}
- node.addToDomainLevelComposite(uri);
+ // TODO: change addToDomainLevelComposite to take curi, compositeURI
+ node.addToDomainLevelComposite(curi);
}
return node;
@@ -83,13 +87,6 @@ public class NodeFactory {
}
}
- public static NodeFactory newInstance() {
- return new NodeFactory(null);
- }
- public static NodeFactory newInstance(Properties config) {
- return new NodeFactory(config);
- }
-
protected NodeFactory(Properties config) {
init(config);
}
@@ -100,11 +97,6 @@ public class NodeFactory {
return new NodeImpl(domainName, deployer, compositeActivator, endpointRegistry, extensionPointRegistry, null);
}
- protected Node createOneoffNode() {
- EndpointRegistry endpointRegistry = domainRegistryFactory.getEndpointRegistry("default", "default");
- return new NodeImpl("default", deployer, compositeActivator, endpointRegistry, extensionPointRegistry, this);
- }
-
public void stop() {
deployer.stop();
extensionPointRegistry.stop();