org.openejb.core.stateless
Class StatelessEjbObjectHandler
java.lang.Object
org.openejb.core.ivm.BaseEjbProxyHandler
org.openejb.core.ivm.EjbObjectProxyHandler
org.openejb.core.stateless.StatelessEjbObjectHandler
- All Implemented Interfaces:
- java.io.Serializable, InvocationHandler
public class StatelessEjbObjectHandler
- extends EjbObjectProxyHandler
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
Method Summary |
static java.lang.Object |
createRegistryId(java.lang.Object primKey,
java.lang.Object deployId,
Container contnr)
|
protected java.lang.Object |
getPrimaryKey(java.lang.reflect.Method method,
java.lang.Object[] args,
java.lang.Object proxy)
5.8.3 getPrimaryKey() |
java.lang.Object |
getRegistryId()
The Registry id is a logical identifier that is used as a key when placing EjbObjectProxyHanlders into
the BaseEjbProxyHanlder's liveHandleRegistry. |
protected java.lang.Object |
isIdentical(java.lang.reflect.Method method,
java.lang.Object[] args,
java.lang.Object proxy)
5.8.2 Stateless session beans |
protected java.lang.Object |
remove(java.lang.reflect.Method method,
java.lang.Object[] args,
java.lang.Object proxy)
|
Methods inherited from class org.openejb.core.ivm.BaseEjbProxyHandler |
checkAuthorization, copyArgs, copyObj, equals, getThreadSpecificSecurityIdentity, hashCode, invalidateAllHandlers, invalidateReference, invoke, isLocal, registerHandler, setIntraVmCopyMode, setLocal, toString |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
registryId
public java.lang.Object registryId
StatelessEjbObjectHandler
public StatelessEjbObjectHandler(RpcContainer container,
java.lang.Object pk,
java.lang.Object depID)
createRegistryId
public static java.lang.Object createRegistryId(java.lang.Object primKey,
java.lang.Object deployId,
Container contnr)
getRegistryId
public java.lang.Object getRegistryId()
- Description copied from class:
EjbObjectProxyHandler
- The Registry id is a logical identifier that is used as a key when placing EjbObjectProxyHanlders into
the BaseEjbProxyHanlder's liveHandleRegistry. EjbObjectProxyHanlders that represent the same
bean identity (keyed by the registry id) will be stored together so that they can be removed together
when the BaseEjbProxyHandler.invalidateAllHandlers is invoked.
This method is implemented by the subclasses to return an id that logically identifies
bean identity for a specific deployment id and container. For example, the EntityEjbObjectHandler
overrides this method to return a compound key composed of the bean's primary key, deployment id, and
container id. This uniquely identifies the bean identity that is proxied by this handler. Another example
is the StatefulEjbObjectHanlder which overrides this method to return the stateful bean's hidden primary key,
which is a java.rmi.dgc.VMID.
- Specified by:
getRegistryId
in class EjbObjectProxyHandler
getPrimaryKey
protected java.lang.Object getPrimaryKey(java.lang.reflect.Method method,
java.lang.Object[] args,
java.lang.Object proxy)
throws java.lang.Throwable
- 5.8.3 getPrimaryKey()
The object identifier of a session object is, in general, opaque
to the client. The result of getPrimaryKey() on a session EJBObject
reference results in java.rmi.RemoteException.
- Specified by:
getPrimaryKey
in class EjbObjectProxyHandler
- Parameters:
method
- args
- proxy
-
- Returns:
- Object
- Throws:
java.lang.Throwable
isIdentical
protected java.lang.Object isIdentical(java.lang.reflect.Method method,
java.lang.Object[] args,
java.lang.Object proxy)
throws java.lang.Throwable
- 5.8.2 Stateless session beans
All session objects of the same stateless session bean within
the same home have the same object identity, which is assigned
by the container. If a stateless session bean is deployed
multiple times (each deployment results in the creation of a
distinct home), session objects from different homes will have a
different identity.
The isIdentical(EJBObject otherEJBObject) method always returns
true when used to compare object references of two session
objects of the same stateless session bean. The following example
illustrates the use of the isIdentical method for a stateless
session object.
FooHome fooHome = ...; // obtain home of a stateless session bean
Foo foo1 = fooHome.create();
Foo foo2 = fooHome.create();
if (foo1.isIdentical(foo1)) {// this test returns true
...
}
if (foo1.isIdentical(foo2)) {// this test returns true
...
}
- Specified by:
isIdentical
in class EjbObjectProxyHandler
- Parameters:
method
- args
- proxy
-
- Returns:
- Object
- Throws:
java.lang.Throwable
remove
protected java.lang.Object remove(java.lang.reflect.Method method,
java.lang.Object[] args,
java.lang.Object proxy)
throws java.lang.Throwable
- Specified by:
remove
in class EjbObjectProxyHandler
- Throws:
java.lang.Throwable
Copyright © 1999-2011 OpenEJB. All Rights Reserved.