org.openejb.client
Class StatelessEJBHomeHandler

java.lang.Object
  extended by org.openejb.client.EJBInvocationHandler
      extended by org.openejb.client.EJBHomeHandler
          extended by org.openejb.client.StatelessEJBHomeHandler
All Implemented Interfaces:
java.io.Externalizable, java.io.Serializable, InvocationHandler, RequestMethods, ResponseCodes

public class StatelessEJBHomeHandler
extends EJBHomeHandler

This InvocationHandler and its proxy are serializable and can be used by HomeHandle, Handle, and MetaData to persist and revive handles. It maintains its original client identity which allows the container to be more discerning about allowing the revieed proxy to be used. See StatefulContaer manager for more details.

Author:
David Blevins, Richard Monson-Haefel
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.openejb.client.EJBHomeHandler
GETEJBMETADATA, GETHANDLER, GETHOMEHANDLE, REMOVE_W_HAND, REMOVE_W_KEY
 
Fields inherited from class org.openejb.client.EJBInvocationHandler
client, ejb, EQUALS, HASHCODE, inProxyMap, isInvalidReference, liveHandleRegistry, primaryKey, request, server, TOSTRING
 
Fields inherited from interface org.openejb.client.ResponseCodes
AUTH_DENIED, AUTH_GRANTED, AUTH_REDIRECT, EJB_APP_EXCEPTION, EJB_ERROR, EJB_OK, EJB_OK_CREATE, EJB_OK_FOUND, EJB_OK_FOUND_COLLECTION, EJB_OK_FOUND_ENUMERATION, EJB_OK_NOT_FOUND, EJB_SYS_EXCEPTION, JNDI_CONTEXT, JNDI_EJBHOME, JNDI_ENUMERATION, JNDI_ERROR, JNDI_NAMING_EXCEPTION, JNDI_NOT_FOUND, JNDI_OK, JNDI_RUNTIME_EXCEPTION
 
Fields inherited from interface org.openejb.client.RequestMethods
AUTH_REQUEST, EJB_HOME_CREATE, EJB_HOME_FIND, EJB_HOME_GET_EJB_META_DATA, EJB_HOME_GET_HOME_HANDLE, EJB_HOME_REMOVE_BY_HANDLE, EJB_HOME_REMOVE_BY_PKEY, EJB_OBJECT_BUSINESS_METHOD, EJB_OBJECT_GET_EJB_HOME, EJB_OBJECT_GET_HANDLE, EJB_OBJECT_GET_PRIMARY_KEY, EJB_OBJECT_IS_IDENTICAL, EJB_OBJECT_REMOVE, EJB_REQUEST, JNDI_LIST, JNDI_LIST_BINDINGS, JNDI_LOOKUP, JNDI_REQUEST, STOP_REQUEST_quit, STOP_REQUEST_Quit, STOP_REQUEST_stop, STOP_REQUEST_Stop
 
Constructor Summary
StatelessEJBHomeHandler()
           
StatelessEJBHomeHandler(EJBMetaDataImpl ejb, ServerMetaData server, ClientMetaData client)
           
 
Method Summary
protected  java.lang.Object findX(java.lang.reflect.Method method, java.lang.Object[] args, java.lang.Object proxy)
          EJB 1.1 Specification, Section 5.5 Session object identity Since all session objects hide their identity, there is no need to provide a finder for them.
protected  EJBObjectHandler newEJBObjectHandler()
           
protected  java.lang.Object removeByPrimaryKey(java.lang.reflect.Method method, java.lang.Object[] args, java.lang.Object proxy)
          ------------------------------------ 5.3.2 Removing a session object A client may remove a session object using the remove() method on the javax.ejb.EJBObject interface, or the remove(Handle handle) method of the javax.ejb.EJBHome interface.
protected  java.lang.Object removeWithHandle(java.lang.reflect.Method method, java.lang.Object[] args, java.lang.Object proxy)
           Attempts to remove an EJBObject from the container system.
 
Methods inherited from class org.openejb.client.EJBHomeHandler
_invoke, create, createEJBHomeHandler, createEJBHomeProxy, getEJBMetaData, getHomeHandle, readExternal, writeExternal
 
Methods inherited from class org.openejb.client.EJBInvocationHandler
getMethod, invalidateAllHandlers, invalidateReference, invoke, print, println, registerHandler, request
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StatelessEJBHomeHandler

public StatelessEJBHomeHandler()

StatelessEJBHomeHandler

public StatelessEJBHomeHandler(EJBMetaDataImpl ejb,
                               ServerMetaData server,
                               ClientMetaData client)
Method Detail

findX

protected java.lang.Object findX(java.lang.reflect.Method method,
                                 java.lang.Object[] args,
                                 java.lang.Object proxy)
                          throws java.lang.Throwable
EJB 1.1 Specification, Section 5.5 Session object identity Since all session objects hide their identity, there is no need to provide a finder for them. The home interface of a session bean must not define any finder methods.

Specified by:
findX in class EJBHomeHandler
Parameters:
method -
args -
proxy -
Returns:
Returns an new EJBObject proxy and handler
Throws:
java.lang.Throwable

removeByPrimaryKey

protected java.lang.Object removeByPrimaryKey(java.lang.reflect.Method method,
                                              java.lang.Object[] args,
                                              java.lang.Object proxy)
                                       throws java.lang.Throwable
------------------------------------ 5.3.2 Removing a session object A client may remove a session object using the remove() method on the javax.ejb.EJBObject interface, or the remove(Handle handle) method of the javax.ejb.EJBHome interface. Because session objects do not have primary keys that are accessible to clients, invoking the javax.ejb.EJBHome.remove(Object primaryKey) method on a session results in the javax.ejb.RemoveException. ------------------------------------ 5.5 Session object identity Session objects are intended to be private resources used only by the client that created them. For this reason, session objects, from the client?s perspective, appear anonymous. In contrast to entity objects, which expose their identity as a primary key, session objects hide their identity. As a result, the EJBObject.getPrimaryKey() and EJBHome.remove(Object primaryKey) methods result in a java.rmi.RemoteException if called on a session bean. If the EJBMetaData.getPrimaryKeyClass() method is invoked on a EJBMetaData object for a Session bean, the method throws the java.lang.RuntimeException. ------------------------------------ Sections 5.3.2 and 5.5 conflict. 5.3.2 says to throw javax.ejb.RemoveException, 5.5 says to throw java.rmi.RemoteException. For now, we are going with java.rmi.RemoteException.

Specified by:
removeByPrimaryKey in class EJBHomeHandler
Returns:
Returns null
Throws:
java.lang.Throwable
See Also:
EJBHome, EJBHome.remove(javax.ejb.Handle)

removeWithHandle

protected java.lang.Object removeWithHandle(java.lang.reflect.Method method,
                                            java.lang.Object[] args,
                                            java.lang.Object proxy)
                                     throws java.lang.Throwable
Description copied from class: EJBHomeHandler

Attempts to remove an EJBObject from the container system. The EJBObject to be removed is represented by the javax.ejb.Handle object passed into the remove method in the EJBHome.

This method propogates to the container system.

remove(Handle handle) is a method of javax.ejb.EJBHome

Checks if the caller is authorized to invoke the javax.ejb.EJBHome.remove on the EJBHome of the deployment.

Specified by:
removeWithHandle in class EJBHomeHandler
Returns:
Returns null
Throws:
java.lang.Throwable
See Also:
EJBHome, EJBHome.remove(javax.ejb.Handle)

newEJBObjectHandler

protected EJBObjectHandler newEJBObjectHandler()


Copyright © 1999-2011 OpenEJB. All Rights Reserved.