public class DefaultTimeScheduler extends org.apache.avalon.framework.logger.AbstractLogEnabled implements org.apache.avalon.cornerstone.services.scheduler.TimeScheduler, org.apache.avalon.framework.service.Serviceable, org.apache.avalon.framework.activity.Startable, org.apache.avalon.framework.activity.Disposable, java.lang.Runnable, MonitorableTimeSchedulerMBean
| Modifier and Type | Field and Description |
|---|---|
private java.util.Hashtable |
m_entries |
private PriorityQueue |
m_priorityQueue |
private boolean |
m_running |
private org.apache.avalon.cornerstone.services.threads.ThreadManager |
m_threadManager |
private java.util.ArrayList |
m_triggerFailureListeners |
| Constructor and Description |
|---|
DefaultTimeScheduler() |
| Modifier and Type | Method and Description |
|---|---|
void |
addTrigger(java.lang.String name,
org.apache.avalon.cornerstone.services.scheduler.TimeTrigger trigger,
org.apache.avalon.cornerstone.services.scheduler.Target target)
Schedule a time based trigger.
|
void |
addTriggerFailureListener(org.apache.avalon.cornerstone.services.scheduler.TriggerFailureListener listener)
Add a trigger failure listener
|
void |
dispose() |
protected void |
doRunEntry(TimeScheduledEntry entry)
Helper method delegated to to run in a separate thread.
|
java.util.Collection |
getEntries()
Return a collection of the triggerable names.
|
protected TimeScheduledEntry |
getEntry(java.lang.String name)
Retrieve entry from set.
|
protected java.util.Map |
getEntryMap() |
protected TimeScheduledEntry |
getNextEntry()
Retrieve next valid entry.
|
protected PriorityQueue |
getPriorityQueue() |
protected org.apache.avalon.cornerstone.services.threads.ThreadManager |
getThreadManager() |
protected java.util.List |
getTriggerFailureListeners() |
protected boolean |
isRunning() |
protected void |
notifyFailedTriggers(java.lang.Throwable t) |
void |
removeTrigger(java.lang.String name)
Remove a scheduled trigger by name.
|
void |
removeTriggerFailureListener(org.apache.avalon.cornerstone.services.scheduler.TriggerFailureListener listener)
Remove a trigger failure listener
|
protected boolean |
rescheduleEntry(TimeScheduledEntry timeEntry,
boolean clone)
Reschedule an entry.
|
void |
resetTrigger(java.lang.String name)
Force a trigger time to be recalculated.
|
void |
run()
Entry point for thread that monitors entrys and triggers
entrys when necessary.
|
protected void |
runEntry(TimeScheduledEntry entry)
Run entry in a separate thread and reschedule it.
|
void |
service(org.apache.avalon.framework.service.ServiceManager serviceManager)
Supply of the service manager to the component.
|
protected void |
setRunning(boolean running) |
void |
start() |
void |
stop() |
private final java.util.Hashtable m_entries
private final PriorityQueue m_priorityQueue
private org.apache.avalon.cornerstone.services.threads.ThreadManager m_threadManager
private boolean m_running
private java.util.ArrayList m_triggerFailureListeners
protected final org.apache.avalon.cornerstone.services.threads.ThreadManager getThreadManager()
protected final boolean isRunning()
protected final void setRunning(boolean running)
protected final java.util.List getTriggerFailureListeners()
protected final java.util.Map getEntryMap()
protected final PriorityQueue getPriorityQueue()
public void service(org.apache.avalon.framework.service.ServiceManager serviceManager)
throws org.apache.avalon.framework.service.ServiceException
service in interface org.apache.avalon.framework.service.ServiceableserviceManager - the service managerorg.apache.avalon.framework.service.ServiceExceptionpublic void dispose()
dispose in interface org.apache.avalon.framework.activity.Disposablepublic void start()
throws java.lang.Exception
start in interface org.apache.avalon.framework.activity.Startablejava.lang.Exceptionpublic void stop()
stop in interface org.apache.avalon.framework.activity.Startablepublic void run()
run in interface java.lang.Runnablepublic void addTriggerFailureListener(org.apache.avalon.cornerstone.services.scheduler.TriggerFailureListener listener)
addTriggerFailureListener in interface org.apache.avalon.cornerstone.services.scheduler.TimeSchedulerlistener - The listenerpublic void removeTriggerFailureListener(org.apache.avalon.cornerstone.services.scheduler.TriggerFailureListener listener)
removeTriggerFailureListener in interface org.apache.avalon.cornerstone.services.scheduler.TimeSchedulerlistener - The listenerpublic void addTrigger(java.lang.String name,
org.apache.avalon.cornerstone.services.scheduler.TimeTrigger trigger,
org.apache.avalon.cornerstone.services.scheduler.Target target)
addTrigger in interface org.apache.avalon.cornerstone.services.scheduler.TimeSchedulername - the name of the triggertrigger - the triggertarget - the targetpublic void removeTrigger(java.lang.String name)
throws java.util.NoSuchElementException
removeTrigger in interface org.apache.avalon.cornerstone.services.scheduler.TimeSchedulername - the name of the triggerjava.util.NoSuchElementException - if no trigger exists with that namepublic void resetTrigger(java.lang.String name)
throws java.util.NoSuchElementException
resetTrigger in interface org.apache.avalon.cornerstone.services.scheduler.TimeSchedulername - the name of the triggerjava.util.NoSuchElementException - if no trigger exists with that namepublic java.util.Collection getEntries()
getEntries in interface MonitorableTimeSchedulerMBeanprotected boolean rescheduleEntry(TimeScheduledEntry timeEntry, boolean clone)
timeEntry - the entryclone - true if new entry is to be createdprotected TimeScheduledEntry getEntry(java.lang.String name) throws java.util.NoSuchElementException
name - the name of entryjava.util.NoSuchElementException - if no entry is found with that nameprotected void runEntry(TimeScheduledEntry entry)
entry - the entry to runprotected void doRunEntry(TimeScheduledEntry entry)
entry - the entry to runprotected TimeScheduledEntry getNextEntry()
protected void notifyFailedTriggers(java.lang.Throwable t)