spring-framework / org.springframework.scheduling.commonj / TimerManagerAccessor

TimerManagerAccessor

abstract class TimerManagerAccessor : JndiLocatorSupport, InitializingBean, DisposableBean, Lifecycle

Base class for classes that are accessing a CommonJ commonj.timers.TimerManager Defines common configuration settings and common lifecycle handling.

Author
Juergen Hoeller

Since
3.0

See Also
commonj.timers.TimerManager

Constructors

<init>

TimerManagerAccessor()

Base class for classes that are accessing a CommonJ commonj.timers.TimerManager Defines common configuration settings and common lifecycle handling.

Functions

afterPropertiesSet

open fun afterPropertiesSet(): Unit

destroy

open fun destroy(): Unit

Stops the underlying TimerManager (if not shared).

isRunning

open fun isRunning(): Boolean

Considers the underlying TimerManager as running if it is neither suspending nor stopping.

setShared

open fun setShared(shared: Boolean): Unit

Specify whether the TimerManager obtained by this FactoryBean is a shared instance ("true") or an independent instance ("false"). The lifecycle of the former is supposed to be managed by the application server, while the lifecycle of the latter is up to the application.

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 org.springframework.context.Lifecycle support as well as application context shutdown.

setTimerManager

open fun setTimerManager(timerManager: TimerManager): Unit

Specify the CommonJ TimerManager to delegate to.

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

open fun setTimerManagerName(timerManagerName: String): Unit

Set the JNDI name of the CommonJ TimerManager.

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".

start

open fun start(): Unit

Resumes the underlying TimerManager (if not shared).

stop

open fun stop(): Unit

Suspends the underlying TimerManager (if not shared).

Inheritors

TimerManagerFactoryBean

open class TimerManagerFactoryBean : TimerManagerAccessor, FactoryBean<TimerManager>, InitializingBean, DisposableBean, Lifecycle

org.springframework.beans.factory.FactoryBean that retrieves a CommonJ commonj.timers.TimerManager and exposes it for bean references.

This is the central convenience class for setting up a CommonJ TimerManager in a Spring context.

Allows for registration of ScheduledTimerListeners. This is the main purpose of this class; the TimerManager itself could also be fetched from JNDI via org.springframework.jndi.JndiObjectFactoryBean. In scenarios that just require static registration of tasks at startup, there is no need to access the TimerManager itself in application code.

Note that the TimerManager uses a TimerListener instance that is shared between repeated executions, in contrast to Quartz which instantiates a new Job for each execution.

TimerManagerTaskScheduler

open class TimerManagerTaskScheduler : TimerManagerAccessor, TaskScheduler

Implementation of Spring's TaskScheduler interface, wrapping a CommonJ commonj.timers.TimerManager.