|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
org.quartz.xml Class XMLSchedulingDataProcessor
java.lang.Object org.quartz.xml.XMLSchedulingDataProcessor
- All Implemented Interfaces:
- ErrorHandler
public class XMLSchedulingDataProcessor
- extends Object
- implements ErrorHandler
Parses an XML file that declares Jobs and their schedules (Triggers), and processes the related data. The xml document must conform to the format defined in "job_scheduling_data_1_8.xsd" The same instance can be used again and again, however a single instance is not thread-safe.
- Since:
- Quartz 1.8
- Author:
- James House, Past contributions from Chris Bonham, Past contributions from pl47ypus
Field Summary | |
---|---|
protected org.quartz.spi.ClassLoadHelper |
classLoadHelper
|
protected static SimpleDateFormat |
dateFormat
|
protected List<String> |
jobGroupsToDelete
|
protected List<String> |
jobGroupsToNeverDelete
|
protected List<JobKey> |
jobsToDelete
|
protected List<JobDetail> |
loadedJobs
|
protected List<Trigger> |
loadedTriggers
|
static String |
QUARTZ_NS
|
static String |
QUARTZ_SCHEMA_WEB_URL
|
static String |
QUARTZ_SYSTEM_ID_JAR_PREFIX
|
static String |
QUARTZ_XML_DEFAULT_FILE_NAME
|
static String |
QUARTZ_XSD_PATH_IN_JAR
|
protected List<String> |
triggerGroupsToDelete
|
protected List<String> |
triggerGroupsToNeverDelete
|
protected List<TriggerKey> |
triggersToDelete
|
protected Collection |
validationExceptions
|
protected static String |
XSD_DATE_FORMAT
XML Schema dateTime datatype format. |
Constructor Summary | |
---|---|
XMLSchedulingDataProcessor(org.quartz.spi.ClassLoadHelper clh)
Constructor for JobSchedulingDataLoader. |
Method Summary | |
---|---|
void |
addJobGroupToNeverDelete(String group)
Add the given group to the list of job groups that will never be deleted by this processor, even if a pre-processing-command to delete the group is encountered. |
protected void |
addJobToSchedule(JobDetail job)
|
void |
addTriggerGroupToNeverDelete(String group)
Add the given group to the list of trigger groups that will never be deleted by this processor, even if a pre-processing-command to delete the group is encountered. |
protected void |
addTriggerToSchedule(Trigger trigger)
|
protected void |
addValidationException(SAXException e)
Adds a detected validation exception. |
protected void |
clearValidationExceptions()
Resets the the number of detected validation exceptions. |
void |
error(SAXParseException e)
ErrorHandler interface. |
protected void |
executePreProcessCommands(Scheduler scheduler)
|
void |
fatalError(SAXParseException e)
ErrorHandler interface. |
protected Boolean |
getBoolean(XPath xpath,
String elementName,
Document document)
|
protected InputStream |
getInputStream(String fileName)
Returns an InputStream from the fileName as a resource. |
List<String> |
getJobGroupsToNeverDelete()
Get the (unmodifiable) list of job groups that will never be deleted by this processor, even if a pre-processing-command to delete the group is encountered. |
protected List<JobDetail> |
getLoadedJobs()
Returns a List of jobs loaded from the xml file. |
protected List<Trigger> |
getLoadedTriggers()
Returns a List of triggers loaded from the xml file. |
protected String |
getSystemIdForFileName(String fileName)
For the given fileName , attempt to expand it to its full path
for use as a system id. |
List<String> |
getTriggerGroupsToNeverDelete()
Get the (unmodifiable) list of trigger groups that will never be deleted by this processor, even if a pre-processing-command to delete the group is encountered. |
protected String |
getTrimmedToNullString(XPath xpath,
String elementName,
Node parentNode)
|
protected URL |
getURL(String fileName)
Returns an URL from the fileName as a resource. |
protected void |
initDocumentParser()
Initializes the XML parser. |
boolean |
isIgnoreDuplicates()
If true (and OverWriteExistingData is false) then any
job/triggers encountered in this file that have names that already exist
in the scheduler will be ignored, and no error will be produced. |
boolean |
isOverWriteExistingData()
Whether the existing scheduling data (with same identifiers) will be overwritten. |
protected void |
maybeThrowValidationException()
Throws a ValidationException if the number of validationExceptions detected is greater than zero. |
protected void |
prepForProcessing()
|
protected void |
process(InputSource is)
|
protected void |
processFile()
Process the xml file in the default location (a file named "quartz_jobs.xml" in the current working directory). |
protected void |
processFile(String fileName)
Process the xml file named fileName . |
protected void |
processFile(String fileName,
String systemId)
Process the xmlfile named fileName with the given system
ID. |
void |
processFileAndScheduleJobs(Scheduler sched,
boolean overWriteExistingJobs)
Process the xml file in the default location, and schedule all of the jobs defined within it. |
void |
processFileAndScheduleJobs(String fileName,
Scheduler sched)
Process the xml file in the given location, and schedule all of the jobs defined within it. |
void |
processFileAndScheduleJobs(String fileName,
String systemId,
Scheduler sched)
Process the xml file in the given location, and schedule all of the jobs defined within it. |
void |
processStreamAndScheduleJobs(InputStream stream,
String systemId,
Scheduler sched)
Process the xmlfile named fileName with the given system
ID. |
boolean |
removeJobGroupToNeverDelete(String group)
Remove the given group to the list of job groups that will never be deleted by this processor, even if a pre-processing-command to delete the group is encountered. |
boolean |
removeTriggerGroupToNeverDelete(String group)
Remove the given group to the list of trigger groups that will never be deleted by this processor, even if a pre-processing-command to delete the group is encountered. |
protected Object |
resolveSchemaSource()
|
protected void |
scheduleJobs(Scheduler sched)
Schedules the given sets of jobs and triggers. |
void |
setIgnoreDuplicates(boolean ignoreDuplicates)
If true (and OverWriteExistingData is false) then any
job/triggers encountered in this file that have names that already exist
in the scheduler will be ignored, and no error will be produced. |
protected void |
setOverWriteExistingData(boolean overWriteExistingData)
Whether the existing scheduling data (with same identifiers) will be overwritten. |
void |
warning(SAXParseException e)
ErrorHandler interface. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
QUARTZ_NS
public static final String QUARTZ_NS
- See Also:
- Constant Field Values
QUARTZ_SCHEMA_WEB_URL
public static final String QUARTZ_SCHEMA_WEB_URL
- See Also:
- Constant Field Values
QUARTZ_XSD_PATH_IN_JAR
public static final String QUARTZ_XSD_PATH_IN_JAR
- See Also:
- Constant Field Values
QUARTZ_XML_DEFAULT_FILE_NAME
public static final String QUARTZ_XML_DEFAULT_FILE_NAME
- See Also:
- Constant Field Values
QUARTZ_SYSTEM_ID_JAR_PREFIX
public static final String QUARTZ_SYSTEM_ID_JAR_PREFIX
- See Also:
- Constant Field Values
XSD_DATE_FORMAT
protected static final String XSD_DATE_FORMAT
- XML Schema dateTime datatype format.
See http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/#dateTime
- See Also:
- Constant Field Values
dateFormat
protected static final SimpleDateFormat dateFormat
jobGroupsToDelete
protected List<String> jobGroupsToDelete
triggerGroupsToDelete
protected List<String> triggerGroupsToDelete
jobsToDelete
protected List<JobKey> jobsToDelete
triggersToDelete
protected List<TriggerKey> triggersToDelete
loadedJobs
protected List<JobDetail> loadedJobs
loadedTriggers
protected List<Trigger> loadedTriggers
validationExceptions
protected Collection validationExceptions
classLoadHelper
protected org.quartz.spi.ClassLoadHelper classLoadHelper
jobGroupsToNeverDelete
protected List<String> jobGroupsToNeverDelete
triggerGroupsToNeverDelete
protected List<String> triggerGroupsToNeverDelete
Constructor Detail |
---|
XMLSchedulingDataProcessor
public XMLSchedulingDataProcessor(org.quartz.spi.ClassLoadHelper clh) throws ParserConfigurationException
- Constructor for JobSchedulingDataLoader.
- Parameters:
clh
- class-loader helper to share with digester.- Throws:
ParserConfigurationException
- if the XML parser cannot be configured as needed.
Method Detail |
---|
initDocumentParser
protected void initDocumentParser() throws ParserConfigurationException
- Initializes the XML parser.
- Throws:
ParserConfigurationException
resolveSchemaSource
protected Object resolveSchemaSource()
isOverWriteExistingData
public boolean isOverWriteExistingData()
- Whether the existing scheduling data (with same identifiers) will be
overwritten.
If false, and
IgnoreDuplicates
is not false, and jobs or triggers with the same names already exist as those in the file, an error will occur. - See Also:
isIgnoreDuplicates()
setOverWriteExistingData
protected void setOverWriteExistingData(boolean overWriteExistingData)
- Whether the existing scheduling data (with same identifiers) will be
overwritten.
If false, and
IgnoreDuplicates
is not false, and jobs or triggers with the same names already exist as those in the file, an error will occur. - See Also:
setIgnoreDuplicates(boolean)
isIgnoreDuplicates
public boolean isIgnoreDuplicates()
- If true (and
OverWriteExistingData
is false) then any job/triggers encountered in this file that have names that already exist in the scheduler will be ignored, and no error will be produced. - See Also:
isOverWriteExistingData()
setIgnoreDuplicates
public void setIgnoreDuplicates(boolean ignoreDuplicates)
- If true (and
OverWriteExistingData
is false) then any job/triggers encountered in this file that have names that already exist in the scheduler will be ignored, and no error will be produced. - See Also:
setOverWriteExistingData(boolean)
addJobGroupToNeverDelete
public void addJobGroupToNeverDelete(String group)
- Add the given group to the list of job groups that will never be
deleted by this processor, even if a pre-processing-command to
delete the group is encountered.
- Parameters:
group
-
removeJobGroupToNeverDelete
public boolean removeJobGroupToNeverDelete(String group)
- Remove the given group to the list of job groups that will never be
deleted by this processor, even if a pre-processing-command to
delete the group is encountered.
- Parameters:
group
-
getJobGroupsToNeverDelete
public List<String> getJobGroupsToNeverDelete()
- Get the (unmodifiable) list of job groups that will never be
deleted by this processor, even if a pre-processing-command to
delete the group is encountered.
- Parameters:
group
-
addTriggerGroupToNeverDelete
public void addTriggerGroupToNeverDelete(String group)
- Add the given group to the list of trigger groups that will never be
deleted by this processor, even if a pre-processing-command to
delete the group is encountered.
- Parameters:
group
-
removeTriggerGroupToNeverDelete
public boolean removeTriggerGroupToNeverDelete(String group)
- Remove the given group to the list of trigger groups that will never be
deleted by this processor, even if a pre-processing-command to
delete the group is encountered.
- Parameters:
group
-
getTriggerGroupsToNeverDelete
public List<String> getTriggerGroupsToNeverDelete()
- Get the (unmodifiable) list of trigger groups that will never be
deleted by this processor, even if a pre-processing-command to
delete the group is encountered.
- Parameters:
group
-
processFile
protected void processFile() throws Exception
- Process the xml file in the default location (a file named
"quartz_jobs.xml" in the current working directory).
- Throws:
Exception
processFile
protected void processFile(String fileName) throws Exception
- Process the xml file named
fileName
. - Parameters:
fileName
- meta data file name.- Throws:
Exception
getSystemIdForFileName
protected String getSystemIdForFileName(String fileName)
- For the given
fileName
, attempt to expand it to its full path for use as a system id. - See Also:
getURL(String)
,processFile()
,processFile(String)
,processFileAndScheduleJobs(Scheduler, boolean)
,#processFileAndScheduleJobs(String, Scheduler, boolean)
getURL
protected URL getURL(String fileName)
- Returns an
URL
from the fileName as a resource. - Parameters:
fileName
- file name.- Returns:
- an
URL
from the fileName as a resource.
prepForProcessing
protected void prepForProcessing()
processFile
protected void processFile(String fileName, String systemId) throws ValidationException, ParserConfigurationException, SAXException, IOException, SchedulerException, ClassNotFoundException, ParseException, XPathException
- Process the xmlfile named
fileName
with the given system ID. - Parameters:
fileName
- meta data file name.systemId
- system ID.- Throws:
ValidationException
ParserConfigurationException
SAXException
IOException
SchedulerException
ClassNotFoundException
ParseException
XPathException
processStreamAndScheduleJobs
public void processStreamAndScheduleJobs(InputStream stream, String systemId, Scheduler sched) throws ValidationException, ParserConfigurationException, SAXException, XPathException, IOException, SchedulerException, ClassNotFoundException, ParseException
- Process the xmlfile named
fileName
with the given system ID. - Parameters:
stream
- an input stream containing the xml content.systemId
- system ID.- Throws:
ValidationException
ParserConfigurationException
SAXException
XPathException
IOException
SchedulerException
ClassNotFoundException
ParseException
process
protected void process(InputSource is) throws SAXException, IOException, ParseException, XPathException, ClassNotFoundException
getTrimmedToNullString
protected String getTrimmedToNullString(XPath xpath, String elementName, Node parentNode) throws XPathExpressionException
- Throws:
XPathExpressionException
getBoolean
protected Boolean getBoolean(XPath xpath, String elementName, Document document) throws XPathExpressionException
- Throws:
XPathExpressionException
processFileAndScheduleJobs
public void processFileAndScheduleJobs(Scheduler sched, boolean overWriteExistingJobs) throws SchedulerException, Exception
- Process the xml file in the default location, and schedule all of the
jobs defined within it.
- Throws:
SchedulerException
Exception
processFileAndScheduleJobs
public void processFileAndScheduleJobs(String fileName, Scheduler sched) throws Exception
- Process the xml file in the given location, and schedule all of the
jobs defined within it.
- Parameters:
fileName
- meta data file name.- Throws:
Exception
processFileAndScheduleJobs
public void processFileAndScheduleJobs(String fileName, String systemId, Scheduler sched) throws Exception
- Process the xml file in the given location, and schedule all of the
jobs defined within it.
- Parameters:
fileName
- meta data file name.- Throws:
Exception
getLoadedJobs
protected List<JobDetail> getLoadedJobs()
- Returns a
List
of jobs loaded from the xml file. - Returns:
- a
List
of jobs.
getLoadedTriggers
protected List<Trigger> getLoadedTriggers()
- Returns a
List
of triggers loaded from the xml file. - Returns:
- a
List
of triggers.
getInputStream
protected InputStream getInputStream(String fileName)
- Returns an
InputStream
from the fileName as a resource. - Parameters:
fileName
- file name.- Returns:
- an
InputStream
from the fileName as a resource.
addJobToSchedule
protected void addJobToSchedule(JobDetail job)
addTriggerToSchedule
protected void addTriggerToSchedule(Trigger trigger)
executePreProcessCommands
protected void executePreProcessCommands(Scheduler scheduler) throws SchedulerException
- Throws:
SchedulerException
scheduleJobs
protected void scheduleJobs(Scheduler sched) throws SchedulerException
- Schedules the given sets of jobs and triggers.
- Parameters:
sched
- job scheduler.- Throws:
SchedulerException
- if the Job or Trigger cannot be added to the Scheduler, or there is an internal Scheduler error.
warning
public void warning(SAXParseException e) throws SAXException
- ErrorHandler interface.
Receive notification of a warning.
- Specified by:
warning
in interfaceErrorHandler
- Parameters:
e
- The error information encapsulated in a SAX parse exception.- Throws:
SAXException
- Any SAX exception, possibly wrapping another exception.
error
public void error(SAXParseException e) throws SAXException
- ErrorHandler interface.
Receive notification of a recoverable error.
- Specified by:
error
in interfaceErrorHandler
- Parameters:
e
- The error information encapsulated in a SAX parse exception.- Throws:
SAXException
- Any SAX exception, possibly wrapping another exception.
fatalError
public void fatalError(SAXParseException e) throws SAXException
- ErrorHandler interface.
Receive notification of a non-recoverable error.
- Specified by:
fatalError
in interfaceErrorHandler
- Parameters:
e
- The error information encapsulated in a SAX parse exception.- Throws:
SAXException
- Any SAX exception, possibly wrapping another exception.
addValidationException
protected void addValidationException(SAXException e)
- Adds a detected validation exception.
- Parameters:
e
- SAX exception.
clearValidationExceptions
protected void clearValidationExceptions()
- Resets the the number of detected validation exceptions.
maybeThrowValidationException
protected void maybeThrowValidationException() throws ValidationException
- Throws a ValidationException if the number of validationExceptions
detected is greater than zero.
- Throws:
ValidationException
- DTD validation exception.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright 2001-2011, Terracotta, Inc.