summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/node-impl
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2011-09-19 22:55:37 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2011-09-19 22:55:37 +0000
commit9bd25321d03e2577f115597742f4c2c48ddcd9cc (patch)
tree492da9d9f7466bfe6082b5dc29d1bed57608debd /sca-java-2.x/trunk/modules/node-impl
parenteca8de9ef142245d65c69b97d10167849f9d56dd (diff)
Add the ablity to load the contributions/composite for a given node configuration without starting the node
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1172881 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/modules/node-impl')
-rw-r--r--sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java19
-rw-r--r--sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java86
2 files changed, 65 insertions, 40 deletions
diff --git a/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java b/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java
index 2d46a8659b..a97f40e943 100644
--- a/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java
+++ b/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java
@@ -73,6 +73,7 @@ import org.apache.tuscany.sca.node.configuration.DefaultNodeConfigurationFactory
import org.apache.tuscany.sca.node.configuration.DeploymentComposite;
import org.apache.tuscany.sca.node.configuration.NodeConfiguration;
import org.apache.tuscany.sca.node.configuration.NodeConfigurationFactory;
+import org.apache.tuscany.sca.node.extensibility.NodeExtension;
import org.apache.tuscany.sca.runtime.DomainRegistryFactory;
import org.apache.tuscany.sca.runtime.ExtensibleDomainRegistryFactory;
import org.apache.tuscany.sca.runtime.RuntimeProperties;
@@ -482,4 +483,22 @@ public class NodeFactoryImpl extends NodeFactory {
autoDestroy = b;
}
+ /**
+ * Create and load a node
+ * @param configuration
+ * @return The node
+ */
+ public NodeExtension loadNode(NodeConfiguration configuration) {
+ Node node = createNode(configuration);
+
+ try {
+ NodeImpl nodeImpl = ((NodeImpl) node);
+ nodeImpl.load();
+ return nodeImpl;
+ } catch (Throwable e) {
+ throw new ServiceRuntimeException(e);
+ }
+ }
+
+
}
diff --git a/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java b/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
index aae077b11c..eaffdac602 100644
--- a/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
+++ b/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
@@ -53,8 +53,8 @@ import org.apache.tuscany.sca.node.extensibility.NodeActivatorExtensionPoint;
import org.apache.tuscany.sca.node.extensibility.NodeExtension;
import org.apache.tuscany.sca.runtime.ActivationException;
import org.apache.tuscany.sca.runtime.CompositeActivator;
-import org.apache.tuscany.sca.runtime.DomainRegistryFactory;
import org.apache.tuscany.sca.runtime.DomainRegistry;
+import org.apache.tuscany.sca.runtime.DomainRegistryFactory;
import org.apache.tuscany.sca.runtime.ExtensibleDomainRegistryFactory;
import org.apache.tuscany.sca.runtime.RuntimeComponent;
import org.apache.tuscany.sca.runtime.RuntimeComponentService;
@@ -114,50 +114,29 @@ public class NodeImpl implements Node, NodeExtension {
public Node start() {
logger.log(nodeFactory.quietLogging? Level.FINE : Level.INFO, "Starting node: " + configuration.getURI() + " domain: " + configuration.getDomainURI());
- nodeFactory.init();
- nodeFactory.addNode(configuration, this);
- this.proxyFactory = nodeFactory.proxyFactory;
-
try {
- Monitor monitor = nodeFactory.monitorFactory.createMonitor();
- ProcessorContext context = new ProcessorContext(monitor);
-
- // Set up the thead context monitor
- Monitor tcm = nodeFactory.monitorFactory.setContextMonitor(monitor);
- try {
- // Use the lack of the contributions collection as an indicator for when the node
- // is being started for the first time. If it is the first time do all the work
- // to read the contributions and create the domain composite
- if (contributions == null) {
- contributions = nodeFactory.loadContributions(configuration, context);
- }
-
- if (domainComposite == null) {
-
- UtilityExtensionPoint utilities = nodeFactory.registry.getExtensionPoint(UtilityExtensionPoint.class);
- this.compositeActivator = utilities.getUtility(CompositeActivator.class);
+ load();
- domainComposite = nodeFactory.configureNode(configuration, contributions, context);
+ nodeFactory.addNode(configuration, this);
+ this.proxyFactory = nodeFactory.proxyFactory;
- DomainRegistryFactory domainRegistryFactory = ExtensibleDomainRegistryFactory.getInstance(nodeFactory.registry);
- DomainRegistry domainRegistry =
- domainRegistryFactory.getEndpointRegistry(configuration.getDomainRegistryURI(), configuration.getDomainURI());
+ // Set up the node context
+ UtilityExtensionPoint utilities = nodeFactory.registry.getExtensionPoint(UtilityExtensionPoint.class);
+ this.compositeActivator = utilities.getUtility(CompositeActivator.class);
- this.compositeContext =
- new CompositeContext(nodeFactory.registry,
- domainRegistry,
- domainComposite,
- configuration.getDomainURI(),
- configuration.getURI(),
- nodeFactory.getDeployer().getSystemDefinitions());
- // Pass down the context attributes
- compositeContext.getAttributes().putAll(configuration.getAttributes());
- }
+ DomainRegistryFactory domainRegistryFactory =
+ ExtensibleDomainRegistryFactory.getInstance(nodeFactory.registry);
+ DomainRegistry domainRegistry =
+ domainRegistryFactory.getEndpointRegistry(configuration.getDomainRegistryURI(),
+ configuration.getDomainURI());
- } finally {
- // Reset the thread context monitor
- nodeFactory.monitorFactory.setContextMonitor(tcm);
- }
+ this.compositeContext =
+ new CompositeContext(nodeFactory.registry, domainRegistry, domainComposite,
+ configuration.getDomainURI(), configuration.getURI(), nodeFactory
+ .getDeployer().getSystemDefinitions());
+ // Pass down the context attributes
+ compositeContext.getAttributes().putAll(configuration.getAttributes());
+
// Activate the composite
compositeActivator.activate(compositeContext, domainComposite);
@@ -197,6 +176,33 @@ public class NodeImpl implements Node, NodeExtension {
}
+ public void load() throws Throwable {
+ nodeFactory.init();
+
+ Monitor monitor = nodeFactory.monitorFactory.createMonitor();
+ ProcessorContext context = new ProcessorContext(monitor);
+
+ // Set up the thead context monitor
+ Monitor tcm = nodeFactory.monitorFactory.setContextMonitor(monitor);
+ try {
+ // Use the lack of the contributions collection as an indicator for when the node
+ // is being started for the first time. If it is the first time do all the work
+ // to read the contributions and create the domain composite
+ if (contributions == null) {
+ contributions = nodeFactory.loadContributions(configuration, context);
+ }
+
+ if (domainComposite == null) {
+ domainComposite = nodeFactory.configureNode(configuration, contributions, context);
+ }
+
+
+ } finally {
+ // Reset the thread context monitor
+ nodeFactory.monitorFactory.setContextMonitor(tcm);
+ }
+ }
+
public void stop() {
logger.log(nodeFactory.quietLogging? Level.FINE : Level.INFO, "Stopping node: " + configuration.getURI());