org.quartz.plugins.xml
Class JobInitializationPlugin

java.lang.Object
  extended by org.quartz.plugins.SchedulerPluginWithUserTransactionSupport
      extended by org.quartz.plugins.xml.JobInitializationPlugin
All Implemented Interfaces:
FileScanListener, SchedulerPlugin

public class JobInitializationPlugin
extends SchedulerPluginWithUserTransactionSupport
implements FileScanListener

This plugin loads XML file(s) to add jobs and schedule them with triggers as the scheduler is initialized, and can optionally periodically scan the file for changes.

The periodically scanning of files for changes is not currently supported in a clustered environment.

If using the JobInitializationPlugin with JobStoreCMT, be sure to set the plugin property wrapInUserTransaction to true. Also, if have a positive scanInterval be sure to set org.quartz.scheduler.wrapJobExecutionInUserTransaction to true.

Author:
James House, Pierre Awaragi, pl47ypus

Field Summary
protected  ClassLoadHelper classLoadHelper
           
 
Constructor Summary
JobInitializationPlugin()
           
 
Method Summary
 void fileUpdated(java.lang.String fileName)
           
 java.lang.String getFileNames()
          Comma separated list of file names (with paths) to the XML files that should be read.
 long getScanInterval()
          The interval (in seconds) at which to scan for changes to the file.
 void initialize(java.lang.String name, Scheduler scheduler)
           Called during creation of the Scheduler in order to give the SchedulerPlugin a chance to initialize.
 boolean isFailOnFileNotFound()
          Whether or not initialization of the plugin should fail (throw an exception) if the file cannot be found.
 boolean isOverWriteExistingJobs()
          Whether or not jobs defined in the XML file should be overwrite existing jobs with the same name.
 boolean isValidating()
          Whether or not the XML should be validated.
 boolean isValidatingSchema()
          Whether or not the XML schema should be validated.
 void processFile(java.lang.String filePath)
           
 void setFailOnFileNotFound(boolean failOnFileNotFound)
          Whether or not initialization of the plugin should fail (throw an exception) if the file cannot be found.
 void setFileNames(java.lang.String fileNames)
          The file name (and path) to the XML file that should be read.
 void setOverWriteExistingJobs(boolean overWriteExistingJobs)
          Whether or not jobs defined in the XML file should be overwrite existing jobs with the same name.
 void setScanInterval(long scanInterval)
          The interval (in seconds) at which to scan for changes to the file.
 void setValidating(boolean validating)
          Whether or not the XML should be validated.
 void setValidatingSchema(boolean validatingSchema)
          Whether or not the XML schema should be validated.
 void shutdown()
          Overriden to ignore wrapInUserTransaction because shutdown() does not interact with the Scheduler.
 void start(javax.transaction.UserTransaction userTransaction)
           Called when the associated Scheduler is started, in order to let the plug-in know it can now make calls into the scheduler if it needs to.
 
Methods inherited from class org.quartz.plugins.SchedulerPluginWithUserTransactionSupport
getLog, getName, getScheduler, getWrapInUserTransaction, setWrapInUserTransaction, shutdown, start
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

classLoadHelper

protected ClassLoadHelper classLoadHelper
Constructor Detail

JobInitializationPlugin

public JobInitializationPlugin()
Method Detail

getFileNames

public java.lang.String getFileNames()
Comma separated list of file names (with paths) to the XML files that should be read.


setFileNames

public void setFileNames(java.lang.String fileNames)
The file name (and path) to the XML file that should be read.


isOverWriteExistingJobs

public boolean isOverWriteExistingJobs()
Whether or not jobs defined in the XML file should be overwrite existing jobs with the same name.


setOverWriteExistingJobs

public void setOverWriteExistingJobs(boolean overWriteExistingJobs)
Whether or not jobs defined in the XML file should be overwrite existing jobs with the same name.

Parameters:
overWriteExistingJobs -

getScanInterval

public long getScanInterval()
The interval (in seconds) at which to scan for changes to the file. If the file has been changed, it is re-loaded and parsed. The default value for the interval is 0, which disables scanning.

Returns:
Returns the scanInterval.

setScanInterval

public void setScanInterval(long scanInterval)
The interval (in seconds) at which to scan for changes to the file. If the file has been changed, it is re-loaded and parsed. The default value for the interval is 0, which disables scanning.

Parameters:
scanInterval - The scanInterval to set.

isFailOnFileNotFound

public boolean isFailOnFileNotFound()
Whether or not initialization of the plugin should fail (throw an exception) if the file cannot be found. Default is true.


setFailOnFileNotFound

public void setFailOnFileNotFound(boolean failOnFileNotFound)
Whether or not initialization of the plugin should fail (throw an exception) if the file cannot be found. Default is true.


isValidating

public boolean isValidating()
Whether or not the XML should be validated. Default is false.


setValidating

public void setValidating(boolean validating)
Whether or not the XML should be validated. Default is false.


isValidatingSchema

public boolean isValidatingSchema()
Whether or not the XML schema should be validated. Default is true.


setValidatingSchema

public void setValidatingSchema(boolean validatingSchema)
Whether or not the XML schema should be validated. Default is true.


initialize

public void initialize(java.lang.String name,
                       Scheduler scheduler)
                throws SchedulerException

Called during creation of the Scheduler in order to give the SchedulerPlugin a chance to initialize.

Specified by:
initialize in interface SchedulerPlugin
Overrides:
initialize in class SchedulerPluginWithUserTransactionSupport
Parameters:
name - The name by which the plugin is identified.
scheduler - The scheduler to which the plugin is registered.
Throws:
SchedulerConfigException - if there is an error initializing.
SchedulerException

start

public void start(javax.transaction.UserTransaction userTransaction)
Description copied from class: SchedulerPluginWithUserTransactionSupport

Called when the associated Scheduler is started, in order to let the plug-in know it can now make calls into the scheduler if it needs to.

If UserTransaction is not null, the plugin can call setRollbackOnly() on it to signal that the wrapped transaction should rollback.

Overrides:
start in class SchedulerPluginWithUserTransactionSupport
Parameters:
userTransaction - The UserTranaction object used to provide a transaction around the start() operation. It will be null if wrapInUserTransaction is false or if the transaction failed to be started.

shutdown

public void shutdown()
Overriden to ignore wrapInUserTransaction because shutdown() does not interact with the Scheduler.

Specified by:
shutdown in interface SchedulerPlugin
Overrides:
shutdown in class SchedulerPluginWithUserTransactionSupport

processFile

public void processFile(java.lang.String filePath)

fileUpdated

public void fileUpdated(java.lang.String fileName)
Specified by:
fileUpdated in interface FileScanListener
See Also:
FileScanListener.fileUpdated(java.lang.String)


Copyright © 2011. All Rights Reserved.