Class XMLSchedulingDataProcessorPlugin

  • All Implemented Interfaces:
    FileScanListener, SchedulerPlugin

    public class XMLSchedulingDataProcessorPlugin
    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 XML schema definition can be found here: http://www.quartz-scheduler.org/xml/job_scheduling_data_2_0.xsd

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

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

    Author:
    James House, Pierre Awaragi, pl47ypus
    See Also:
    XMLSchedulingDataProcessor
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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, ClassLoadHelper schedulerFactoryClassLoadHelper)
      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.
      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 setScanInterval​(long scanInterval)
      The interval (in seconds) at which to scan for changes to the file.
      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 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • XMLSchedulingDataProcessorPlugin

        public XMLSchedulingDataProcessorPlugin()
    • 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.
      • 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.
      • initialize

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

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

        Specified by:
        initialize in interface SchedulerPlugin
        Parameters:
        name - The name by which the plugin is identified.
        scheduler - The scheduler to which the plugin is registered.
        schedulerFactoryClassLoadHelper - The classLoadHelper the SchedulerFactory is actually using
        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.
      • 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)