summaryrefslogtreecommitdiffstats
path: root/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node
diff options
context:
space:
mode:
authorjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2008-10-09 06:33:54 +0000
committerjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2008-10-09 06:33:54 +0000
commitefe3363a815a777ecd283928900404dea84a7e1f (patch)
tree42522fd01e6af981f8ff94663d911d56744154d5 /branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node
parentaacabe1650e380595a8d701123394d791656d17d (diff)
Work in progress. Fixed implementation of NodeImpl, now working without dependencies on implementations from other bundles (except RuntimeAssemblyFactory, which will need to be cleaned up too). Started to remove dependencies on host-embedded and port code to NodeFactory and Node, as an interim step to bring them up, before porting them to the OSGi-enabled node launcher.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@703068 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r--branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationDaemonBootstrap.java42
-rw-r--r--branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationLauncherBootstrap.java64
-rw-r--r--branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/webapp/NodeWebAppServletHost.java16
3 files changed, 73 insertions, 49 deletions
diff --git a/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationDaemonBootstrap.java b/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationDaemonBootstrap.java
index 8de2a3a3f9..48abc21520 100644
--- a/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationDaemonBootstrap.java
+++ b/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationDaemonBootstrap.java
@@ -19,8 +19,12 @@
package org.apache.tuscany.sca.implementation.node.launcher;
-import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.node.SCANodeFactory;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.osoa.sca.CallableReference;
+import org.osoa.sca.ServiceReference;
/**
* Bootstrap class for the SCA node daemon.
@@ -28,15 +32,15 @@ import org.apache.tuscany.sca.node.SCANodeFactory;
* @version $Rev$ $Date$
*/
public class NodeImplementationDaemonBootstrap {
- private SCANode node;
+ private Node node;
/**
* A node wrappering an instance of a node daemon.
*/
- public static class NodeFacade implements SCANode {
+ public static class NodeFacade implements Node {
private ClassLoader threadContextClassLoader;
private ClassLoader runtimeClassLoader;
- private SCANode daemon;
+ private Node daemon;
private NodeFacade() {
runtimeClassLoader = Thread.currentThread().getContextClassLoader();
@@ -47,8 +51,9 @@ public class NodeImplementationDaemonBootstrap {
boolean started = false;
try {
Thread.currentThread().setContextClassLoader(runtimeClassLoader);
- SCANodeFactory factory = SCANodeFactory.newInstance();
- daemon = factory.createSCANodeFromClassLoader("NodeDaemon.composite", threadContextClassLoader);
+ NodeFactory factory = NodeFactory.newInstance();
+ String contribution = ContributionLocationHelper.getContributionLocation(getClass());
+ daemon = factory.createNode("NodeDaemon.composite", new Contribution("node-runtime", contribution));
started = true;
} finally {
if (!started) {
@@ -65,6 +70,27 @@ public class NodeImplementationDaemonBootstrap {
Thread.currentThread().setContextClassLoader(threadContextClassLoader);
}
}
+
+ public void destroy() {
+ try {
+ Thread.currentThread().setContextClassLoader(runtimeClassLoader);
+ daemon.destroy();
+ } finally {
+ Thread.currentThread().setContextClassLoader(threadContextClassLoader);
+ }
+ }
+
+ public <B, R extends CallableReference<B>> R cast(B target) throws IllegalArgumentException {
+ throw new UnsupportedOperationException();
+ }
+
+ public <B> B getService(Class<B> businessInterface, String serviceName) {
+ throw new UnsupportedOperationException();
+ }
+
+ public <B> ServiceReference<B> getServiceReference(Class<B> businessInterface, String serviceName) {
+ throw new UnsupportedOperationException();
+ }
}
/**
@@ -78,7 +104,7 @@ public class NodeImplementationDaemonBootstrap {
* Returns the node representing the daemon.
* @return
*/
- public SCANode getNode() {
+ public Node getNode() {
return node;
}
diff --git a/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationLauncherBootstrap.java b/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationLauncherBootstrap.java
index 0264574fb9..8552c3434d 100644
--- a/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationLauncherBootstrap.java
+++ b/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/launcher/NodeImplementationLauncherBootstrap.java
@@ -19,10 +19,10 @@
package org.apache.tuscany.sca.implementation.node.launcher;
-import org.apache.tuscany.sca.node.SCAClient;
-import org.apache.tuscany.sca.node.SCAContribution;
-import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.node.SCANodeFactory;
+import org.apache.tuscany.sca.node.Client;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
import org.osoa.sca.CallableReference;
import org.osoa.sca.ServiceReference;
@@ -33,17 +33,17 @@ import org.osoa.sca.ServiceReference;
*/
public class NodeImplementationLauncherBootstrap {
- private SCANode node;
+ private Node node;
/**
* A node facade.
*/
- public static class NodeFacade implements SCANode, SCAClient {
+ public static class NodeFacade implements Node, Client {
private ClassLoader threadContextClassLoader;
private ClassLoader runtimeClassLoader;
- private SCANode delegate;
+ private Node delegate;
- private NodeFacade(SCANode delegate) {
+ private NodeFacade(Node delegate) {
runtimeClassLoader = Thread.currentThread().getContextClassLoader();
this.delegate = delegate;
}
@@ -71,16 +71,25 @@ public class NodeImplementationLauncherBootstrap {
}
}
+ public void destroy() {
+ try {
+ Thread.currentThread().setContextClassLoader(runtimeClassLoader);
+ delegate.destroy();
+ } finally {
+ Thread.currentThread().setContextClassLoader(threadContextClassLoader);
+ }
+ }
+
public <B, R extends CallableReference<B>> R cast(B target) throws IllegalArgumentException {
- return (R)((SCAClient)delegate).cast(target);
+ return (R)((Client)delegate).cast(target);
}
public <B> B getService(Class<B> businessInterface, String serviceName) {
- return (B)((SCAClient)delegate).getService(businessInterface, serviceName);
+ return (B)((Client)delegate).getService(businessInterface, serviceName);
}
public <B> ServiceReference<B> getServiceReference(Class<B> businessInterface, String referenceName) {
- return (ServiceReference<B>)((SCAClient)delegate).getServiceReference(businessInterface, referenceName);
+ return (ServiceReference<B>)((Client)delegate).getServiceReference(businessInterface, referenceName);
}
}
@@ -90,19 +99,8 @@ public class NodeImplementationLauncherBootstrap {
* @param configurationURI
*/
public NodeImplementationLauncherBootstrap(String configurationURI) throws Exception {
- SCANodeFactory nodeFactory = SCANodeFactory.newInstance();
- node = new NodeFacade(nodeFactory.createSCANodeFromURL(configurationURI));
- }
-
- /**
- * Bootstrap a new SCA node.
- *
- * @param configurationURI
- * @param contributionClassLoader
- */
- public NodeImplementationLauncherBootstrap(String compositeURI, ClassLoader contributionClassLoader) throws Exception {
- SCANodeFactory nodeFactory = SCANodeFactory.newInstance();
- node = new NodeFacade(nodeFactory.createSCANodeFromClassLoader(compositeURI, contributionClassLoader));
+ NodeFactory nodeFactory = NodeFactory.newInstance();
+ node = new NodeFacade(nodeFactory.createNode(configurationURI));
}
/**
@@ -113,12 +111,12 @@ public class NodeImplementationLauncherBootstrap {
* @param locations
*/
public NodeImplementationLauncherBootstrap(String compositeURI, String[] uris, String[] locations) throws Exception {
- SCANodeFactory nodeFactory = SCANodeFactory.newInstance();
- SCAContribution[] contributions = new SCAContribution[uris.length];
+ NodeFactory nodeFactory = NodeFactory.newInstance();
+ Contribution[] contributions = new Contribution[uris.length];
for (int i = 0; i < uris.length; i++) {
- contributions[i] = new SCAContribution(uris[i], locations[i]);
+ contributions[i] = new Contribution(uris[i], locations[i]);
}
- node = new NodeFacade(nodeFactory.createSCANode(compositeURI, contributions));
+ node = new NodeFacade(nodeFactory.createNode(compositeURI, contributions));
}
/**
@@ -129,12 +127,12 @@ public class NodeImplementationLauncherBootstrap {
* @param locations
*/
public NodeImplementationLauncherBootstrap(String compositeURI, String compositeContent, String[] uris, String[] locations) throws Exception {
- SCANodeFactory nodeFactory = SCANodeFactory.newInstance();
- SCAContribution[] contributions = new SCAContribution[uris.length];
+ NodeFactory nodeFactory = NodeFactory.newInstance();
+ Contribution[] contributions = new Contribution[uris.length];
for (int i = 0; i < uris.length; i++) {
- contributions[i] = new SCAContribution(uris[i], locations[i]);
+ contributions[i] = new Contribution(uris[i], locations[i]);
}
- node = new NodeFacade(nodeFactory.createSCANode(compositeURI, compositeContent, contributions));
+ node = new NodeFacade(nodeFactory.createNode(compositeURI, compositeContent, contributions));
}
/**
@@ -142,7 +140,7 @@ public class NodeImplementationLauncherBootstrap {
*
* @return
*/
- public SCANode getNode() {
+ public Node getNode() {
return node;
}
diff --git a/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/webapp/NodeWebAppServletHost.java b/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/webapp/NodeWebAppServletHost.java
index 5a50f87d4c..43c91ac9af 100644
--- a/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/webapp/NodeWebAppServletHost.java
+++ b/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca/implementation/node/webapp/NodeWebAppServletHost.java
@@ -47,9 +47,9 @@ import org.apache.tuscany.sca.host.http.ServletHost;
import org.apache.tuscany.sca.host.http.ServletHostExtensionPoint;
import org.apache.tuscany.sca.host.http.ServletMappingException;
import org.apache.tuscany.sca.implementation.node.launcher.NodeImplementationLauncherUtil;
-import org.apache.tuscany.sca.node.SCAClient;
-import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.node.SCANodeFactory;
+import org.apache.tuscany.sca.node.Client;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
/**
* ServletHost implementation for use in a Webapp Node environment.
@@ -62,7 +62,7 @@ public class NodeWebAppServletHost implements ServletHost, Filter {
private static final NodeWebAppServletHost servletHost = new NodeWebAppServletHost();
private Map<String, Servlet> servlets = new HashMap<String, Servlet>();
- private SCANode node;
+ private Node node;
private String contextPath = "/";
private int defaultPort = 8080;
@@ -112,8 +112,8 @@ public class NodeWebAppServletHost implements ServletHost, Filter {
String nodeConfiguration = NodeImplementationLauncherUtil.nodeConfigurationURI(nodeName);
// Create the SCA node
- SCANodeFactory nodeFactory = SCANodeFactory.newInstance();
- node = nodeFactory.createSCANodeFromURL(nodeConfiguration);
+ NodeFactory nodeFactory = NodeFactory.newInstance();
+ node = nodeFactory.createNode(nodeConfiguration);
// Register the Servlet host
ServletHostExtensionPoint servletHosts = servletHosts(node);
@@ -121,7 +121,7 @@ public class NodeWebAppServletHost implements ServletHost, Filter {
servletHosts.addServletHost(servletHost);
// Save the node in the Servlet context
- servletContext.setAttribute(SCAClient.class.getName(), node);
+ servletContext.setAttribute(Client.class.getName(), node);
// Start the node
node.start();
@@ -350,7 +350,7 @@ public class NodeWebAppServletHost implements ServletHost, Filter {
*
* @return
*/
- private static ServletHostExtensionPoint servletHosts(SCANode node) {
+ private static ServletHostExtensionPoint servletHosts(Node node) {
//FIXME Need a clean way to get the extension point registry
// from the node
ExtensionPointRegistry registry;