| 
 | The Spring Framework | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.springframework.ejb.support.AbstractMessageDrivenBean
public abstract class AbstractMessageDrivenBean
Convenient superclass for MDBs.
 Doesn't require JMS, as EJB 2.1 MDBs are no longer JMS-specific;
 see the AbstractJmsMessageDrivenBean subclass.
 
This class ensures that subclasses have access to the
 MessageDrivenContext provided by the EJB container, and implement
 a no-arg ejbCreate() method as required by the EJB
 specification. This ejbCreate() method loads a BeanFactory,
 before invoking the onEjbCreate() method, which is
 supposed to contain subclass-specific initialization.
 
NB: We cannot use final methods to implement EJB API methods,
 as this violates the EJB specification. However, there should be
 no need to override the setMessageDrivenContext or
 ejbCreate() methods.
| Field Summary | |
|---|---|
| static String | BEAN_FACTORY_PATH_ENVIRONMENT_KEY | 
| protected  Log | loggerLogger available to subclasses | 
| Constructor Summary | |
|---|---|
| AbstractMessageDrivenBean() | |
| Method Summary | |
|---|---|
|  void | ejbCreate()Lifecycle method required by the EJB specification but not the MessageDrivenBean interface. | 
|  void | ejbRemove()EJB lifecycle method, implemented to invoke onEjbRemote and unload the BeanFactory afterwards. | 
| protected  BeanFactory | getBeanFactory()May be called after ejbCreate(). | 
| protected  MessageDrivenContext | getMessageDrivenContext()Convenience method for subclasses to use. | 
| protected abstract  void | onEjbCreate()Subclasses must implement this method to do any initialization they would otherwise have done in an ejbCreate()method. | 
| protected  void | onEjbRemove()Subclasses must implement this method to do any initialization they would otherwise have done in an ejbRemove() method. | 
|  void | setBeanFactoryLocator(BeanFactoryLocator beanFactoryLocator)Set the BeanFactoryLocator to use for this EJB. | 
|  void | setBeanFactoryLocatorKey(String factoryKey)Set the bean factory locator key. | 
|  void | setMessageDrivenContext(MessageDrivenContext messageDrivenContext)Required lifecycle method. | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Methods inherited from interface javax.ejb.MessageDrivenBean | 
|---|
| ejbRemove | 
| Field Detail | 
|---|
protected final Log logger
public static final String BEAN_FACTORY_PATH_ENVIRONMENT_KEY
| Constructor Detail | 
|---|
public AbstractMessageDrivenBean()
| Method Detail | 
|---|
public void setMessageDrivenContext(MessageDrivenContext messageDrivenContext)
setMessageDrivenContext in interface MessageDrivenBeanmessageDrivenContext - MessageDrivenContextprotected final MessageDrivenContext getMessageDrivenContext()
public void ejbCreate()
Don't override it (although it can't be made final): code initialization in onEjbCreate(), which is called when the BeanFactory is available.
Unfortunately we can't load the BeanFactory in setSessionContext(), as resource manager access isn't permitted and the BeanFactory may require it.
protected abstract void onEjbCreate()
ejbCreate() method. In contrast
 to ejbCreate(), the BeanFactory will have been loaded here.
 The same restrictions apply to the work of this method as
 to an ejbCreate() method.
public void setBeanFactoryLocator(BeanFactoryLocator beanFactoryLocator)
Can be invoked before loadBeanFactory, for example in constructor or setSessionContext if you want to override the default locator.
Note that the BeanFactory is automatically loaded by the ejbCreate implementations of AbstractStatelessSessionBean and AbstractMessageDriverBean but needs to be explicitly loaded in custom AbstractStatefulSessionBean ejbCreate methods.
public void setBeanFactoryLocatorKey(String factoryKey)
In case of the default BeanFactoryLocator implementation, ContextJndiBeanFactoryLocator, this is the JNDI path. The default value of this property is "java:comp/env/ejb/BeanFactoryPath".
Can be invoked before loadBeanFactory, for example in constructor or setSessionContext if you want to override the default locator key.
BEAN_FACTORY_PATH_ENVIRONMENT_KEYprotected BeanFactory getBeanFactory()
public void ejbRemove()
Don't override it (although it can't be made final): code your shutdown in onEjbRemove.
onEjbRemove()protected void onEjbRemove()
This implementation is empty, to be overridden in subclasses. The same restrictions apply to the work of this method as to an ejbRemove() method.
| 
 | The Spring Framework | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||