public class CronTriggerBean extends CronTrigger implements JobDetailAwareTrigger, BeanNameAware, InitializingBean
org.quartz.CronTrigger
class,
making bean-style usage easier.
CronTrigger
itself is already a JavaBean but lacks sensible defaults.
This class uses the Spring bean name as job name, the Quartz default group
("DEFAULT") as job group, the current time as start time, and indefinite
repetition, if not specified.
This class will also register the trigger with the job name and group of
a given org.quartz.JobDetail
. This allows SchedulerFactoryBean
to automatically register a trigger for the corresponding JobDetail,
instead of registering the JobDetail separately.
NOTE: This convenience subclass does not work against Quartz 2.0.
Use Quartz 2.0's native JobDetailImpl
class or the new Quartz 2.0
builder API instead. Alternatively, switch to Spring's CronTriggerFactoryBean
which largely is a drop-in replacement for this class and its properties and
consistently works against Quartz 1.x as well as Quartz 2.x.
#setName
,
#setGroup
,
#setStartTime
,
#setJobName
,
#setJobGroup
,
setJobDetail(JobDetail)
,
SchedulerAccessor.setTriggers(Trigger[])
,
SchedulerAccessor.setJobDetails(JobDetail[])
,
SimpleTriggerBean
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
beanName |
private static Constants |
constants
Constants for the CronTrigger class
|
private JobDetail |
jobDetail |
private long |
startDelay |
JOB_DETAIL_KEY
Constructor and Description |
---|
CronTriggerBean() |
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet()
Invoked by a BeanFactory after it has set all bean properties supplied
(and satisfied BeanFactoryAware and ApplicationContextAware).
|
JobDetail |
getJobDetail()
Return the JobDetail that this Trigger is associated with.
|
void |
setBeanName(java.lang.String beanName)
Set the name of the bean in the bean factory that created this bean.
|
void |
setJobDataAsMap(java.util.Map<java.lang.String,?> jobDataAsMap)
Register objects in the JobDataMap via a given Map.
|
void |
setJobDetail(JobDetail jobDetail)
Set the JobDetail that this trigger should be associated with.
|
void |
setMisfireInstructionName(java.lang.String constantName)
Set the misfire instruction via the name of the corresponding
constant in the
org.quartz.CronTrigger class. |
void |
setStartDelay(long startDelay)
Set the start delay in milliseconds.
|
void |
setTriggerListenerNames(java.lang.String[] names)
Set a list of TriggerListener names for this job, referring to
non-global TriggerListeners registered with the Scheduler.
|
private static final Constants constants
private JobDetail jobDetail
private java.lang.String beanName
private long startDelay
public void setJobDataAsMap(java.util.Map<java.lang.String,?> jobDataAsMap)
These objects will be available to this Trigger only, in contrast to objects in the JobDetail's data map.
jobDataAsMap
- Map with String keys and any objects as values
(for example Spring-managed beans)JobDetailBean.setJobDataAsMap(java.util.Map)
public void setMisfireInstructionName(java.lang.String constantName)
org.quartz.CronTrigger
class.
Default is MISFIRE_INSTRUCTION_SMART_POLICY
.org.quartz.CronTrigger#MISFIRE_INSTRUCTION_FIRE_ONCE_NOW
,
org.quartz.CronTrigger#MISFIRE_INSTRUCTION_DO_NOTHING
,
org.quartz.Trigger#MISFIRE_INSTRUCTION_SMART_POLICY
public void setTriggerListenerNames(java.lang.String[] names)
A TriggerListener name always refers to the name returned by the TriggerListener implementation.
SchedulerAccessor.setTriggerListeners(TriggerListener[])
,
org.quartz.TriggerListener#getName
public void setStartDelay(long startDelay)
The start delay is added to the current system time (when the bean starts)
to control the start time
of the trigger.
If the start delay is non-zero, it will always take precedence over start time.
startDelay
- the start delay, in millisecondspublic void setJobDetail(JobDetail jobDetail)
This is typically used with a bean reference if the JobDetail is a Spring-managed bean. Alternatively, the trigger can also be associated with a job by name and group.
#setJobName
,
#setJobGroup
public JobDetail getJobDetail()
JobDetailAwareTrigger
getJobDetail
in interface JobDetailAwareTrigger
null
if nonepublic void setBeanName(java.lang.String beanName)
BeanNameAware
Invoked after population of normal bean properties but before an
init callback such as InitializingBean.afterPropertiesSet()
or a custom init-method.
setBeanName
in interface BeanNameAware
beanName
- the name of the bean in the factory.
Note that this name is the actual bean name used in the factory, which may
differ from the originally specified name: in particular for inner bean
names, the actual bean name might have been made unique through appending
"#..." suffixes. Use the BeanFactoryUtils.originalBeanName(String)
method to extract the original bean name (without suffix), if desired.public void afterPropertiesSet() throws java.lang.Exception
InitializingBean
This method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.
afterPropertiesSet
in interface InitializingBean
java.lang.Exception
- in the event of misconfiguration (such
as failure to set an essential property) or if initialization fails.