public abstract class TimerManagerAccessor extends JndiLocatorSupport implements InitializingBean, DisposableBean, Lifecycle
TimerManager
Defines common configuration settings and common lifecycle handling.TimerManager
CONTAINER_PREFIX
logger
Constructor and Description |
---|
TimerManagerAccessor() |
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet()
Invoked by the containing
BeanFactory after it has set all bean properties
and satisfied BeanFactoryAware , ApplicationContextAware etc. |
void |
destroy()
Stops the underlying TimerManager (if not shared).
|
protected commonj.timers.TimerManager |
getTimerManager()
Return the configured TimerManager, if any.
|
boolean |
isRunning()
Considers the underlying TimerManager as running if it is
neither suspending nor stopping.
|
protected commonj.timers.TimerManager |
obtainTimerManager()
Obtain the TimerManager for actual use.
|
void |
setShared(boolean shared)
Specify whether the TimerManager obtained by this FactoryBean
is a shared instance ("true") or an independent instance ("false").
|
void |
setTimerManager(commonj.timers.TimerManager timerManager)
Specify the CommonJ TimerManager to delegate to.
|
void |
setTimerManagerName(java.lang.String timerManagerName)
Set the JNDI name of the CommonJ TimerManager.
|
void |
start()
Resumes the underlying TimerManager (if not shared).
|
void |
stop()
Suspends the underlying TimerManager (if not shared).
|
convertJndiName, isResourceRef, lookup, lookup, setResourceRef
getJndiEnvironment, getJndiTemplate, setJndiEnvironment, setJndiTemplate
public void setTimerManager(commonj.timers.TimerManager timerManager)
Note that the given TimerManager's lifecycle will be managed by this FactoryBean.
Alternatively (and typically), you can specify the JNDI name of the target TimerManager.
setTimerManagerName(java.lang.String)
public void setTimerManagerName(java.lang.String timerManagerName)
This can either be a fully qualified JNDI name, or the JNDI name relative to the current environment naming context if "resourceRef" is set to "true".
public void setShared(boolean shared)
Default is "false", i.e. managing an independent TimerManager instance.
This is what the CommonJ specification suggests that application servers
are supposed to offer via JNDI lookups, typically declared as a
resource-ref
of type commonj.timers.TimerManager
in web.xml
, with res-sharing-scope
set to 'Unshareable'.
Switch this flag to "true" if you are obtaining a shared TimerManager, typically through specifying the JNDI location of a TimerManager that has been explicitly declared as 'Shareable'. Note that WebLogic's cluster-aware Job Scheduler is a shared TimerManager too.
The sole difference between this FactoryBean being in shared or
non-shared mode is that it will only attempt to suspend / resume / stop
the underlying TimerManager in case of an independent (non-shared) instance.
This only affects the Lifecycle
support
as well as application context shutdown.
public void afterPropertiesSet() throws javax.naming.NamingException
InitializingBean
BeanFactory
after it has set all bean properties
and satisfied BeanFactoryAware
, ApplicationContextAware
etc.
This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.
afterPropertiesSet
in interface InitializingBean
javax.naming.NamingException
@Nullable protected final commonj.timers.TimerManager getTimerManager()
null
if not availableprotected commonj.timers.TimerManager obtainTimerManager()
null
)java.lang.IllegalStateException
- in case of no TimerManager setpublic void start()
public void stop()
public boolean isRunning()
public void destroy()
destroy
in interface DisposableBean
TimerManager.stop()