summaryrefslogtreecommitdiffstats
path: root/branches/sca-equinox/modules/node-api/src/main/java/org/apache/tuscany/sca
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/node-api/src/main/java/org/apache/tuscany/sca
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/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);
}