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 TimerManager |
getTimerManager()
Return the configured TimerManager, if any.
|
boolean |
isRunning()
Considers the underlying TimerManager as running if it is
neither suspending nor stopping.
|
protected 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(TimerManager timerManager)
Specify the CommonJ TimerManager to delegate to.
|
void |
setTimerManagerName(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(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(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.
stop()
,
start()
,
destroy()
,
TimerManager
public void afterPropertiesSet() throws 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
NamingException
@Nullable protected final TimerManager getTimerManager()
null
if not availableprotected TimerManager obtainTimerManager()
null
)IllegalStateException
- in case of no TimerManager setpublic void start()
start
in interface Lifecycle
TimerManager.resume()
public void stop()
stop
in interface Lifecycle
TimerManager.suspend()
public boolean isRunning()
isRunning
in interface Lifecycle
TimerManager.isSuspending()
,
TimerManager.isStopping()
public void destroy()
destroy
in interface DisposableBean
TimerManager.stop()