com.stellent.cis.common.proxy.ejb
Class EJBLookupAndProxy.GenericEjbProxy

java.lang.Object
  extended by com.stellent.cis.common.proxy.ejb.EJBLookupAndProxy.GenericEjbProxy
All Implemented Interfaces:
java.lang.reflect.InvocationHandler
Enclosing class:
EJBLookupAndProxy

public static class EJBLookupAndProxy.GenericEjbProxy
extends java.lang.Object
implements java.lang.reflect.InvocationHandler

Wraps calls and proxies them into the EJB object, handling EJB creation and removal as necessary.


Field Summary
protected  java.lang.reflect.Method m_createMethod
           
protected  ContextLoaderSwitcher m_ejbContextSwitcher
           
protected  java.lang.Object m_remoteHomeObject
           
 
Constructor Summary
EJBLookupAndProxy.GenericEjbProxy(java.lang.Object remoteHomeObject, java.lang.ClassLoader ejbClassLoader)
           
 
Method Summary
protected  javax.ejb.EJBObject createEjbObject()
          Create the EJB object reference
 java.lang.Object invoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)
          Execute the EJB method
protected  boolean isConnectionFailure(java.rmi.RemoteException exp)
          Determine if the RemoteException was a connection failure
protected  void releaseEjbObject(javax.ejb.EJBObject ejbObject)
          Release the EJB object
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_ejbContextSwitcher

protected ContextLoaderSwitcher m_ejbContextSwitcher

m_remoteHomeObject

protected java.lang.Object m_remoteHomeObject

m_createMethod

protected java.lang.reflect.Method m_createMethod
Constructor Detail

EJBLookupAndProxy.GenericEjbProxy

public EJBLookupAndProxy.GenericEjbProxy(java.lang.Object remoteHomeObject,
                                         java.lang.ClassLoader ejbClassLoader)
Method Detail

invoke

public java.lang.Object invoke(java.lang.Object proxy,
                               java.lang.reflect.Method method,
                               java.lang.Object[] args)
                        throws java.lang.Throwable
Execute the EJB method

Specified by:
invoke in interface java.lang.reflect.InvocationHandler
Throws:
java.lang.Throwable

isConnectionFailure

protected boolean isConnectionFailure(java.rmi.RemoteException exp)
Determine if the RemoteException was a connection failure

Parameters:
exp - remote exception
Returns:
true if this was a connection failure

createEjbObject

protected javax.ejb.EJBObject createEjbObject()
                                       throws java.lang.IllegalAccessException,
                                              java.lang.reflect.InvocationTargetException
Create the EJB object reference

Returns:
the ejb object
Throws:
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException

releaseEjbObject

protected void releaseEjbObject(javax.ejb.EJBObject ejbObject)
Release the EJB object

Parameters:
ejbObject -