diff options
author | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-13 01:42:27 +0000 |
---|---|---|
committer | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-13 01:42:27 +0000 |
commit | 3c7c4a749baafcf375f4785a7668d3a25c9063e3 (patch) | |
tree | a66b8b031c5dc6c7744f44b44b6bcd371bd0b8df /branches/sca-java-1.x/modules/node-api/src/main | |
parent | eb03ff672236cddf65533f39b83ddd5e2984a2bb (diff) |
Moving 1.x trunk
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@835700 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-java-1.x/modules/node-api/src/main')
6 files changed, 0 insertions, 611 deletions
diff --git a/branches/sca-java-1.x/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCAClient.java b/branches/sca-java-1.x/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCAClient.java deleted file mode 100644 index f390e8881e..0000000000 --- a/branches/sca-java-1.x/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCAClient.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.osoa.sca.CallableReference; -import org.osoa.sca.ServiceReference; - - -/** - * Provides client access to the services in a domain. - * - * @version $Rev$ $Date$ - */ -public interface SCAClient { - - /** - * Cast a type-safe reference to a CallahbleReference. 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/branches/sca-java-1.x/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCAContribution.java b/branches/sca-java-1.x/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCAContribution.java deleted file mode 100644 index de7f352122..0000000000 --- a/branches/sca-java-1.x/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCAContribution.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 SCAContribution { - 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 SCAContribution(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/branches/sca-java-1.x/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANode.java b/branches/sca-java-1.x/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANode.java deleted file mode 100644 index fea749a57c..0000000000 --- a/branches/sca-java-1.x/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANode.java +++ /dev/null @@ -1,42 +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 SCANode { - - /** - * Start the composite loaded in the node. - */ - void start(); - - /** - * Stop the composite loaded in the node. - */ - void stop(); - -} diff --git a/branches/sca-java-1.x/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANode2.java b/branches/sca-java-1.x/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANode2.java deleted file mode 100644 index a1d4ddb2b1..0000000000 --- a/branches/sca-java-1.x/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANode2.java +++ /dev/null @@ -1,33 +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$ - * @deprecated Use SCANode instead - */ -@Deprecated -public interface SCANode2 extends SCANode { -} diff --git a/branches/sca-java-1.x/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANode2Factory.java b/branches/sca-java-1.x/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANode2Factory.java deleted file mode 100644 index 2b0dbc88eb..0000000000 --- a/branches/sca-java-1.x/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANode2Factory.java +++ /dev/null @@ -1,203 +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.osoa.sca.CallableReference; -import org.osoa.sca.ServiceReference; -import org.osoa.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$ - * @deprecated Use SCANodeFactory - */ -@Deprecated -public abstract class SCANode2Factory { - - public static class NodeProxy implements SCANode2, SCAClient { - 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); - } - } - - 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 SCANode2Factory newInstance() { - SCANode2Factory 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", true, classLoader); - Object instance = discoveryClass.getMethod("getInstance").invoke(null); - Class<?> factoryImplClass = - (Class<?>)discoveryClass.getMethod("loadFirstServiceClass", Class.class) - .invoke(instance, SCANode2Factory.class); - if (factoryImplClass != null) { - scaNodeFactory = (SCANode2Factory)factoryImplClass.newInstance(); - return scaNodeFactory; - } - } catch (ClassNotFoundException e) { - // Ignore - } - - // Fail back to default impl - String className = "org.apache.tuscany.sca.node.impl.Node2FactoryImpl"; - - Class<?> cls = Class.forName(className, true, classLoader); - scaNodeFactory = (SCANode2Factory)cls.newInstance(); - return scaNodeFactory; - - } catch (Exception e) { - throw new ServiceRuntimeException(e); - } - } - - /** - * Create a SCA node based on the discovery of the contribution on the classpath for the - * given classloader. This method should be treated a convinient shortcut with the following - * assumptions: - * <ul> - * <li>This is a standalone application and there is a deployable composite file on the classpath. - * <li>There is only one contribution which contains the deployable composite file physically in its packaging hierarchy. - * </ul> - * @param compositeURI The URI of the composite file relative to the root of the enclosing contribution - * @param classLoader The ClassLoader used to load the composite file as a resource. If the value is null, - * then thread context classloader will be used - * @return A newly created SCA node - */ - public abstract SCANode2 createSCANodeFromClassLoader(String compositeURI, ClassLoader classLoader); - - /** - * 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 SCANode2 createSCANodeFromURL(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 SCANode2 createSCANode(String compositeURI, SCAContribution... 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 SCANode2 createSCANode(String compositeURI, - String compositeContent, - SCAContribution... contributions); - -} diff --git a/branches/sca-java-1.x/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANodeFactory.java b/branches/sca-java-1.x/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANodeFactory.java deleted file mode 100644 index e60d8238d3..0000000000 --- a/branches/sca-java-1.x/modules/node-api/src/main/java/org/apache/tuscany/sca/node/SCANodeFactory.java +++ /dev/null @@ -1,208 +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.osoa.sca.CallableReference; -import org.osoa.sca.ServiceReference; -import org.osoa.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 SCANodeFactory { - - public static class NodeProxy implements SCANode, SCAClient { - 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); - } - } - - 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 SCANodeFactory newInstance() { - SCANodeFactory 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); - Class<?> factoryImplClass = - (Class<?>)discoveryClass.getMethod("loadFirstServiceClass", Class.class) - .invoke(instance, SCANodeFactory.class); - if (factoryImplClass != null) { - scaNodeFactory = (SCANodeFactory)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 = (SCANodeFactory)cls.newInstance(); - return scaNodeFactory; - - } catch (Exception e) { - throw new ServiceRuntimeException(e); - } - } - - /** - * Create a SCA node based on the discovery of the contribution on the classpath. - * - * @return a new SCA node. - */ - public abstract SCANode createSCANode(); - - /** - * Create a SCA node based on the discovery of the contribution on the classpath for the - * given classloader. This method should be treated a convinient shortcut with the following - * assumptions: - * <ul> - * <li>This is a standalone application and there is a deployable composite file on the classpath. - * <li>There is only one contribution which contains the deployable composite file physically in its packaging hierarchy. - * </ul> - * @param compositeURI The URI of the composite file relative to the root of the enclosing contribution - * @param classLoader The ClassLoader used to load the composite file as a resource. If the value is null, - * then thread context classloader will be used - * @return A newly created SCA node - */ - public abstract SCANode createSCANodeFromClassLoader(String compositeURI, ClassLoader classLoader); - - /** - * 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 SCANode createSCANodeFromURL(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 SCANode createSCANode(String compositeURI, SCAContribution... 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 SCANode createSCANode(String compositeURI, - String compositeContent, - SCAContribution... contributions); - -} |