You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2006/08/29 12:47:27 UTC
svn commit: r438042 - in /incubator/tuscany/java/sca/bindings/binding.rmi:
./ src/main/java/org/apache/tuscany/binding/rmi/
src/main/java/org/apache/tuscany/binding/rmi/host/
src/main/resources/META-INF/sca/
src/test/java/org/apache/tuscany/binding/rmi/
Author: antelder
Date: Tue Aug 29 03:47:25 2006
New Revision: 438042
URL: http://svn.apache.org/viewvc?rev=438042&view=rev
Log:
TUSCANY-668, apply patches from Venkat
- Decision on moving RMIHost related classes to host-api project. See disccusion in http://www.mail-archive.com/tuscany-dev%40ws.apache.org/msg07077.html
- Removing these classes from the sca-spi project
- Abstraction of Exception classes as inheriting from Tuscany Exception classes
- Repackage of RMIHostImpl within the RMIBinding extension implementation
- Fixing of bug in RMIService.
Added:
incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/host/
incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/host/RMIHostImpl.java (with props)
Removed:
incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIHostImpl.java
Modified:
incubator/tuscany/java/sca/bindings/binding.rmi/pom.xml
incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingBuilder.java
incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIInvoker.java
incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReference.java
incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIService.java
incubator/tuscany/java/sca/bindings/binding.rmi/src/main/resources/META-INF/sca/default.scdl
incubator/tuscany/java/sca/bindings/binding.rmi/src/main/resources/META-INF/sca/rmi_extension.scdl
incubator/tuscany/java/sca/bindings/binding.rmi/src/test/java/org/apache/tuscany/binding/rmi/BindingTestCase.java
Modified: incubator/tuscany/java/sca/bindings/binding.rmi/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.rmi/pom.xml?rev=438042&r1=438041&r2=438042&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.rmi/pom.xml (original)
+++ incubator/tuscany/java/sca/bindings/binding.rmi/pom.xml Tue Aug 29 03:47:25 2006
@@ -50,6 +50,12 @@
</dependency>
<dependency>
<groupId>org.apache.tuscany</groupId>
+ <artifactId>host-api</artifactId>
+ <version>${sca.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tuscany</groupId>
<artifactId>test</artifactId>
<version>${sca.version}</version>
<scope>test</scope>
Modified: incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingBuilder.java?rev=438042&r1=438041&r2=438042&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingBuilder.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingBuilder.java Tue Aug 29 03:47:25 2006
@@ -18,16 +18,15 @@
import java.rmi.Remote;
-import org.osoa.sca.annotations.Constructor;
-
+import org.apache.tuscany.host.rmi.RMIHost;
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.extension.BindingBuilderExtension;
-import org.apache.tuscany.spi.host.RMIHost;
import org.apache.tuscany.spi.model.BoundReferenceDefinition;
import org.apache.tuscany.spi.model.BoundServiceDefinition;
+import org.osoa.sca.annotations.Constructor;
/**
* Builds a Service or Reference for an RMI binding.
Modified: incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIInvoker.java?rev=438042&r1=438041&r2=438042&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIInvoker.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIInvoker.java Tue Aug 29 03:47:25 2006
@@ -20,8 +20,8 @@
import java.lang.reflect.Method;
import java.rmi.Remote;
-import org.apache.tuscany.spi.host.RMIHost;
-import org.apache.tuscany.spi.host.RemoteServiceException;
+import org.apache.tuscany.host.rmi.RMIHost;
+import org.apache.tuscany.host.rmi.RMIHostException;
import org.apache.tuscany.spi.wire.InvocationRuntimeException;
import org.apache.tuscany.spi.wire.Message;
import org.apache.tuscany.spi.wire.TargetInvoker;
@@ -80,7 +80,7 @@
// proxy = Naming.lookup(serviceURI);
}
return remoteMethod.invoke(proxy, (Object[]) payload);
- } catch (RemoteServiceException e) {
+ } catch (RMIHostException e) {
// the method we are passed must be accessible
throw new AssertionError(e);
} catch (IllegalAccessException e) {
Modified: incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReference.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReference.java?rev=438042&r1=438041&r2=438042&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReference.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIReference.java Tue Aug 29 03:47:25 2006
@@ -18,9 +18,9 @@
import java.lang.reflect.Method;
+import org.apache.tuscany.host.rmi.RMIHost;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.extension.ReferenceExtension;
-import org.apache.tuscany.spi.host.RMIHost;
import org.apache.tuscany.spi.wire.TargetInvoker;
import org.apache.tuscany.spi.wire.WireService;
Modified: incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIService.java?rev=438042&r1=438041&r2=438042&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIService.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIService.java Tue Aug 29 03:47:25 2006
@@ -20,17 +20,17 @@
import java.rmi.Remote;
import java.rmi.server.UnicastRemoteObject;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.extension.ServiceExtension;
-import org.apache.tuscany.spi.host.RMIHost;
-import org.apache.tuscany.spi.host.RemoteServiceException;
-import org.apache.tuscany.spi.wire.WireService;
-
import net.sf.cglib.asm.ClassWriter;
import net.sf.cglib.asm.Constants;
import net.sf.cglib.asm.Type;
import net.sf.cglib.proxy.Enhancer;
+import org.apache.tuscany.host.rmi.RMIHost;
+import org.apache.tuscany.host.rmi.RMIHostException;
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.extension.ServiceExtension;
+import org.apache.tuscany.spi.wire.WireService;
+
/**
* @version $Rev$ $Date$
*/
@@ -77,15 +77,15 @@
getPort(port),
rmiProxy);
// bindRmiService(uri,rmiProxy);
- } catch (RemoteServiceException e) {
- throw new NoRemoteServiceException(e);
+ } catch (RMIHostException e) {
+ throw new NoRemoteServiceException(e);
}
}
public void stop() {
try {
rmiHost.unregisterService(serviceName);
- } catch (RemoteServiceException e) {
+ } catch (RMIHostException e) {
throw new NoRemoteServiceException(e.getMessage());
}
super.stop();
@@ -128,9 +128,10 @@
cw.visit(Constants.V1_5, Constants.ACC_PUBLIC + Constants.ACC_ABSTRACT + Constants.ACC_INTERFACE,
interfazeName.replace('.', '/'), "java/lang/Object", new String[]{"java/rmi/Remote"}, simpleName + ".java");
- StringBuffer argsAndReturn = new StringBuffer("(");
+ StringBuffer argsAndReturn = null;
Method[] methods = serviceInterface.getMethods();
for (Method method : methods) {
+ argsAndReturn = new StringBuffer("(");
Class[] paramTypes = method.getParameterTypes();
Class returnType = method.getReturnType();
Added: incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/host/RMIHostImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/host/RMIHostImpl.java?rev=438042&view=auto
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/host/RMIHostImpl.java (added)
+++ incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/host/RMIHostImpl.java Tue Aug 29 03:47:25 2006
@@ -0,0 +1,136 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed 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.binding.rmi.host;
+
+import java.rmi.AlreadyBoundException;
+import java.rmi.NotBoundException;
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+import java.rmi.registry.LocateRegistry;
+import java.rmi.registry.Registry;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.tuscany.host.rmi.RMIHost;
+import org.apache.tuscany.host.rmi.RMIHostException;
+import org.apache.tuscany.host.rmi.RMIHostRuntimeException;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Scope;
+
+/**
+ * This class provides an implementation for the RMI Host SPIs
+ */
+@Scope("MODULE")
+public class RMIHostImpl implements RMIHost {
+
+ // map of RMI registries started and running
+ private Map<String, Registry> rmiRegistries;
+
+ public RMIHostImpl() {
+ rmiRegistries = new ConcurrentHashMap<String, Registry>();
+ /*
+ * if (System.getSecurityManager() == null) { System.setSecurityManager(new RMISecurityManager()); }
+ */
+ }
+
+ @Init(eager = true)
+ public void init() {
+ }
+
+ public void registerService(String serviceName, int port, Remote serviceObject) throws RMIHostException,
+ RMIHostRuntimeException {
+ Registry registry;
+ try {
+ registry = rmiRegistries.get(Integer.toString(port));
+ if (registry == null) {
+ registry = LocateRegistry.createRegistry(port);
+ rmiRegistries.put(Integer.toString(port),
+ registry);
+ }
+ registry.bind(serviceName,
+ serviceObject);
+ } catch (AlreadyBoundException e) {
+ throw new RMIHostException(e.getMessage());
+ } catch (RemoteException e) {
+ RMIHostRuntimeException rmiExec = new RMIHostRuntimeException(e.getMessage());
+ rmiExec.setStackTrace(e.getStackTrace());
+ throw rmiExec;
+ }
+
+ }
+
+ public void registerService(String serviceName, Remote serviceObject) throws RMIHostException,
+ RMIHostRuntimeException {
+ registerService(serviceName,
+ RMI_DEFAULT_PORT,
+ serviceObject);
+ }
+
+ public void unregisterService(String serviceName, int port) throws RMIHostException,
+ RMIHostRuntimeException {
+ Registry registry;
+
+ try {
+ registry = rmiRegistries.get(Integer.toString(port));
+ if (registry == null) {
+ registry = LocateRegistry.createRegistry(port);
+ rmiRegistries.put(Integer.toString(port),
+ registry);
+ }
+ registry.unbind(serviceName);
+ } catch (RemoteException e) {
+ RMIHostRuntimeException rmiExec = new RMIHostRuntimeException(e.getMessage());
+ rmiExec.setStackTrace(e.getStackTrace());
+ throw rmiExec;
+ } catch (NotBoundException e) {
+ throw new RMIHostException(e.getMessage());
+ }
+ }
+
+ public void unregisterService(String serviceName) throws RMIHostException,
+ RMIHostRuntimeException {
+ unregisterService(serviceName,
+ RMI_DEFAULT_PORT);
+
+ }
+
+ public Remote findService(String host, String port, String svcName) throws RMIHostException,
+ RMIHostRuntimeException {
+ Registry registry;
+ Remote remoteService = null;
+ host = (host == null || host.length() <= 0) ? "localhost" : host;
+ int portNumber = (port == null || port.length() <= 0) ? RMI_DEFAULT_PORT : Integer
+ .decode(port);
+
+ try {
+ registry = LocateRegistry.getRegistry(host,
+ portNumber);
+
+ if (registry != null) {
+ remoteService = registry.lookup(svcName);
+ }
+ } catch (RemoteException e) {
+ RMIHostRuntimeException rmiExec = new RMIHostRuntimeException(e.getMessage());
+ rmiExec.setStackTrace(e.getStackTrace());
+ throw rmiExec;
+ } catch (NotBoundException e) {
+ throw new RMIHostException(e.getMessage());
+ }
+ return remoteService;
+ }
+
+}
Propchange: incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/host/RMIHostImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/bindings/binding.rmi/src/main/java/org/apache/tuscany/binding/rmi/host/RMIHostImpl.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/bindings/binding.rmi/src/main/resources/META-INF/sca/default.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.rmi/src/main/resources/META-INF/sca/default.scdl?rev=438042&r1=438041&r2=438042&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.rmi/src/main/resources/META-INF/sca/default.scdl (original)
+++ incubator/tuscany/java/sca/bindings/binding.rmi/src/main/resources/META-INF/sca/default.scdl Tue Aug 29 03:47:25 2006
@@ -32,7 +32,7 @@
</component>
<!-- <component name="binding.rmi.bindingInvoker">
- <system:implementation.system class="org.apache.tuscany.binding.rmi.RMIInvoker"/>
+ <system:implementation.system class="org.apache.tuscany.binding.rmi.host.RMIInvoker"/>
</component>
-->
Modified: incubator/tuscany/java/sca/bindings/binding.rmi/src/main/resources/META-INF/sca/rmi_extension.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.rmi/src/main/resources/META-INF/sca/rmi_extension.scdl?rev=438042&r1=438041&r2=438042&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.rmi/src/main/resources/META-INF/sca/rmi_extension.scdl (original)
+++ incubator/tuscany/java/sca/bindings/binding.rmi/src/main/resources/META-INF/sca/rmi_extension.scdl Tue Aug 29 03:47:25 2006
@@ -38,7 +38,7 @@
<!-- RMI Host service -->
<component name="rmiHost">
- <system:implementation.system class="org.apache.tuscany.binding.rmi.RMIHostImpl"/>
+ <system:implementation.system class="org.apache.tuscany.binding.rmi.host.RMIHostImpl"/>
</component>
</composite>
Modified: incubator/tuscany/java/sca/bindings/binding.rmi/src/test/java/org/apache/tuscany/binding/rmi/BindingTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.rmi/src/test/java/org/apache/tuscany/binding/rmi/BindingTestCase.java?rev=438042&r1=438041&r2=438042&view=diff
==============================================================================
--- incubator/tuscany/java/sca/bindings/binding.rmi/src/test/java/org/apache/tuscany/binding/rmi/BindingTestCase.java (original)
+++ incubator/tuscany/java/sca/bindings/binding.rmi/src/test/java/org/apache/tuscany/binding/rmi/BindingTestCase.java Tue Aug 29 03:47:25 2006
@@ -1,13 +1,18 @@
package org.apache.tuscany.binding.rmi;
+import helloworld.HelloWorldRmiService;
+import helloworld.HelloWorldService;
+
import org.apache.tuscany.test.SCATestCase;
+import org.osoa.sca.CompositeContext;
+import org.osoa.sca.CurrentCompositeContext;
public class BindingTestCase extends SCATestCase {
- //private HelloWorldService helloWorldService;
- //private HelloWorldRmiService helloWorldRmiService;
+ private HelloWorldService helloWorldService;
+ private HelloWorldRmiService helloWorldRmiService;
public void testRmiService() {
- // System.out.println(helloWorldRmiService.sayRmiHello("Tuscany World!"));
+ //System.out.println(helloWorldRmiService.sayRmiHello("Tuscany World!"));
}
protected void setUp() throws Exception {
@@ -26,7 +31,7 @@
protected void tearDown() throws Exception {
-// super.tearDown();
+ //super.tearDown();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org