summaryrefslogtreecommitdiffstats
path: root/branches/sca-equinox/modules/implementation-node-runtime/src/main/java/org/apache/tuscany/sca
diff options
context:
space:
mode:
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;