jhomenet.responsive
Class ResponsiveScheduler

java.lang.Object
  extended by jhomenet.responsive.ResponsiveScheduler
All Implemented Interfaces:
Service

public class ResponsiveScheduler
extends java.lang.Object
implements Service

Id: $Id$ Description: The PlanScheduler class is responsible for scheduling all plans with the server system. This includes adding or deleting plans, starting/ stopping/pausing an existing plan, or editing any plan in place. Plans can be designated as a single occurance or repeat at given intervals. Plans can be scheduled to start immediately or after a given delay.

Author:
David Irwin

Field Summary
static java.lang.String _PLANID
          The job detail data map plan ID identifier.
 
Method Summary
 void addListener(ResponsiveSchedulerListener listener)
          Add a listener.
 void addOrUpdatePlan(Plan plan)
          Add a plan to the plan scheduler.
 void addTrigger(Trigger trigger)
          Add a trigger to the plan scheduler.
 void execute(Plan plan, Trigger trigger)
          Execute a plan.
static ResponsiveScheduler getInstance()
          Get an instance of the plan scheduler.
 java.lang.String getName()
           
 Plan getPlan(java.lang.Long planId)
          Get a plan given the plan ID.
 java.util.Map<java.lang.Long,Plan> getPlanMap()
          Get the list of plans.
 Scheduler getSchedulerReference()
          Get a reference to the scheduler.
 Trigger getTrigger(java.lang.String triggerFullName)
          Get a trigger.
 java.util.Vector<java.lang.String> getTriggerGroups()
          Get a list of the trigger groups.
 java.util.Map<java.lang.String,Trigger> getTriggerMap()
          Get a list of triggers.
 void initializeService()
          Initialize the scheduler.
 void jobExecutionVetoed(JobExecutionContext context)
          Called by the Scheduler when a JobDetail was about to be executed (an associated Trigger has occured), but a TriggerListener vetoed it's execution.
 void jobScheduled(Trigger trigger)
          Called by the Scheduler when a JobDetail is scheduled.
 void jobsPaused(java.lang.String jobName, java.lang.String jobGroup)
          Called by the Scheduler when a JobDetail or group of JobDetails has been paused.
 void jobsResumed(java.lang.String jobName, java.lang.String jobGroup)
          Called by the Scheduler when a JobDetail or group of JobDetails has been un-paused.
 void jobToBeExecuted(JobExecutionContext context)
          Called by the Scheduler when a JobDetail is about to be executed (an associated Trigger has occured).
 void jobUnscheduled(java.lang.String triggerName, java.lang.String triggerGroup)
          Called by the Scheduler when a JobDetail is unscheduled.
 void jobWasExecuted(JobExecutionContext context, JobExecutionException jee)
          Called by the Scheduler after a JobDetail has been executed, and be for the associated Trigger's triggered(xx) method has been called.
 void loadPlans()
          Load the plans from the database.
 void removeListener(ResponsiveSchedulerListener listener)
          Remove a listener.
 void removePlan(long planId)
           
 void removePlan(Plan planToRemove)
          Remove a plan from the scheduler.
 void removeTrigger(Trigger trigger)
          Remove a trigger from the scheduler.
 void schedulerError(java.lang.String message, SchedulerException cause)
          Called by the Scheduler when a serious error has occured within the scheduler - such as repeated failures in the JobStore, or the inability to instantiate a Job instance when its Trigger has fired.
 void schedulerShutdown()
          Called by the Scheduler to inform the listener that it has shutdown.
 void startService()
          Try to the start the plan scheduler.
 void stopService()
          Try to shutdown the plan scheduler.
 void triggerComplete(Trigger trigger, JobExecutionContext context, int triggerInstructionCode)
          Called by the Scheduler when a Trigger has fired, it's associated JobDetail has been executed, and it's triggered(xx) method has been called.
 void triggerFinalized(Trigger trigger)
          Called by the Scheduler when a Trigger has reached the condition in which it will never fire again.
 void triggerFired(Trigger trigger, JobExecutionContext context)
          Called by the Scheduler when a Trigger has fired, and it's associated JobDetail is about to be executed.
 void triggerMisfired(Trigger trigger)
          Called by the Scheduler when a Trigger has misfired.
 void triggersPaused(java.lang.String triggerName, java.lang.String triggerGroup)
          Called by the Scheduler when a Trigger or group of Triggers has been paused.
 void triggersResumed(java.lang.String triggerName, java.lang.String triggerGroup)
          Called by the Scheduler when a Trigger or group of Triggers has been un-paused.
 boolean vetoJobExecution(Trigger trigger, JobExecutionContext context)
          Called by the Scheduler when a Trigger has fired, and it's associated JobDetail is about to be executed.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_PLANID

public static final java.lang.String _PLANID
The job detail data map plan ID identifier.

See Also:
Constant Field Values
Method Detail

getInstance

public static ResponsiveScheduler getInstance()
Get an instance of the plan scheduler.

Returns:
A reference to the plan scheduler

initializeService

public void initializeService()
Initialize the scheduler.

Specified by:
initializeService in interface Service

startService

public void startService()
Try to the start the plan scheduler.

Specified by:
startService in interface Service
See Also:
Service.startService()

stopService

public void stopService()
Try to shutdown the plan scheduler. Once the scheduler is shut down it cannot be restarted (Quartz rule!).

Specified by:
stopService in interface Service
See Also:
Service.stopService()

getSchedulerReference

public Scheduler getSchedulerReference()
Description copied from interface: Service
Get a reference to the scheduler.

Specified by:
getSchedulerReference in interface Service
Returns:
Reference to the scheduler
See Also:
Service.getSchedulerReference()

addOrUpdatePlan

public void addOrUpdatePlan(Plan plan)
Add a plan to the plan scheduler.

Parameters:
plan - Reference to the plan to add

removePlan

public void removePlan(Plan planToRemove)
Remove a plan from the scheduler.

Parameters:
planId - Plan ID to remove

removePlan

public void removePlan(long planId)

getPlan

public Plan getPlan(java.lang.Long planId)
Get a plan given the plan ID.

Parameters:
planId - Plan ID of plan to retrieve
Returns:
A reference to the plan

loadPlans

public void loadPlans()
               throws ResponsiveException
Load the plans from the database.

Throws:
ResponsiveException

getPlanMap

public java.util.Map<java.lang.Long,Plan> getPlanMap()
Get the list of plans.

Returns:
List of plans

addTrigger

public void addTrigger(Trigger trigger)
Add a trigger to the plan scheduler.

Parameters:
trigger - Reference to the trigger to add

getTrigger

public Trigger getTrigger(java.lang.String triggerFullName)
Get a trigger.

Parameters:
triggerFullName -
Returns:
A trigger

removeTrigger

public void removeTrigger(Trigger trigger)
Remove a trigger from the scheduler.

Parameters:
triggerFullName - Trigger name to remove

getTriggerMap

public java.util.Map<java.lang.String,Trigger> getTriggerMap()
Get a list of triggers.

Returns:
List of triggers

getTriggerGroups

public java.util.Vector<java.lang.String> getTriggerGroups()
Get a list of the trigger groups.

Returns:
A list of trigger groups

execute

public void execute(Plan plan,
                    Trigger trigger)
             throws java.lang.Exception
Execute a plan.

Parameters:
plan - The plan to execute
trigger - The trigger to be used with the plan
Throws:
ResponsiveException
java.lang.Exception

addListener

public void addListener(ResponsiveSchedulerListener listener)
Add a listener.

Parameters:
listener -

removeListener

public void removeListener(ResponsiveSchedulerListener listener)
Remove a listener.

Parameters:
listener -

jobScheduled

public void jobScheduled(Trigger trigger)
Called by the Scheduler when a JobDetail is scheduled.

See Also:
org.quartz.SchedulerListener#jobScheduled(org.quartz.Trigger)

jobsPaused

public void jobsPaused(java.lang.String jobName,
                       java.lang.String jobGroup)
Called by the Scheduler when a JobDetail or group of JobDetails has been paused.

See Also:
org.quartz.SchedulerListener#jobsPaused(java.lang.String, java.lang.String)

jobsResumed

public void jobsResumed(java.lang.String jobName,
                        java.lang.String jobGroup)
Called by the Scheduler when a JobDetail or group of JobDetails has been un-paused.

See Also:
org.quartz.SchedulerListener#jobsResumed(java.lang.String, java.lang.String)

jobUnscheduled

public void jobUnscheduled(java.lang.String triggerName,
                           java.lang.String triggerGroup)
Called by the Scheduler when a JobDetail is unscheduled.

See Also:
org.quartz.SchedulerListener#jobUnscheduled(java.lang.String, java.lang.String)

schedulerError

public void schedulerError(java.lang.String message,
                           SchedulerException cause)
Called by the Scheduler when a serious error has occured within the scheduler - such as repeated failures in the JobStore, or the inability to instantiate a Job instance when its Trigger has fired.

See Also:
org.quartz.SchedulerListener#schedulerError(java.lang.String, org.quartz.SchedulerException)

schedulerShutdown

public void schedulerShutdown()
Called by the Scheduler to inform the listener that it has shutdown.

See Also:
org.quartz.SchedulerListener#schedulerShutdown()

triggerFinalized

public void triggerFinalized(Trigger trigger)
Called by the Scheduler when a Trigger has reached the condition in which it will never fire again.

See Also:
org.quartz.SchedulerListener#triggerFinalized(org.quartz.Trigger)

triggersPaused

public void triggersPaused(java.lang.String triggerName,
                           java.lang.String triggerGroup)
Called by the Scheduler when a Trigger or group of Triggers has been paused.

See Also:
org.quartz.SchedulerListener#triggersPaused(java.lang.String, java.lang.String)

triggersResumed

public void triggersResumed(java.lang.String triggerName,
                            java.lang.String triggerGroup)
Called by the Scheduler when a Trigger or group of Triggers has been un-paused.

See Also:
org.quartz.SchedulerListener#triggersResumed(java.lang.String, java.lang.String)

triggerFired

public void triggerFired(Trigger trigger,
                         JobExecutionContext context)
Called by the Scheduler when a Trigger has fired, and it's associated JobDetail is about to be executed.

See Also:
org.quartz.TriggerListener#triggerFired(org.quartz.Trigger, org.quartz.JobExecutionContext)

triggerMisfired

public void triggerMisfired(Trigger trigger)
Called by the Scheduler when a Trigger has misfired.

See Also:
org.quartz.TriggerListener#triggerMisfired(org.quartz.Trigger)

vetoJobExecution

public boolean vetoJobExecution(Trigger trigger,
                                JobExecutionContext context)
Called by the Scheduler when a Trigger has fired, and it's associated JobDetail is about to be executed.

See Also:
org.quartz.TriggerListener#vetoJobExecution(org.quartz.Trigger, org.quartz.JobExecutionContext)

triggerComplete

public void triggerComplete(Trigger trigger,
                            JobExecutionContext context,
                            int triggerInstructionCode)
Called by the Scheduler when a Trigger has fired, it's associated JobDetail has been executed, and it's triggered(xx) method has been called.

See Also:
org.quartz.TriggerListener#triggerComplete(org.quartz.Trigger, org.quartz.JobExecutionContext, int)

getName

public java.lang.String getName()
See Also:
org.quartz.JobListener#getName()

jobToBeExecuted

public void jobToBeExecuted(JobExecutionContext context)
Called by the Scheduler when a JobDetail is about to be executed (an associated Trigger has occured).

See Also:
org.quartz.JobListener#jobToBeExecuted(org.quartz.JobExecutionContext)

jobWasExecuted

public void jobWasExecuted(JobExecutionContext context,
                           JobExecutionException jee)
Called by the Scheduler after a JobDetail has been executed, and be for the associated Trigger's triggered(xx) method has been called.

See Also:
org.quartz.JobListener#jobWasExecuted(org.quartz.JobExecutionContext, org.quartz.JobExecutionException)

jobExecutionVetoed

public void jobExecutionVetoed(JobExecutionContext context)
Called by the Scheduler when a JobDetail was about to be executed (an associated Trigger has occured), but a TriggerListener vetoed it's execution.

See Also:
org.quartz.JobListener#jobExecutionVetoed(org.quartz.JobExecutionContext)


Copyright © 2004-2005 David Irwin. All Rights Reserved.