diff options
Diffstat (limited to '')
-rw-r--r-- | branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Client.java (renamed from branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCAClient.java) | 2 | ||||
-rw-r--r-- | branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Contribution.java (renamed from branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCAContribution.java) | 4 | ||||
-rw-r--r-- | branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/ContributionLocationHelper.java (renamed from branches/sca-equinox/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/test/extension/TestImplementationFactory.java) | 24 | ||||
-rw-r--r-- | branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java (renamed from branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANode.java) | 7 | ||||
-rw-r--r-- | branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java (renamed from branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANodeFactory.java) | 30 |
5 files changed, 46 insertions, 21 deletions
diff --git a/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCAClient.java b/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Client.java index f390e8881e..8ca5262eff 100644 --- a/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCAClient.java +++ b/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Client.java @@ -28,7 +28,7 @@ import org.osoa.sca.ServiceReference; * * @version $Rev$ $Date$ */ -public interface SCAClient { +public interface Client { /** * Cast a type-safe reference to a CallahbleReference. Converts a type-safe diff --git a/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCAContribution.java b/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Contribution.java index de7f352122..f69e18dc63 100644 --- a/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCAContribution.java +++ b/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Contribution.java @@ -21,7 +21,7 @@ package org.apache.tuscany.sca.node; /** * Represents an SCA contribution uri + location. */ -public final class SCAContribution { +public final class Contribution { private String uri; private String location; @@ -31,7 +31,7 @@ public final class SCAContribution { * @param uri The URI that uniquely identifies the contribution in the SCA domain * @param location The URL of the contribution archive */ - public SCAContribution(String uri, String location) { + public Contribution(String uri, String location) { this.uri = uri; this.location = location; } diff --git a/branches/sca-equinox/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/test/extension/TestImplementationFactory.java b/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/ContributionLocationHelper.java index 9200d850bb..74ebe556bc 100644 --- a/branches/sca-equinox/modules/host-embedded/src/test/java/org/apache/tuscany/sca/host/embedded/test/extension/TestImplementationFactory.java +++ b/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/ContributionLocationHelper.java @@ -17,21 +17,33 @@ * under the License. */ -package org.apache.tuscany.sca.host.embedded.test.extension; +package org.apache.tuscany.sca.node; +import java.net.URL; +import java.security.AccessController; +import java.security.PrivilegedAction; /** - * A factory for the test implementation model. + * ContributionLocationHelper * - * @version $Rev$ $Date$ + * @version $Rev: $ $Date: $ */ -public interface TestImplementationFactory { +public class ContributionLocationHelper { /** - * Creates a new test implementation. + * Returns the location of the SCA contribution containing the given class. * + * @param anchorClass * @return */ - TestImplementation createTestImplementation(); + public static String getContributionLocation(final Class<?> anchorClass) { + URL url = AccessController.doPrivileged(new PrivilegedAction<URL>() { + public URL run() { + return anchorClass.getProtectionDomain().getCodeSource().getLocation(); + } + }); + String uri = url.toString(); + return uri; + } } diff --git a/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANode.java b/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java index fea749a57c..3f4998bcc9 100644 --- a/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANode.java +++ b/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java @@ -27,7 +27,7 @@ package org.apache.tuscany.sca.node; * * @version $Rev$ $Date$ */ -public interface SCANode { +public interface Node extends Client { /** * Start the composite loaded in the node. @@ -38,5 +38,10 @@ public interface SCANode { * Stop the composite loaded in the node. */ void stop(); + + /** + * Destroy the node. + */ + void destroy(); } diff --git a/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANodeFactory.java b/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java index bca649dbae..a9f75fc8be 100644 --- a/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANodeFactory.java +++ b/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java @@ -31,9 +31,9 @@ import org.osoa.sca.ServiceRuntimeException; * * @version $Rev$ $Date$ */ -public abstract class SCANodeFactory { +public abstract class NodeFactory { - public static class NodeProxy implements SCANode, SCAClient { + public static class NodeProxy implements Node, Client { private Object node; private NodeProxy(Object node) { @@ -95,6 +95,14 @@ public abstract class SCANodeFactory { } } + public void destroy() { + try { + node.getClass().getMethod("destroy").invoke(node); + } catch (Throwable e) { + handleException(e); + } + } + private static void handleException(Throwable ex) { if (ex instanceof InvocationTargetException) { ex = ((InvocationTargetException)ex).getTargetException(); @@ -116,8 +124,8 @@ public abstract class SCANodeFactory { * * @return a new SCA node factory */ - public static SCANodeFactory newInstance() { - SCANodeFactory scaNodeFactory = null; + public static NodeFactory newInstance() { + NodeFactory scaNodeFactory = null; try { // final ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); @@ -125,10 +133,10 @@ public abstract class SCANodeFactory { try { Class<?> discoveryClass = Class.forName("org.apache.tuscany.sca.extensibility.ServiceDiscovery"); Object instance = discoveryClass.getMethod("getInstance").invoke(null); - Object factoryDeclaration = discoveryClass.getMethod("getFirstServiceDeclaration", String.class).invoke(instance, SCANodeFactory.class.getName()); + Object factoryDeclaration = discoveryClass.getMethod("getFirstServiceDeclaration", String.class).invoke(instance, NodeFactory.class.getName()); if (factoryDeclaration != null) { Class<?> factoryImplClass = (Class<?>)factoryDeclaration.getClass().getMethod("loadClass").invoke(factoryDeclaration); - scaNodeFactory = (SCANodeFactory)factoryImplClass.newInstance(); + scaNodeFactory = (NodeFactory)factoryImplClass.newInstance(); return scaNodeFactory; } } catch (ClassNotFoundException e) { @@ -139,7 +147,7 @@ public abstract class SCANodeFactory { String className = "org.apache.tuscany.sca.node.impl.NodeFactoryImpl"; Class<?> cls = Class.forName(className); - scaNodeFactory = (SCANodeFactory)cls.newInstance(); + scaNodeFactory = (NodeFactory)cls.newInstance(); return scaNodeFactory; } catch (Exception e) { @@ -155,7 +163,7 @@ public abstract class SCANodeFactory { * * @return a new SCA node. */ - public abstract SCANode createSCANodeFromURL(String configurationURL); + public abstract Node createNode(String configurationURL); /** * Creates a new SCA node. @@ -167,7 +175,7 @@ public abstract class SCANodeFactory { * * @return a new SCA node. */ - public abstract SCANode createSCANode(String compositeURI, SCAContribution... contributions); + public abstract Node createNode(String compositeURI, Contribution... contributions); /** * Creates a new SCA node. @@ -177,8 +185,8 @@ public abstract class SCANodeFactory { * @param contributions the URI of the contributions that provides the composites and related artifacts * @return a new SCA node. */ - public abstract SCANode createSCANode(String compositeURI, + public abstract Node createNode(String compositeURI, String compositeContent, - SCAContribution... contributions); + Contribution... contributions); } |