diff options
Diffstat (limited to '')
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; |