org.opencms.scheduler
Class CmsScheduleManager

java.lang.Object
  extended by org.opencms.scheduler.CmsScheduleManager
All Implemented Interfaces:
org.quartz.Job

public class CmsScheduleManager
extends java.lang.Object
implements org.quartz.Job

Manages the OpenCms scheduled jobs.

Please see the documentation of the class CmsScheduledJobInfo for a full description of the OpenCms scheduling capabilities.

The OpenCms scheduler implementation internally uses the Quartz scheduler from the OpenSymphony project.

This manager class implements the org.quartz.Job interface and wraps all calls to the I_CmsScheduledJob implementing classes.

Since:
6.0.0
Version:
$Revision: 1.38 $
Author:
Alexander Kandzior
See Also:
CmsScheduledJobInfo

Field Summary
static java.lang.String SCHEDULER_JOB_INFO
          Key for the scheduled job description in the job data map.
 
Constructor Summary
CmsScheduleManager()
          Default constructor for the scheduler manager, used only when a new job is scheduled.
CmsScheduleManager(java.util.List configuredJobs)
          Used by the configuration to create a new Scheduler during system startup.
 
Method Summary
 void execute(org.quartz.JobExecutionContext context)
          Implementation of the Quartz job interface.
 CmsScheduledJobInfo getJob(java.lang.String id)
          Returns the currently scheduled job description identified by the given id.
 java.util.List getJobs()
          Returns the currently scheduled job descriptions in an unmodifiable list.
 void initialize(CmsObject adminCms)
          Initializes the OpenCms scheduler.
 void scheduleJob(CmsObject cms, CmsScheduledJobInfo jobInfo)
          Adds a new job to the scheduler.
 void shutDown()
          Shuts down this instance of the OpenCms scheduler manager.
 CmsScheduledJobInfo unscheduleJob(CmsObject cms, java.lang.String jobId)
          Removes a currently scheduled job from the scheduler.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SCHEDULER_JOB_INFO

public static final java.lang.String SCHEDULER_JOB_INFO
Key for the scheduled job description in the job data map.

See Also:
Constant Field Values
Constructor Detail

CmsScheduleManager

public CmsScheduleManager()
Default constructor for the scheduler manager, used only when a new job is scheduled.


CmsScheduleManager

public CmsScheduleManager(java.util.List configuredJobs)
Used by the configuration to create a new Scheduler during system startup.

Parameters:
configuredJobs - the jobs from the configuration
Method Detail

execute

public void execute(org.quartz.JobExecutionContext context)
Implementation of the Quartz job interface.

The architecture is that this scheduler manager generates a new (empty) instance of itself for every OpenCms job scheduled with Quartz. When the Quartz job is executed, the configured implementation of I_CmsScheduledJob will be called from this method.

Specified by:
execute in interface org.quartz.Job
See Also:
Job.execute(org.quartz.JobExecutionContext)

getJob

public CmsScheduledJobInfo getJob(java.lang.String id)
Returns the currently scheduled job description identified by the given id.

Parameters:
id - the job id
Returns:
a job or null if not found

getJobs

public java.util.List getJobs()
Returns the currently scheduled job descriptions in an unmodifiable list.

The objects in the List are of type CmsScheduledJobInfo.

Returns:
the currently scheduled job descriptions in an unmodifiable list

initialize

public void initialize(CmsObject adminCms)
                throws CmsRoleViolationException
Initializes the OpenCms scheduler.

Parameters:
adminCms - an OpenCms context object that must have been initialized with "Admin" permissions
Throws:
CmsRoleViolationException - if the user has insufficient role permissions

scheduleJob

public void scheduleJob(CmsObject cms,
                        CmsScheduledJobInfo jobInfo)
                 throws CmsRoleViolationException,
                        CmsSchedulerException
Adds a new job to the scheduler.

Parameters:
cms - an OpenCms context object that must have been initialized with "Admin" permissions
jobInfo - the job info describing the job to schedule
Throws:
CmsRoleViolationException - if the user has insufficient role permissions
CmsSchedulerException - if the job could not be scheduled for any reason

shutDown

public void shutDown()
Shuts down this instance of the OpenCms scheduler manager.


unscheduleJob

public CmsScheduledJobInfo unscheduleJob(CmsObject cms,
                                         java.lang.String jobId)
                                  throws CmsRoleViolationException
Removes a currently scheduled job from the scheduler.

Parameters:
cms - an OpenCms context object that must have been initialized with "Admin" permissions
jobId - the id of the job to unschedule, obtained with CmsScheduledJobInfo.getId()
Returns:
the CmsScheduledJobInfo of the sucessfully unscheduled job, or null if the job could not be unscheduled
Throws:
CmsRoleViolationException - if the user has insufficient role permissions