org.jboss.ejb.plugins
Class EntitySynchronizationInterceptor

java.lang.Object
  extended byorg.jboss.ejb.plugins.AbstractInterceptor (src) 
      extended byorg.jboss.ejb.plugins.EntitySynchronizationInterceptor
All Implemented Interfaces:
AllowedOperationsFlags (src) , ContainerPlugin (src) , Interceptor (src) , Service (src)
Direct Known Subclasses:
EntityMultiInstanceSynchronizationInterceptor (src)

public class EntitySynchronizationInterceptor
extends AbstractInterceptor (src)

The role of this interceptor is to synchronize the state of the cache with the underlying storage. It does this with the ejbLoad and ejbStore semantics of the EJB specification. In the presence of a transaction this is triggered by transaction demarcation. It registers a callback with the underlying transaction monitor through the JTA interfaces. If there is no transaction the policy is to store state upon returning from invocation. The synchronization polices A,B,C of the specification are taken care of here.

WARNING: critical code, get approval from senior developers before changing.


Nested Class Summary
protected  class EntitySynchronizationInterceptor.InstanceSynchronization (src)
           
 
Field Summary
protected  int commitOption
          The current commit option.
protected  EntityContainer (src) container
          The container of this interceptor.
protected  long optionDRefreshRate
          The refresh rate for commit option d
 
Fields inherited from class org.jboss.ejb.plugins.AbstractInterceptor (src)
log, nextInterceptor
 
Fields inherited from interface org.jboss.ejb.AllowedOperationsFlags (src)
IN_AFTER_BEGIN, IN_AFTER_COMPLETION, IN_BEFORE_COMPLETION, IN_BUSINESS_METHOD, IN_EJB_ACTIVATE, IN_EJB_CREATE, IN_EJB_FIND, IN_EJB_HOME, IN_EJB_LOAD, IN_EJB_PASSIVATE, IN_EJB_POST_CREATE, IN_EJB_REMOVE, IN_EJB_STORE, IN_EJB_TIMEOUT, IN_INTERCEPTOR_METHOD, IN_SERVICE_ENDPOINT_METHOD, IN_SET_ENTITY_CONTEXT, IN_SET_MESSAGE_DRIVEN_CONTEXT, IN_SET_SESSION_CONTEXT, IN_UNSET_ENTITY_CONTEXT, NOT_ALLOWED
 
Constructor Summary
EntitySynchronizationInterceptor()
           
 
Method Summary
 void create()
          create the service, do expensive operations etc
protected  Synchronization (src) createSynchronization(Transaction (src)  tx, EntityEnterpriseContext (src)  ctx)
           
 Container (src) getContainer()
           
 java.lang.Object invoke(Invocation (src)  mi)
          ???
 java.lang.Object invokeHome(Invocation (src)  mi)
          ???
protected  void register(EntityEnterpriseContext (src)  ctx, Transaction (src)  tx)
          Register a transaction synchronization callback with a context.
 void setContainer(Container (src)  container)
          This callback is set by the container so that the plugin may access it
 void start()
          start the service, create is already called
 void stop()
          stop the service
 
Methods inherited from class org.jboss.ejb.plugins.AbstractInterceptor (src)
destroy, getNext, setNext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

commitOption

protected int commitOption
The current commit option.


optionDRefreshRate

protected long optionDRefreshRate
The refresh rate for commit option d


container

protected EntityContainer (src)  container
The container of this interceptor.

Constructor Detail

EntitySynchronizationInterceptor

public EntitySynchronizationInterceptor()
Method Detail

getContainer

public Container (src)  getContainer()
Overrides:
getContainer in class AbstractInterceptor (src)

setContainer

public void setContainer(Container (src)  container)
Description copied from interface: ContainerPlugin (src)
This callback is set by the container so that the plugin may access it

Specified by:
setContainer in interface ContainerPlugin (src)
Overrides:
setContainer in class AbstractInterceptor (src)

create

public void create()
            throws java.lang.Exception
Description copied from interface: Service (src)
create the service, do expensive operations etc

Specified by:
create in interface Service (src)
Overrides:
create in class AbstractInterceptor (src)
Throws:
java.lang.Exception

start

public void start()
Description copied from interface: Service (src)
start the service, create is already called

Specified by:
start in interface Service (src)
Overrides:
start in class AbstractInterceptor (src)

stop

public void stop()
Description copied from interface: Service (src)
stop the service

Specified by:
stop in interface Service (src)
Overrides:
stop in class AbstractInterceptor (src)

createSynchronization

protected Synchronization (src)  createSynchronization(Transaction (src)  tx,
                                                EntityEnterpriseContext (src)  ctx)

register

protected void register(EntityEnterpriseContext (src)  ctx,
                        Transaction (src)  tx)
Register a transaction synchronization callback with a context.


invokeHome

public java.lang.Object invokeHome(Invocation (src)  mi)
                            throws java.lang.Exception
Description copied from interface: Interceptor (src)
???

Specified by:
invokeHome in interface Interceptor (src)
Overrides:
invokeHome in class AbstractInterceptor (src)
Throws:
java.lang.Exception

invoke

public java.lang.Object invoke(Invocation (src)  mi)
                        throws java.lang.Exception
Description copied from interface: Interceptor (src)
???

Specified by:
invoke in interface Interceptor (src)
Overrides:
invoke in class AbstractInterceptor (src)
Throws:
java.lang.Exception