summaryrefslogtreecommitdiffstats
path: root/tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node
diff options
context:
space:
mode:
Diffstat (limited to 'tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node')
-rw-r--r--tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Client.java71
-rw-r--r--tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Contribution.java54
-rw-r--r--tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/ContributionLocationHelper.java101
-rw-r--r--tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java47
-rw-r--r--tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java199
-rw-r--r--tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeMain2.java56
6 files changed, 0 insertions, 528 deletions
diff --git a/tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Client.java b/tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Client.java
deleted file mode 100644
index 84c1e09126..0000000000
--- a/tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Client.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.node;
-
-import org.oasisopen.sca.CallableReference;
-import org.oasisopen.sca.ServiceReference;
-
-
-/**
- * Provides client access to the services in a domain.
- *
- * @version $Rev$ $Date$
- */
-public interface Client {
-
- /**
- * Cast a type-safe reference to a CallableReference. Converts a type-safe
- * reference to an equivalent CallableReference; if the target refers to a
- * service then a ServiceReference will be returned, if the target refers to
- * a callback then a CallableReference will be returned.
- *
- * @param target a reference proxy provided by the SCA runtime
- * @param <B> the Java type of the business interface for the reference
- * @param <R> the type of reference to be returned
- * @return a CallableReference equivalent for the proxy
- * @throws IllegalArgumentException if the supplied instance is not a
- * reference supplied by the SCA runtime
- */
- <B, R extends CallableReference<B>> R cast(B target) throws IllegalArgumentException;
-
- /**
- * Returns a proxy for a service provided by a component in the SCA domain.
- *
- * @param businessInterface the interface that will be used to invoke the
- * service
- * @param serviceName the name of the service
- * @param <B> the Java type of the business interface for the service
- * @return an object that implements the business interface
- */
- <B> B getService(Class<B> businessInterface, String serviceName);
-
- /**
- * Returns a ServiceReference for a service provided by a component in the
- * SCA domain.
- *
- * @param businessInterface the interface that will be used to invoke the
- * service
- * @param serviceName the name of the service
- * @param <B> the Java type of the business interface for the service
- * @return a ServiceReference for the designated service
- */
- <B> ServiceReference<B> getServiceReference(Class<B> businessInterface, String serviceName);
-
-} \ No newline at end of file
diff --git a/tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Contribution.java b/tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Contribution.java
deleted file mode 100644
index f69e18dc63..0000000000
--- a/tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Contribution.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tuscany.sca.node;
-
-/**
- * Represents an SCA contribution uri + location.
- */
-public final class Contribution {
- private String uri;
- private String location;
-
- /**
- * Constructs a new SCA contribution.
- *
- * @param uri The URI that uniquely identifies the contribution in the SCA domain
- * @param location The URL of the contribution archive
- */
- public Contribution(String uri, String location) {
- this.uri = uri;
- this.location = location;
- }
-
- /**
- * Get the URI of the contribution
- * @return The URI that uniquely identifies the contribution in the SCA domain
- */
- public String getURI() {
- return uri;
- }
-
- /**
- * The location of the contribution
- * @return The URL of the contribution archive
- */
- public String getLocation() {
- return location;
- }
-} \ No newline at end of file
diff --git a/tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/ContributionLocationHelper.java b/tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/ContributionLocationHelper.java
deleted file mode 100644
index 96a25dfa63..0000000000
--- a/tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/ContributionLocationHelper.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.node;
-
-import java.net.URL;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-
-/**
- * ContributionLocationHelper
- *
- * @version $Rev$ $Date$
- */
-public class ContributionLocationHelper {
-
- /**
- * Returns the location of the SCA contribution containing the given class.
- *
- * @param anchorClass
- * @return
- */
- 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;
- }
-
- /**
- * Find the contribution location by seraching a resource on the classpath
- * @param resourceName
- * @return
- */
- public static String getContributionLocation(String resourceName) {
- return getContributionLocation(null, resourceName);
-
- }
-
- /**
- * Find the contribution location by seraching a resource using the given classloader
- * @param classLoader
- * @param resourceName
- * @return
- */
- public static String getContributionLocation(ClassLoader classLoader, String resourceName) {
- if (classLoader == null) {
- classLoader = AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
- public ClassLoader run() {
- return Thread.currentThread().getContextClassLoader();
- }
- });
- }
- URL resourceURL = getResource(classLoader, resourceName);
- if (resourceURL == null) {
- return null;
- }
- String location = null;
- // "jar:file://....../something.jar!/a/b/c/app.composite"
- String url = resourceURL.toExternalForm();
- String protocol = resourceURL.getProtocol();
- if ("file".equals(protocol)) {
- // directory contribution
- if (url.endsWith(resourceName)) {
- location = url.substring(0, url.lastIndexOf(resourceName));
- }
- } else if ("jar".equals(protocol) || "wsjar".equals(protocol) || "zip".equals(protocol)) {
- // jar contribution
- location = url.substring(protocol.length() + 1, url.lastIndexOf("!/"));
- }
- return location;
- }
-
- private static URL getResource(final ClassLoader classLoader, final String compositeURI) {
- return AccessController.doPrivileged(new PrivilegedAction<URL>() {
- public URL run() {
- return classLoader.getResource(compositeURI);
- }
- });
- }
-
-}
diff --git a/tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java b/tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java
deleted file mode 100644
index 3f4998bcc9..0000000000
--- a/tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.node;
-
-
-
-/**
- * Represents an SCA processing node.
- * A node is loaded with an SCA composites. It can start and stop that composite.
- *
- * @version $Rev$ $Date$
- */
-public interface Node extends Client {
-
- /**
- * Start the composite loaded in the node.
- */
- void start();
-
- /**
- * Stop the composite loaded in the node.
- */
- void stop();
-
- /**
- * Destroy the node.
- */
- void destroy();
-
-}
diff --git a/tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java b/tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java
deleted file mode 100644
index 426c32bd49..0000000000
--- a/tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.node;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.oasisopen.sca.CallableReference;
-import org.oasisopen.sca.ServiceReference;
-import org.oasisopen.sca.ServiceRuntimeException;
-
-/**
- * A factory for SCA processing nodes. An SCA processing node can be loaded
- * with an SCA composite and the SCA contributions required by the composite.
- *
- * @version $Rev$ $Date$
- */
-public abstract class NodeFactory {
-
- public static class NodeProxy implements Node, Client {
- private Object node;
-
- private NodeProxy(Object node) {
- super();
- this.node = node;
- }
-
- public static <T> T createProxy(Class<T> type, Object node) {
- try {
- return type.getDeclaredConstructor(Object.class).newInstance(node);
- } catch (Exception e) {
- throw new IllegalArgumentException(e);
- }
- }
-
- public <B, R extends CallableReference<B>> R cast(B target) throws IllegalArgumentException {
- try {
- return (R)node.getClass().getMethod("cast", Object.class).invoke(node, target);
- } catch (Throwable e) {
- handleException(e);
- return null;
- }
- }
-
- public <B> B getService(Class<B> businessInterface, String serviceName) {
- try {
- return (B)node.getClass().getMethod("getService", Class.class, String.class).invoke(node,
- businessInterface,
- serviceName);
- } catch (Throwable e) {
- handleException(e);
- return null;
- }
- }
-
- public <B> ServiceReference<B> getServiceReference(Class<B> businessInterface, String serviceName) {
- try {
- return (ServiceReference<B>)node.getClass().getMethod("getServiceReference", Class.class, String.class)
- .invoke(node, businessInterface, serviceName);
- } catch (Throwable e) {
- handleException(e);
- return null;
- }
- }
-
- public void start() {
- try {
- node.getClass().getMethod("start").invoke(node);
- } catch (Throwable e) {
- handleException(e);
- }
- }
-
- public void stop() {
- try {
- node.getClass().getMethod("stop").invoke(node);
- } catch (Throwable e) {
- handleException(e);
- }
- }
-
- 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();
- }
- if (ex instanceof RuntimeException) {
- throw (RuntimeException)ex;
- }
- if (ex instanceof Error) {
- throw (Error)ex;
- } else {
- throw new RuntimeException(ex);
- }
- }
-
- }
-
- /**
- * Returns a new SCA node factory instance.
- *
- * @return a new SCA node factory
- */
- public static NodeFactory newInstance() {
- NodeFactory scaNodeFactory = null;
-
- try {
- // final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
- // Use reflection APIs to call ServiceDiscovery to avoid hard dependency to tuscany-extensibility
- 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, NodeFactory.class.getName());
- if (factoryDeclaration != null) {
- Class<?> factoryImplClass = (Class<?>)factoryDeclaration.getClass().getMethod("loadClass").invoke(factoryDeclaration);
- scaNodeFactory = (NodeFactory)factoryImplClass.newInstance();
- return scaNodeFactory;
- }
- } catch (ClassNotFoundException e) {
- // Ignore
- }
-
- // Fail back to default impl
- String className = "org.apache.tuscany.sca.node.impl.NodeFactoryImpl";
-
- Class<?> cls = Class.forName(className);
- scaNodeFactory = (NodeFactory)cls.newInstance();
- return scaNodeFactory;
-
- } catch (Exception e) {
- throw new ServiceRuntimeException(e);
- }
- }
-
- /**
- * Creates a new SCA node using defaults for the contribution location and runnable composite
- *
- * @return a new SCA node.
- */
- public abstract Node createNode();
-
- /**
- * Creates a new SCA node from the configuration URL
- *
- * @param configurationURL the URL of the node configuration which is the ATOM feed
- * that contains the URI of the composite and a collection of URLs for the contributions
- *
- * @return a new SCA node.
- */
- public abstract Node createNode(String configurationURL);
-
- /**
- * Creates a new SCA node.
- *
- * @param compositeURI the URI of the composite to use
- * @param contributions the URI of the contributions that provides the composites and related
- * artifacts. If the list is empty, then we will use the thread context classloader to discover
- * the contribution on the classpath
- *
- * @return a new SCA node.
- */
- public abstract Node createNode(String compositeURI, Contribution... contributions);
-
- /**
- * Creates a new SCA node.
- *
- * @param compositeURI the URI of the composite to use
- * @param compositeContent the XML content of the composite to use
- * @param contributions the URI of the contributions that provides the composites and related artifacts
- * @return a new SCA node.
- */
- public abstract Node createNode(String compositeURI,
- String compositeContent,
- Contribution... contributions);
-
-}
diff --git a/tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeMain2.java b/tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeMain2.java
deleted file mode 100644
index 6c26db5a25..0000000000
--- a/tags/java/sca/2.0-M2/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeMain2.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tuscany.sca.node;
-
-import java.io.File;
-
-public class NodeMain2 {
-
- /**
- * Start an SCA node
- * @param args a list of contribution jars for the node to run
- */
- public static void main(String[] args) throws Exception {
-
- Contribution[] contributions = new Contribution[args.length];
- for (int i=0; i<args.length; i++) {
- File f = new File(args[i]);
- if (!f.exists()) {
- System.err.println("contribution not found: " + f);
- System.exit(1);
- }
- contributions[i] = new Contribution(f.toURI().toString(), f.toURI().toString());
- }
-
- Node node = NodeFactory.newInstance().createNode(null, contributions);
- node.start();
-
- System.out.println("Hit enter to stop node...");
- if (System.in.read() == -1) {
- // no sysin so wait for ever letting caller do the terminate
- Object lock = new Object();
- synchronized(lock) {
- lock.wait();
- }
- }
-
- node.stop();
- }
-}