com.jproxy.proxy
Class Invocator

java.lang.Object
  extended bycom.jproxy.proxy.util.ThreadSupport
      extended bycom.jproxy.proxy.ProxyHashtable
          extended bycom.jproxy.proxy.Invocator
All Implemented Interfaces:
java.lang.Runnable, java.io.Serializable
Direct Known Subclasses:
CallbackInvocator, SynchronousInvocator

public abstract class Invocator
extends ProxyHashtable

The abstract class that is responsible for direct access of remote objects Invocator objects is located on Tunneling server. It manages construction of remote objects during which proxy stub is generated. It also invokes methods on remote objects. If result has remote interface type then proxy stub is generated. The class also handles destruction of created objects.

See Also:
Tunnel, com.jproxy.proxy.Data, ProxyHashtable, Serialized Form

Field Summary
 
Fields inherited from class com.jproxy.proxy.ProxyHashtable
hashtable, invocationInterceptorClass, sessionHash
 
Fields inherited from class com.jproxy.proxy.util.ThreadSupport
threads
 
Constructor Summary
Invocator(Tunnel _tunnel)
          Creates instance with properties passed as Hashtable object.
 
Method Summary
 void addClassLoader(java.lang.String codebase, java.lang.ClassLoader loader)
           
 java.lang.Object call(java.lang.Object o)
          The method that delegates request for remote object access to proper method: construct(), destruct(), invoke(), getInstance()
 java.lang.Object correctInputObject(java.lang.Object obj)
           
 java.lang.Object correctOutputObject(java.lang.Object obj, Marshalable data)
           
 HashObject createHashObject(java.lang.Object object, Marshalable data)
           
 HashObject createHashObject(java.lang.Object object, java.lang.String[] remoteInterfaces, long sessionId, boolean isDynamicProxy, java.lang.String codebase)
           
abstract  Tunnel createTunnel()
           
 void destroy()
          Destroys invocator, release references to all hashed remote objects, stops garbage collector
 java.lang.ClassLoader getClassLoader(java.lang.String codebase)
          The TunnelClassLoader used by bytecode stub generator.
 java.util.Hashtable getClassLoaders()
           
static Invocator getInvocator(long sessionId)
           
 java.lang.Object invokeAll(java.lang.Object obj)
           
 java.lang.Object invokeOne(java.lang.Object obj)
           
 java.lang.Object newProxy(long sessionId, java.lang.String[] interfaceNames, long objectId, java.lang.String objectClassName, boolean isDynamicProxy, java.lang.String codebase)
          The method for obtaining proxy stub for remote interface.
abstract  java.lang.Object newProxy(TunnelInvocationHandler handler, boolean isDynamicProxy, java.lang.String codebase)
          The abstruct method for obtaining proxy stub for remote interface.
 
Methods inherited from class com.jproxy.proxy.ProxyHashtable
addSessionObject, create, get, getSessionObjects, keys, remove, removeAll, removeSessionObject, updateLicense, updateSession, values
 
Methods inherited from class com.jproxy.proxy.util.ThreadSupport
getThread, isRunning, isStopping, run, start, stop, stop, stopAll
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Invocator

public Invocator(Tunnel _tunnel)
Creates instance with properties passed as Hashtable object.

Method Detail

getInvocator

public static Invocator getInvocator(long sessionId)

newProxy

public abstract java.lang.Object newProxy(TunnelInvocationHandler handler,
                                          boolean isDynamicProxy,
                                          java.lang.String codebase)
                                   throws TunnelException
The abstruct method for obtaining proxy stub for remote interface.

Parameters:
handler - for which stub is requested
Throws:
TunnelException

createTunnel

public abstract Tunnel createTunnel()

newProxy

public java.lang.Object newProxy(long sessionId,
                                 java.lang.String[] interfaceNames,
                                 long objectId,
                                 java.lang.String objectClassName,
                                 boolean isDynamicProxy,
                                 java.lang.String codebase)
                          throws TunnelException
The method for obtaining proxy stub for remote interface.

Parameters:
objectId - unique ID that will be assigned to stub
Throws:
TunnelException

getClassLoaders

public java.util.Hashtable getClassLoaders()

getClassLoader

public java.lang.ClassLoader getClassLoader(java.lang.String codebase)
The TunnelClassLoader used by bytecode stub generator.


addClassLoader

public void addClassLoader(java.lang.String codebase,
                           java.lang.ClassLoader loader)

invokeAll

public java.lang.Object invokeAll(java.lang.Object obj)
                           throws TunnelException
Throws:
TunnelException

destroy

public void destroy()
Destroys invocator, release references to all hashed remote objects, stops garbage collector


invokeOne

public java.lang.Object invokeOne(java.lang.Object obj)
                           throws TunnelException
Throws:
TunnelException

call

public java.lang.Object call(java.lang.Object o)
The method that delegates request for remote object access to proper method: construct(), destruct(), invoke(), getInstance()

Parameters:
o - Data object that is marshalled data sent by client

createHashObject

public HashObject createHashObject(java.lang.Object object,
                                   java.lang.String[] remoteInterfaces,
                                   long sessionId,
                                   boolean isDynamicProxy,
                                   java.lang.String codebase)
                            throws TunnelException
Throws:
TunnelException

createHashObject

public HashObject createHashObject(java.lang.Object object,
                                   Marshalable data)
                            throws TunnelException
Throws:
TunnelException

correctOutputObject

public java.lang.Object correctOutputObject(java.lang.Object obj,
                                            Marshalable data)
                                     throws java.io.IOException
Throws:
java.io.IOException

correctInputObject

public java.lang.Object correctInputObject(java.lang.Object obj)
                                    throws java.io.IOException
Throws:
java.io.IOException


Copyright © JProxy LLC. All Rights Reserved.