org.codehaus.aspectwerkz.connectivity
Class RemoteProxy

java.lang.Object
  extended byorg.codehaus.aspectwerkz.connectivity.RemoteProxy
All Implemented Interfaces:
java.lang.reflect.InvocationHandler, java.io.Serializable

public class RemoteProxy
extends java.lang.Object
implements java.lang.reflect.InvocationHandler, java.io.Serializable

This class provides a general remote proxy. It uses the Dynamic Proxy mechanism that was introduced with JDK 1.3.

The client proxy sends all requests to a server via a socket connection. The server returns results in the same way. Every object that is transferred (i.e. result of method invocation) has to support the Serializable interface.

Author:
Jonas Bonér
See Also:
Serialized Form

Method Summary
 void close()
          Closes the proxy and the connection to the server.
static RemoteProxy createClientProxy(java.lang.String[] interfaces, java.lang.String impl, java.lang.String address, int port)
          Creates a new proxy to a class.
static RemoteProxy createClientProxy(java.lang.String[] interfaces, java.lang.String impl, java.lang.String address, int port, java.lang.ClassLoader loader)
          Creates a new proxy to a class.
static RemoteProxy createClientProxy(java.lang.String[] interfaces, java.lang.String impl, java.lang.String address, int port, java.lang.Object context)
          Creates a new proxy to a class.
static RemoteProxy createClientProxy(java.lang.String[] interfaces, java.lang.String impl, java.lang.String address, int port, java.lang.Object context, java.lang.ClassLoader loader)
          Creates a new proxy to a class.
static RemoteProxy createServerProxy(java.lang.Object targetlInstance, java.lang.String address, int port)
          Creates a proxy to a specific instance in the on the server side.
 java.lang.Object getInstance()
          Look up and retrives a proxy to an object from the server.
 java.lang.Object getInstance(java.lang.ClassLoader loader)
          Look up and retrives a proxy to an object from the server.
static java.lang.Object getWrappedInstance(java.lang.String handle)
          Returns a proxy wrapped instance by its handle.
 java.lang.Object invoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)
          This method is invoked automatically by the proxy.
static java.lang.String wrapInstance(java.lang.Object instance)
          Wraps a new instance and maps it to a handle.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

createClientProxy

public static RemoteProxy createClientProxy(java.lang.String[] interfaces,
                                            java.lang.String impl,
                                            java.lang.String address,
                                            int port)
Creates a new proxy to a class. To be used on the client side to create a new proxy to an object.

Parameters:
interfaces - the class name of the interface for the object to create the proxy for
impl - the class name of the the object to create the proxy for
address - the address to connect to.
port - the port to connect to.
Returns:
the new remote proxy instance

createClientProxy

public static RemoteProxy createClientProxy(java.lang.String[] interfaces,
                                            java.lang.String impl,
                                            java.lang.String address,
                                            int port,
                                            java.lang.Object context)
Creates a new proxy to a class. To be used on the client side to create a new proxy to an object.

Parameters:
interfaces - the class name of the interface for the object to create the proxy for
impl - the class name of the the object to create the proxy for
address - the address to connect to.
port - the port to connect to.
Returns:
the new remote proxy instance

createClientProxy

public static RemoteProxy createClientProxy(java.lang.String[] interfaces,
                                            java.lang.String impl,
                                            java.lang.String address,
                                            int port,
                                            java.lang.ClassLoader loader)
Creates a new proxy to a class. To be used on the client side to create a new proxy to an object.

Parameters:
interfaces - the class name of the interface for the object to create the proxy for
impl - the class name of the the object to create the proxy for
address - the address to connect to.
port - the port to connect to.
loader - the class loader to use
Returns:
the new remote proxy instance

createClientProxy

public static RemoteProxy createClientProxy(java.lang.String[] interfaces,
                                            java.lang.String impl,
                                            java.lang.String address,
                                            int port,
                                            java.lang.Object context,
                                            java.lang.ClassLoader loader)
Creates a new proxy to a class. To be used on the client side to create a new proxy to an object.

Parameters:
interfaces - the class name of the interface for the object to create the proxy for
impl - the class name of the the object to create the proxy for
address - the address to connect to.
port - the port to connect to.
loader - the class loader to use
Returns:
the new remote proxy instance

createServerProxy

public static RemoteProxy createServerProxy(java.lang.Object targetlInstance,
                                            java.lang.String address,
                                            int port)
Creates a proxy to a specific instance in the on the server side. This proxy could then be passed to the client which can invoke method on this specific instance.

Parameters:
address - the address to connect to.
port - the port to connect to.
Returns:
the new remote proxy instance

getInstance

public java.lang.Object getInstance(java.lang.ClassLoader loader)
Look up and retrives a proxy to an object from the server.

Parameters:
loader - the classloader to use
Returns:
the proxy instance

getInstance

public java.lang.Object getInstance()
Look up and retrives a proxy to an object from the server.

Returns:
the proxy instance

invoke

public java.lang.Object invoke(java.lang.Object proxy,
                               java.lang.reflect.Method method,
                               java.lang.Object[] args)
This method is invoked automatically by the proxy. Should not be called directly.

Specified by:
invoke in interface java.lang.reflect.InvocationHandler
Parameters:
proxy - the proxy instance that the method was invoked on
method - the Method instance corresponding to the interface method invoked on the proxy instance.
args - an array of objects containing the values of the arguments passed in the method invocation on the proxy instance.
Returns:
the value to return from the method invocation on the proxy instance.

close

public void close()
Closes the proxy and the connection to the server.


getWrappedInstance

public static java.lang.Object getWrappedInstance(java.lang.String handle)
Returns a proxy wrapped instance by its handle.

Parameters:
handle - the handle
Returns:
the instance

wrapInstance

public static java.lang.String wrapInstance(java.lang.Object instance)
Wraps a new instance and maps it to a handle.

Parameters:
instance - the instance to wrap
Returns:
the handle for the instance


Copyright (c) 2002-2004 The AspectWerkz Team. All Rights Reserved.