Anonymous avatar Anonymous committed 0315f25

This commit was manufactured by cvs2svn to create tag 'v1_5_0'.

git-svn-id: http://svn.opensymphony.com/svn/quartz/tags/v1_5_0@257 69f7d36a-ea1c-0410-88ea-9fd03e4c9665

Comments (0)

Files changed (110)

docs/wikidocs/BestPractices.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        BestPractices
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <p><b>The following suggestions are considered the 'best practices' for using various aspects of Quartz.</b></p>
-
-<p><br clear="all" /></p>
-
-
-<h5><a name="BestPractices-JobDataMapTips">JobDataMap Tips</a></h5>
-
-<p>The <em>JobDataMap</em> that is found on the <em>JobExecutionContext</em> during <em>Job</em> execution serves as a convenience.  It is a merge of the <em>JobDataMap</em> found on the <em>JobDetail</em> and the one found on the <em>Trigger</em>, with the value in the latter overriding any same-named values in the former.</p>
-
-<p>Storing <em>JobDataMap</em> values on a <em>Trigger</em> can be useful in the case where you have a <em>Job</em> that is stored in the scheduler for regular/repeated use by multiple Triggers, yet with each independent triggering, you want to supply the Job with different data inputs.  </p>
-
-<p>In light of all of the above, we recommend as a best practice the following:  Code within the Job.execute(..) method should generally retrieve values from the <em>JobDataMap</em> on found on the <em>JobExecutionContext</em>, rather than directly from the one on the <em>JobDetail</em>.</p>
-
-
-                                            <div class="tabletitle">
-                            <a name="comments">Comments:</a>
-                        </div>
-                        <table border="0" width="100%">
-                                                        <tr>
-                                <td >
-                                    <a name="comment-4941"></a>
-                                    <font class="smallfont"><p>The last best practice is code that is only in CVS currently.</p></font>
-                                    <div align="left" class="smallfont" style="color: #666666; width: 98%; margin-bottom: 10px;">
-                                        <img src="icons/comment_16.gif" height="16" width="16" border="0" align="absmiddle"/>
-                                        Posted by cwidhelm at Jul 14, 2005 09:05
-                                    </div>
-                                </td>
-                            </tr>
-                                                    </table>
-                    			    </td>
-		    </tr>
-	    </table>
-    </body>
-</html>

docs/wikidocs/BiDailyTrigger.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        BiDailyTrigger
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <h1><a name="BiDailyTrigger-TriggerThatExecutesEvery2Days">Trigger That Executes Every 2 Days</a></h1>
-
-<p><br clear="all" />
-At first glance, you would be tempted to use a CronTrigger. However, if this is truly to be every two days, CronTrigger won't work.  To illustrate this, simply think of how many days are in a typical month (28-31). A cron expression like "0 0 5 2/2 * ?" would give us a trigger that would restart its count at the beginning of every month.  This means that we would would get subsequent firings on July 30 and August 2, which is an interval of three days, not two.</p>
-
-<p>Likewise, an expression like "0 0 5 1/2 * ?" would end up firing on July 31 and August 1, just one day apart.</p>
-
-<p>Therefore, for this schedule, only SimpleTrigger really makes sense:</p>
-<div class="code"><div class="codeHeader"><b>Trigger That Executes Every Two Days</b></div><div class="codeContent">
-<pre class="code-java">/* 
- * Note that <span class="code-keyword">this</span> will create a trigger that starts immediately.
- * To control the start time, use trigger.setStartTime(Date)
- */
-Trigger trigger = <span class="code-keyword">new</span> SimpleTrigger(<span class="code-quote">"trigger1"</span>, <span class="code-quote">"group1"</span>);
-trigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
-<span class="code-comment">// 24 hours * 60(minutes per hour) * 60(seconds per minute) * 1000(milliseconds per second)
-</span>trigger.setRepeatInterval(2L * 24L * 60L * 60L * 1000L);</pre>
-</div></div>
-
-<p>Of course, if you don't mind the effect CronTrigger has, it is marginally easier to set up in this case (especially if you want to specify what time the trigger fires).</p>
-
-                    			    </td>
-		    </tr>
-	    </table>
-    </body>
-</html>

docs/wikidocs/BiWeeklyTrigger.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        BiWeeklyTrigger
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <h1><a name="BiWeeklyTrigger-TriggerThatExecutesEvery2Weeks">Trigger That Executes Every 2 Weeks</a></h1>
-
-<p><br clear="all" />
-As with a trigger meant to fire every two days, CronTrigger won't work for this schedule. For more details, see <a href="BiDailyTrigger.html" title="BiDailyTrigger">Trigger That Fires Every 2 Days</a>. We'll need to use a SimpleTrigger:</p>
-<div class="code"><div class="codeHeader"><b>SimpleTrigger That Executes Every Two Weeks</b></div><div class="codeContent">
-<pre class="code-java">/* 
- * Note that <span class="code-keyword">this</span> will create a trigger that starts immediately.
- * To control the start time, use trigger.setStartTime(Date)
- */
-SimpleTrigger trigger = <span class="code-keyword">new</span> SimpleTrigger(<span class="code-quote">"trigger1"</span>, <span class="code-quote">"group1"</span>);
-trigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
-<span class="code-comment">// 7(days per week) * 24(hours per day) * 60(minutes per hour) * 60(seconds per minute) * 1000(milliseconds per second)
-</span>trigger.setRepeatInterval(2L * 7L * 24L * 60L * 60L * 1000L);</pre>
-</div></div>
-
-                    			    </td>
-		    </tr>
-	    </table>
-    </body>
-</html>

docs/wikidocs/ConfigDataSources.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        ConfigDataSources
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <h1><a name="ConfigDataSources-ConfigureDataSources">Configure DataSources</a></h1>
-
-
-<p>If you're using JDBC-Jobstore, you'll be needing a Datasource for its use (or two Datasources, if you're using JobStoreCMT). </p>
-
-<p>Datasources can be configured in two ways:</p>
-<ol>
-	<li>All pool properties specified in the quartz.properties file, so that Quartz can create the Datasource itself.</li>
-	<li>The JNDI location of an application server managed Datasource can be specified, so that Quartz can use it.</li>
-</ol>
-
-
-<p><br clear="all" /></p>
-
-<p>Each datasource you define (typically one or two) must be given a name, and the properties you define for each must contain that name, as shown below.  The DataSource's "NAME" can be anything you want, and has no meaning other  than being able to identify it when it is assigned to the JDBCJobStore.</p>
-
-
-<p><br clear="all" /></p>
-
-<h3><a name="ConfigDataSources-QuartzcreatedDatasourcesaredefinedwiththefollowingproperties%3A">Quartz-created Datasources are defined with the following properties:</a></h3>
-<p><br clear="all" /></p>
-<table class='confluenceTable'>
-<tr>
-<th class='confluenceTh'>Property Name</th>
-<th class='confluenceTh'>Required</th>
-<th class='confluenceTh'>Type</th>
-<th class='confluenceTh'>Default Value</th>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.dataSource.NAME.driver</td>
-<td class='confluenceTd'>yes</td>
-<td class='confluenceTd'>String</td>
-<td class='confluenceTd'>null</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.dataSource.NAME.URL</td>
-<td class='confluenceTd'>yes</td>
-<td class='confluenceTd'>String</td>
-<td class='confluenceTd'>null</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.dataSource.NAME.user</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>String</td>
-<td class='confluenceTd'>""</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.dataSource.NAME.password</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>String</td>
-<td class='confluenceTd'>""</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.dataSource.NAME.maxConnections</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>int</td>
-<td class='confluenceTd'>10</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.dataSource.NAME.validationQuery</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>String</td>
-<td class='confluenceTd'>null</td>
-</tr>
-</table>
-
-
-<p><b>org.quartz.dataSource.NAME.driver</b> <br/>
-Must be the java class name of the JDBC driver for your database.</p>
-
-<p><b>org.quartz.dataSource.NAME.URL</b><br/>
-The connection URL (host, port, etc.) for connection to your database.</p>
-
-<p><b>org.quartz.dataSource.NAME.user</b><br/>
-The user name to use when connecting to your database.</p>
-
-<p><b>org.quartz.dataSource.NAME.password</b><br/>
-The password to use when connecting to your database.</p>
-
-<p><b>org.quartz.dataSource.NAME.maxConnections</b><br/>
-The maximum number of connections that the DataSource can create in it's pool of connections.</p>
-
-<p><b>org.quartz.dataSource.NAME.validationQuery</b><br/>
-Is an optional SQL query string that the DataSource can use to detect and replace failed/corrupt connections.  For example an oracle user might choose "select table_name from user_tables" - which is a  query that should never fail - unless the connection is actually bad. </p>
-
-<div class="code"><div class="codeHeader"><b>Example of a Quartz-defined Datasource</b></div><div class="codeContent">
-<pre class="code-java">org.quartz.dataSource.myDS.driver = oracle.jdbc.driver.OracleDriver
-org.quartz.dataSource.myDS.URL = jdbc:oracle:thin:@10.0.1.23:1521:demodb
-org.quartz.dataSource.myDS.user = myUser
-org.quartz.dataSource.myDS.password = myPassword
-org.quartz.dataSource.myDS.maxConnections = 30</pre>
-</div></div>
-
-<h3><a name="ConfigDataSources-ReferencestoApplicationServerDatasourcesaredefinedwiththefollowingproperties%3A">References to Application Server Datasources are defined with the following properties:</a></h3>
-<p><br clear="all" /></p>
-<table class='confluenceTable'>
-<tr>
-<th class='confluenceTh'>Property Name</th>
-<th class='confluenceTh'>Required</th>
-<th class='confluenceTh'>Type</th>
-<th class='confluenceTh'>Default Value</th>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.dataSource.NAME.jndiURL</td>
-<td class='confluenceTd'>yes</td>
-<td class='confluenceTd'>String</td>
-<td class='confluenceTd'>null</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.dataSource.NAME.java.naming.factory.initial</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>String</td>
-<td class='confluenceTd'>null</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.dataSource.NAME.java.naming.provider.url</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>String</td>
-<td class='confluenceTd'>null</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.dataSource.NAME.java.naming.security.principal</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>String</td>
-<td class='confluenceTd'>null</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.dataSource.NAME.java.naming.security.credentials</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>String</td>
-<td class='confluenceTd'>null</td>
-</tr>
-</table>
-
-
-<p><b>org.quartz.dataSource.NAME.jndiURL</b> <br/>
-The JNDI URL for a DataSource that is managed by your application server. </p>
-
-<p><b>org.quartz.dataSource.NAME.java.naming.factory.initial</b> <br/>
-The (optional) class name of the  JNDI InitialContextFactory that you wish to use.</p>
-
-<p><b>org.quartz.dataSource.NAME.java.naming.provider.url</b> <br/>
-The (optional) URL for connecting to the JNDI context.</p>
-
-<p><b>org.quartz.dataSource.NAME.java.naming.security.principal</b> <br/>
-The (optional) user principal for connecting to the JNDI context.</p>
-
-<p><b>org.quartz.dataSource.NAME.java.naming.security.credentials</b> <br/>
-The (optional) user credentials for connecting to the JNDI context.</p>
-
-<div class="code"><div class="codeHeader"><b>Example of a Datasourced referenced from an Application Server</b></div><div class="codeContent">
-<pre class="code-java">org.quartz.dataSource.myOtherDS.jndiURL=jdbc/myDataSource
-org.quartz.dataSource.myOtherDS.java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory
-org.quartz.dataSource.myOtherDS.java.naming.provider.url=ormi:<span class="code-comment">//localhost
-</span>org.quartz.dataSource.myOtherDS.java.naming.security.principal=admin
-org.quartz.dataSource.myOtherDS.java.naming.security.credentials=123</pre>
-</div></div>
-
-
-                    			    </td>
-		    </tr>
-	    </table>
-    </body>
-</html>

docs/wikidocs/ConfigJDBCJobStoreClustering.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        ConfigJDBCJobStoreClustering
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <h1><a name="ConfigJDBCJobStoreClustering-ClusteringwithJDBCJobStore">Clustering with JDBC-JobStore</a></h1>
-
-<p><br clear="all" /></p>
-
-<p>Clustering brings both high availability and scalability to your scheduler via fail-over and load balancing functionality.</p>
-
-<p><br clear="all" /></p>
-
-<p><img src="ConfigJDBCJobStoreClustering_attachments/quartz_cluster.png" align="absmiddle" border="0" /></p>
-
-
-<p>Clustering currently only works with the JDBC-Jobstore (JobStoreTX or JobStoreCMT), and essentially works by having each node of the cluster share the same database.  </p>
-
-<p>Load-balancing occurs automatically, with each node of the cluster firing jobs as quickly as it can.  When a trigger's firing time occurs, the first node to aquire it (by placing a lock on it) is the node that will fire it.  </p>
-
-<p>Fail-over occurs when one of the nodes fails while in the midst of executing one or more jobs.  When a node fails, the other nodes detect the condition and identify the jobs in the database that were in progress within the failed node.  Any jobs marked for recovery (with the "requests recovery" property on the JobDetail) will be re-executed by the remaining nodes.  Jobs not marked for recovery will simply be freed up for execution at the next time a related trigger fires.</p>
-
-<p><br clear="all" /></p>
-
-<p>Enable clustering by setting the "org.quartz.jobStore.isClustered" property to "true". Each instance in the cluster should use the same copy of the quartz.properties file. Exceptions of this would be to use properties files that are identical, with the following allowable exceptions: Different thread pool size, and different value for the "org.quartz.scheduler.instanceId" property. Each node in the cluster MUST have a unique instanceId, which is easily done (without needing different properties files) by placing "AUTO" as the value of this property.  See the info about the configuration properties of JDBC-JobStore for more information.</p>
-
-<div class="information-block" align='center'><div class='informationMacroPadding'><table cellpadding='5' width='85%' cellspacing='0' class='noteMacro' border='0'><tr><td width='16' valign='top'><img src="/images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>
-<p>Never run clustering on separate machines, unless their clocks are synchronized using some form of time-sync service (daemon) that runs very regularly (the clocks must be within a second of each other). See <a href="http://www.boulder.nist.gov/timefreq/service/its.htm" title="Visit page outside Confluence">&#104;ttp://www.boulder.nist.gov/timefreq/service/its.htm</a> if you are unfamiliar with how to do this.</p></td></tr></table></div></div>
-
-<div class="information-block" align='center'><div class='informationMacroPadding'><table cellpadding='5' width='85%' cellspacing='0' class='noteMacro' border='0'><tr><td width='16' valign='top'><img src="/images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>
-<p>Never fire-up a non-clustered instance against the same set of tables that any other instance is running against. You may get serious data corruption, and will definitely experience eratic behavior.</p></td></tr></table></div></div>
-
-<div class="code"><div class="codeHeader"><b>Example Properties For A Clustered Scheduler</b></div><div class="codeContent">
-<pre class="code-java">#============================================================================
-# Configure Main Scheduler Properties  
-#============================================================================
-
-org.quartz.scheduler.instanceName = MyClusteredScheduler
-org.quartz.scheduler.instanceId = AUTO
-
-#============================================================================
-# Configure ThreadPool  
-#============================================================================
-
-org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
-org.quartz.threadPool.threadCount = 25
-org.quartz.threadPool.threadPriority = 5
-
-#============================================================================
-# Configure JobStore  
-#============================================================================
-
-org.quartz.jobStore.misfireThreshold = 60000
-
-org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
-org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
-org.quartz.jobStore.useProperties = <span class="code-keyword">false</span>
-org.quartz.jobStore.dataSource = myDS
-org.quartz.jobStore.tablePrefix = QRTZ_
-
-org.quartz.jobStore.isClustered = <span class="code-keyword">true</span>
-org.quartz.jobStore.clusterCheckinInterval = 20000
-
-#============================================================================
-# Configure Datasources  
-#============================================================================
-
-org.quartz.dataSource.myDS.driver = oracle.jdbc.driver.OracleDriver
-org.quartz.dataSource.myDS.URL = jdbc:oracle:thin:@polarbear:1521:dev
-org.quartz.dataSource.myDS.user = quartz
-org.quartz.dataSource.myDS.password = quartz
-org.quartz.dataSource.myDS.maxConnections = 5
-org.quartz.dataSource.myDS.validationQuery=select 0 from dual</pre>
-</div></div>
-
-
-                    			    </td>
-		    </tr>
-	    </table>
-    </body>
-</html>
Add a comment to this file

docs/wikidocs/ConfigJDBCJobStoreClustering_attachments/quartz_cluster.png

Removed
Old image

docs/wikidocs/ConfigJobStoreCMT.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        ConfigJobStoreCMT
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <h1><a name="ConfigJobStoreCMT-ConfigureJDBCJobStoreCMT">Configure JDBC-JobStoreCMT</a></h1>
-
-
-<p>JDBCJobStore is used to store scheduling information (job, triggers and calendars) within a relational database.  There are actually two seperate JDBCJobStore classes that you can select between, depending on the transactional behaviour you need.  </p>
-
-<p>JobStoreCMT relies upon transactions being managed by the application which is using Quartz.  A JTA transaction must be in progress before attempt to schedule (or unschedule) jobs/triggers.  This allows the "work" of scheduling to be part of the applications "larger" transaction.  JobStoreCMT actually requires the use of two datasources - one that has it's connection's transactions managed by the application server (via JTA) and one datasource that has connections that do not participate in global (JTA) transactions.   JobStoreCMT is appropriate when applications are using JTA transactions (such as via EJB Session Beans) to perform their work.</p>
-
-<p><br clear="all" /></p>
-
-<p><b>The JobStore is selected by setting the 'org.quartz.jobStore.class' property as such:</b></p>
-
-<div class="code"><div class="codeHeader"><b>Setting The Scheduler's JobStore to JobStoreCMT</b></div><div class="codeContent">
-<pre class="code-java">org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreCMT</pre>
-</div></div>
-
-<p><br clear="all" /></p>
-
-<p>JobStoreCMT can be tuned with the following properties:
-<br clear="all" /></p>
-<table class='confluenceTable'>
-<tr>
-<th class='confluenceTh'>Property Name</th>
-<th class='confluenceTh'>Required</th>
-<th class='confluenceTh'>Type</th>
-<th class='confluenceTh'>Default Value</th>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.driverDelegateClass</td>
-<td class='confluenceTd'>yes</td>
-<td class='confluenceTd'>string</td>
-<td class='confluenceTd'>null</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.dataSource</td>
-<td class='confluenceTd'>yes</td>
-<td class='confluenceTd'>string</td>
-<td class='confluenceTd'>null</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.nonManagedTXDataSource</td>
-<td class='confluenceTd'>yes</td>
-<td class='confluenceTd'>string</td>
-<td class='confluenceTd'>null</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.tablePrefix</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>string</td>
-<td class='confluenceTd'>"QRTZ_"</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.useProperties</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>boolean</td>
-<td class='confluenceTd'>false</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.misfireThreshold</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>int</td>
-<td class='confluenceTd'>60000</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.isClustered</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>boolean</td>
-<td class='confluenceTd'>false</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.clusterCheckinInterval</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>long</td>
-<td class='confluenceTd'>15000</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.maxMisfiresToHandleAtATime</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>int</td>
-<td class='confluenceTd'>20</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.dontSetAutoCommitFalse</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>boolean</td>
-<td class='confluenceTd'>false</td>
-</tr>
-<tr>
-</tr>
-</table>
-<p>org.quartz.jobStore.dontSetNonManagedTXConnectionAutoCommitFalse|no|boolean|false|</p>
-<table class='confluenceTable'>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.selectWithLockSQL</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>string</td>
-<td class='confluenceTd'>"SELECT * FROM {0}LOCKS WHERE LOCK_NAME = ? FOR UPDATE"</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.txIsolationLevelSerializable</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>boolean</td>
-<td class='confluenceTd'>false</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.txIsolationLevelReadCommitted</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>boolean</td>
-<td class='confluenceTd'>false</td>
-</tr>
-</table>
-
-
-<p><b>org.quartz.jobStore.driverDelegateClass</b> <br/>
-Driver delegates understand the particular 'dialects' of varies database systems.  Possible choices include:</p>
-<ul>
-	<li>org.quartz.impl.jdbcjobstore.StdJDBCDelegate (for fully JDBC-compliant drivers)</li>
-	<li>org.quartz.impl.jdbcjobstore.MSSQLDelegate (for Microsoft SQL Server, and Sybase)</li>
-	<li>org.quartz.impl.jdbcjobstore.PostgreSQLDelegate</li>
-	<li>org.quartz.impl.jdbcjobstore.WebLogicDelegate (for WebLogic drivers)</li>
-	<li>org.quartz.impl.jdbcjobstore.oracle.OracleDelegate</li>
-	<li>org.quartz.impl.jdbcjobstore.oracle.weblogic.WebLogicOracleDelegate (for Oracle drivers used within Weblogic)</li>
-	<li>org.quartz.impl.jdbcjobstore.CloudscapeDelegate</li>
-	<li>org.quartz.impl.jdbcjobstore.DB2v6Delegate</li>
-	<li>org.quartz.impl.jdbcjobstore.DB2v7Delegate</li>
-	<li>org.quartz.impl.jdbcjobstore.HSQLDBDelegate</li>
-	<li>org.quartz.impl.jdbcjobstore.PointbaseDelegate</li>
-</ul>
-
-
-<p>Note that many databases are known to work with the StdJDBCDelegate, while others are known to work with delegates for other databases, for example Derby works well with the Cloudscape delegate (no surprise there).</p>
-
-
-<p><b>org.quartz.jobStore.dataSource</b><br/>
-The value of this property must be the name of one the DataSources defined in the configuration properties file.  For JobStoreCMT, it is required that this DataSource contains connections that are capable of participating in JTA (e.g. container-managed) transactions.  This typically means that the DataSource will be configured and maintained within and by the application server, and Quartz will obtain a handle to it via JNDI.  See the <a href="ConfigDataSources.html" title="ConfigDataSources">configuration docs for DataSources</a> for more information.</p>
-
-<p><b>org.quartz.jobStore.nonManagedTXDataSource</b><br/>
-JobStoreCMT <em>requires</em> a (second) datasource that contains connections that will <em>not</em> be part of container-managed transactions.  The value of this property must be the name of one the DataSources defined in the configuration properties file.  This datasource must contain non-CMT connections, or in other words, connections for which it is legal for Quartz to directly call commit() and rollback() on.</p>
-
-<p><b>org.quartz.jobStore.tablePrefix</b><br/>
-JDBCJobStore's "table prefix" property is a string equal to the prefix given to Quartz's tables that were created in your database.  You can have multiple sets of Quartz's tables within the same database if they use different table prefixes.</p>
-
-<p><b>org.quartz.jobStore.useProperties</b> <br/>
-The "use properties" flag instructs JDBCJobStore that all values in JobDataMaps will be Strings, and therefore can be stored as name-value pairs, rather than storing more complex objects in their serialized form in the BLOB column.  This is can be handy, as you avoid the class versioning issues that can arise from serializing your non-String classes into a BLOB.</p>
-
-<p><b>org.quartz.jobStore.misfireThreshold</b> <br/>
-The the number of milliseconds the scheduler will 'tolerate' a trigger to pass its next-fire-time by, before being considered "misfired".  The default value (if you don't make an entry of this property in your configuration) is 60000 (60 seconds).</p>
-
-<p><b>org.quartz.jobStore.isClustered</b><br/>
-Set to "true" in order to turn on clustering features. This property must be set to "true" if you are having multiple instances of Quartz use the same set of database tables... otherwise you will experience havoc.  See the configuration docs for clustering for more information.</p>
-
-<p><b>org.quartz.jobStore.clusterCheckinInterval</b><br/>
-Set the frequency (in milliseconds) at which this instance "checks-in"* with the other instances of the cluster. Affects the quickness of detecting failed instances.</p>
-
-<p><b>org.quartz.jobStore.maxMisfiresToHandleAtATime</b><br/>
-The maximum number of misfired triggers the jobstore will handle in a given pass.  Handling many (more than a couple dozen) at once can cause the database tables to be locked long enough that the performance of firing other (not yet misfired) triggers may be hampered.</p>
-
-<p><b>org.quartz.jobStore.dontSetAutoCommitFalse</b><br/>
-Setting this parameter to "true" tells Quartz not to call <em>setAutoCommit(false)</em> on connections obtained from the DataSource(s).  This can be helpful in a few situations, such as if you have a driver that complains if it is called when it is already off.  This property defaults to false, because most drivers require that <em>setAutoCommit(false)</em> is called.</p>
-
-<p><b>org.quartz.jobStore.dontSetNonManagedTXConnectionAutoCommitFalse</b><br/>
-The same as the property <em>org.quartz.jobStore.dontSetAutoCommitFalse</em>, except that it applies to the nonManagedTXDataSource.</p>
-
-<p><b>org.quartz.jobStore.selectWithLockSQL</b><br/>
-Must be a SQL string that selects a row in the "LOCKS" table and places a lock on the row. If not set, the default is <em>"SELECT * FROM {0}LOCKS WHERE LOCK_NAME = ? FOR UPDATE"</em>,  which works for most databases.  The "{0}" is replaced during run-time with the TABLE_PREFIX that you configured above.</p>
-
-<p><b>org.quartz.jobStore.txIsolationLevelSerializable</b><br/>
-A value of "true" tells Quartz to call <em>setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE)</em> on JDBC connections.  This can be helpful to prevent lock timeouts with some databases under high load, and "long-lasting" transactions.</p>
-
-<p><b>org.quartz.jobStore.txIsolationLevelReadCommitted</b><br/>
-When set to "true", this property tells Quartz to call <em>setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED)</em> on the non-managed JDBC connections.  This can be helpful to prevent lock timeouts with some databases (such as DB2) under high load, and "long-lasting" transactions.</p>
-
-
-                    			    </td>
-		    </tr>
-	    </table>
-    </body>
-</html>

docs/wikidocs/ConfigJobStoreTX.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        ConfigJobStoreTX
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <h1><a name="ConfigJobStoreTX-ConfigureJDBCJobStoreTX">Configure JDBC-JobStoreTX</a></h1>
-
-
-<p>JDBCJobStore is used to store scheduling information (job, triggers and calendars) within a relational database.  There are actually two seperate JDBCJobStore classes that you can select between, depending on the transactional behaviour you need.  </p>
-
-<p>JobStoreTX manages all transactions itself by calling commit() (or rollback()) on the database connection after every action (such as the addition of a job).  JDBCJobStore is appropriate if you are using Quartz in a stand-alone application, or within a servlet container if the application is not using JTA transactions.</p>
-
-
-<p><br clear="all" /></p>
-
-<p><b>The JobStoreTX is selected by setting the 'org.quartz.jobStore.class' property as such:</b></p>
-
-<div class="code"><div class="codeHeader"><b>Setting The Scheduler's JobStore to JobStoreTX</b></div><div class="codeContent">
-<pre class="code-java">org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX</pre>
-</div></div>
-
-<p><br clear="all" /></p>
-
-<p>JobStoreTX can be tuned with the following properties:
-<br clear="all" /></p>
-<table class='confluenceTable'>
-<tr>
-<th class='confluenceTh'>Property Name</th>
-<th class='confluenceTh'>Required</th>
-<th class='confluenceTh'>Type</th>
-<th class='confluenceTh'>Default Value</th>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.driverDelegateClass</td>
-<td class='confluenceTd'>yes</td>
-<td class='confluenceTd'>string</td>
-<td class='confluenceTd'>null</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.dataSource</td>
-<td class='confluenceTd'>yes</td>
-<td class='confluenceTd'>string</td>
-<td class='confluenceTd'>null</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.tablePrefix</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>string</td>
-<td class='confluenceTd'>"QRTZ_"</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.useProperties</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>boolean</td>
-<td class='confluenceTd'>false</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.misfireThreshold</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>int</td>
-<td class='confluenceTd'>60000</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.isClustered</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>boolean</td>
-<td class='confluenceTd'>false</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.clusterCheckinInterval</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>long</td>
-<td class='confluenceTd'>15000</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.maxMisfiresToHandleAtATime</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>int</td>
-<td class='confluenceTd'>20</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.dontSetAutoCommitFalse</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>boolean</td>
-<td class='confluenceTd'>false</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.selectWithLockSQL</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>string</td>
-<td class='confluenceTd'>"SELECT * FROM {0}LOCKS WHERE LOCK_NAME = ? FOR UPDATE"</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.txIsolationLevelSerializable</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>boolean</td>
-<td class='confluenceTd'>false</td>
-</tr>
-</table>
-
-
-<p><b>org.quartz.jobStore.driverDelegateClass</b> <br/>
-Driver delegates understand the particular 'dialects' of varies database systems.  Possible choices include:</p>
-<ul>
-	<li>org.quartz.impl.jdbcjobstore.StdJDBCDelegate (for fully JDBC-compliant drivers)</li>
-	<li>org.quartz.impl.jdbcjobstore.MSSQLDelegate (for Microsoft SQL Server, and Sybase)</li>
-	<li>org.quartz.impl.jdbcjobstore.PostgreSQLDelegate</li>
-	<li>org.quartz.impl.jdbcjobstore.WebLogicDelegate (for WebLogic drivers)</li>
-	<li>org.quartz.impl.jdbcjobstore.oracle.OracleDelegate</li>
-	<li>org.quartz.impl.jdbcjobstore.oracle.WebLogicOracleDelegate (for Oracle drivers used within Weblogic)</li>
-	<li>org.quartz.impl.jdbcjobstore.oracle.weblogic.WebLogicOracleDelegate (for Oracle drivers used within Weblogic)</li>
-	<li>org.quartz.impl.jdbcjobstore.CloudscapeDelegate</li>
-	<li>org.quartz.impl.jdbcjobstore.DB2v6Delegate</li>
-	<li>org.quartz.impl.jdbcjobstore.DB2v7Delegate</li>
-	<li>org.quartz.impl.jdbcjobstore.HSQLDBDelegate</li>
-	<li>org.quartz.impl.jdbcjobstore.PointbaseDelegate</li>
-</ul>
-
-
-<p>Note that many databases are known to work with the StdJDBCDelegate, while others are known to work with delegates for other databases, for example Derby works well with the Cloudscape delegate (no surprise there).</p>
-
-<p><b>org.quartz.jobStore.dataSource</b><br/>
-The value of this property must be the name of one the DataSources defined in the configuration properties file.  See the <a href="ConfigDataSources.html" title="ConfigDataSources">configuration docs for DataSources</a> for more information.</p>
-
-<p><b>org.quartz.jobStore.tablePrefix</b><br/>
-JDBCJobStore's "table prefix" property is a string equal to the prefix given to Quartz's tables that were created in your database.  You can have multiple sets of Quartz's tables within the same database if they use different table prefixes.</p>
-
-<p><b>org.quartz.jobStore.useProperties</b> <br/>
-The "use properties" flag instructs JDBCJobStore that all values in JobDataMaps will be Strings, and therefore can be stored as name-value pairs, rather than storing more complex objects in their serialized form in the BLOB column.  This is can be handy, as you avoid the class versioning issues that can arise from serializing your non-String classes into a BLOB.</p>
-
-<p><b>org.quartz.jobStore.misfireThreshold</b> <br/>
-The the number of milliseconds the scheduler will 'tolerate' a trigger to pass its next-fire-time by, before being considered "misfired".  The default value (if you don't make an entry of this property in your configuration) is 60000 (60 seconds).</p>
-
-<p><b>org.quartz.jobStore.isClustered</b><br/>
-Set to "true" in order to turn on clustering features. This property must be set to "true" if you are having multiple instances of Quartz use the same set of database tables... otherwise you will experience havoc.  See the configuration docs for clustering for more information.</p>
-
-<p><b>org.quartz.jobStore.clusterCheckinInterval</b><br/>
-Set the frequency (in milliseconds) at which this instance "checks-in"* with the other instances of the cluster. Affects the quickness of detecting failed instances.</p>
-
-<p><b>org.quartz.jobStore.maxMisfiresToHandleAtATime</b><br/>
-The maximum number of misfired triggers the jobstore will handle in a given pass.  Handling many (more than a couple dozen) at once can cause the database tables to be locked long enough that the performance of firing other (not yet misfired) triggers may be hampered.</p>
-
-<p><b>org.quartz.jobStore.dontSetAutoCommitFalse</b><br/>
-Setting this parameter to "true" tells Quartz not to call setAutoCommit(false) on connections obtained from the DataSource(s).  This can be helpful in a few situations, such as if you have a driver that complains if it is called when it is already off.  This property defaults to false, because most drivers require that setAutoCommit(false) is called.</p>
-
-<p><b>org.quartz.jobStore.selectWithLockSQL</b><br/>
-Must be a SQL string that selects a row in the "LOCKS" table and places a lock on the row. If not set, the default is "SELECT * FROM {0}LOCKS WHERE LOCK_NAME = ? FOR UPDATE",  which works for most databases.  The "{0}" is replaced during run-time with the TABLE_PREFIX that you configured above.</p>
-
-<p><b>org.quartz.jobStore.txIsolationLevelSerializable</b><br/>
-A value of "true" tells Quartz (when using JobStoreTX or CMT) to call setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE) on JDBC connections.  This can be helpful to prevent lock timeouts with some databases under high load, and "long-lasting" transactions.</p>
-
-
-
-
-                    			    </td>
-		    </tr>
-	    </table>
-    </body>
-</html>

docs/wikidocs/ConfigListeners.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        ConfigListeners
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <h1><a name="ConfigListeners-ConfiguringGlobalListeners">Configuring Global Listeners</a></h1>
-
-<p>Global listeners can be instantiated and configured by StdSchedulerFactory, or your application can do it itself at runtime, and then register the listeners with the scheduler.  "Global" listeners listen to the events of every job/trigger rather than just the jobs/triggers that directly reference them.</p>
-
-<p>Configuring listeners through the configuration file consists of giving then a name, and then specifying the class name, and any other properties to be set on the instance.  The class must have a no-arg constructor, and the properties are set reflectively. Only primitive data type values (including Strings) are supported.</p>
-
-<p><br clear="all" /></p>
-
-<p>Thus, the general pattern for defining a "global" TriggerListener is:</p>
-
-<div class="code"><div class="codeHeader"><b>Configuring a Global TriggerListener</b></div><div class="codeContent">
-<pre class="code-java">org.quartz.triggerListener.NAME.class = com.foo.MyListenerClass
-org.quartz.triggerListener.NAME.propName = propValue
-org.quartz.triggerListener.NAME.prop2Name = prop2Value</pre>
-</div></div>
-
-<p>And the general pattern for defining a "global" JobListener is:</p>
-
-<div class="code"><div class="codeHeader"><b>Configuring a Global JobListener</b></div><div class="codeContent">
-<pre class="code-java">org.quartz.jobListener.NAME.class = com.foo.MyListenerClass
-org.quartz.jobListener.NAME.propName = propValue
-org.quartz.jobListener.NAME.prop2Name = prop2Value</pre>
-</div></div>
-
-
-
-
-                    			    </td>
-		    </tr>
-	    </table>
-    </body>
-</html>

docs/wikidocs/ConfigMain.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        ConfigMain
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <h1><a name="ConfigMain-ConfigureMainSchedulerSettings">Configure Main Scheduler Settings</a></h1>
-
-
-<p>These properties configure tha identification of the scheduler, and various other 'top level' settings.
-<br clear="all" /></p>
-<table class='confluenceTable'>
-<tr>
-<th class='confluenceTh'>Property Name</th>
-<th class='confluenceTh'>Required</th>
-<th class='confluenceTh'>Type</th>
-<th class='confluenceTh'>Default Value</th>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.scheduler.instanceName</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>string</td>
-<td class='confluenceTd'>'QuartzScheduler'</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.scheduler.instanceId</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>string</td>
-<td class='confluenceTd'>'NON_CLUSTERED'</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.scheduler.threadName</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>string</td>
-<td class='confluenceTd'>instanceName + '_QuartzSchedulerThread'</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.scheduler.idleWaitTime</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>long</td>
-<td class='confluenceTd'>30000</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.scheduler.dbFailureRetryInterval</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>long</td>
-<td class='confluenceTd'>15000</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.scheduler.classLoadHelper.class</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>string (class name)</td>
-<td class='confluenceTd'>org.quartz.simpl.CascadingClassLoadHelper</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.context.key.SOME_KEY</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>string</td>
-<td class='confluenceTd'>none</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.scheduler.userTransactionURL</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>string (url)</td>
-<td class='confluenceTd'>'java:comp/UserTransaction'</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.scheduler.wrapJobExecutionInUserTransaction</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>booelan</td>
-<td class='confluenceTd'>false</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.scheduler.jobFactory.class</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>string (class name)</td>
-<td class='confluenceTd'>org.quartz.simpl.SimpleJobFactory</td>
-</tr>
-</table>
-
-<p><b>org.quartz.scheduler.instanceName</b> <br/>
-Can be any string, and the value has no meaning to the scheduler itself - but rather serves as a mechanism for client code to distinguish schedulers when multiple instances are used within the same program.  If you are using the clustering features, you must use the same name for every instance in the cluster that is 'logically' the same Scheduler.</p>
-
-<p><b>org.quartz.scheduler.instanceId</b> <br/>
-Can be any string, and but must be unique for all schedulers working as if they are the same 'logical' Scheduler within a cluster. You may use the value "AUTO" as the instanceId if you wish the Id to be generated for you.</p>
-
-<p><b>org.quartz.scheduler.threadName</b> <br/>
-Can be any String that is a valid name for a java thread. If this property is not specified, the thread will receive the scheduler's name ("org.quartz.scheduler.instanceName") plus an the appended string '_QuartzSchedulerThread'.</p>
-
-<p><b>org.quartz.scheduler.idleWaitTime</b> <br/>
-Is the amount of time in milliseconds that the scheduler  will wait before re-queries for available triggers when the scheduler is otherwise idle.  Normally you should not have to 'tune' this parameter, unless you're using XA transactions, and are having problems with delayed firings of triggers that should fire immediately.</p>
-
-<p><b>org.quartz.scheduler.dbFailureRetryInterval</b> <br/>
-Is the amount of time in milliseconds that the scheduler will wait between re-tries when it has detected a loss of connectivity within the JobStore (e.g. to the database). This parameter is obviously not very meaningful when using RamJobStore.</p>
-
-<p><b>org.quartz.scheduler.classLoadHelper.class</b> <br/>
-Defaults to the most robust approach, which is to  use the "org.quartz.simpl.CascadingClassLoadHelper" class - which in turn uses every other ClassLoadHelper class until one works.  You should probably not find the need to specify any other class for this property, though strange things seem to happen within application servers.  All of the current possible ClassLoadHelper implementation can be found in the <em>org.quartz.simpl</em> package.</p>
-
-<p><b>org.quartz.context.key.SOME_KEY</b> <br/>
-Represent a name-value pair that will be placed into the "scheduler context" as strings. (see Scheduler.getContext()).  So for example, the setting "org.quartz.context.key.MyKey = MyValue" would perform the equivalent of scheduler.getContext().put("MyKey", "MyValue").
-<br clear="all" /></p>
-
-<div class="information-block" align='center'><div class='informationMacroPadding'><table cellpadding='5' width='85%' cellspacing='0' class='noteMacro' border='0'><tr><td width='16' valign='top'><img src="/images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>
-<p>The Transaction-Related properties should be left out of the config file unless you are using JTA transactions.</p></td></tr></table></div></div>
-
-<p><b>org.quartz.scheduler.userTransactionURL</b> <br/>
-Should be set to the JNDI URL at which Quartz can locate the Application Server's UserTransaction manager.  The default value (if not specified) is "java:comp/UserTransaction" - which works for almost all Application Servers.  Websphere users may need to set this property to "jta/usertransaction".  This is only used if Quartz is configured to use JobStoreCMT, and <em>org.quartz.scheduler.wrapJobExecutionInUserTransaction</em> is set to true.</p>
-
-<p><b>org.quartz.scheduler.wrapJobExecutionInUserTransaction</b> <br/>
-Should be set to "true" if you want Quartz to start a UserTransaction before calling execute on your job.  The Tx will commit after the job's execute method completes, and after the JobDataMap is updated (if it is a StatefulJob).  The default value is "false".</p>
-
-<p><b>org.quartz.scheduler.jobFactory.class</b><br/>
-The class name of the JobFactory to use.  The default is 'org.quartz.simpl.SimpleJobFactory', you may like to try 'org.quartz.simpl.PropertySettingJobFactory'.  A JobFatcory is responsible for producing instances of JobClasses.  SimpleJobFactory simply calls newInstance() on the class.  PropertySettingJobFactory does as well, but also reflectively sets the job's bean properties using the contents of the JobDataMap.</p>
-
-
-
-                    			    </td>
-		    </tr>
-	    </table>
-    </body>
-</html>

docs/wikidocs/ConfigPlugins.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        ConfigPlugins
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <h1><a name="ConfigPlugins-ConfigureSchedulerPlugins">Configure Scheduler Plugins</a></h1>
-
-
-<p>Like listeners configuring plugins through the configuration file consists of giving then a name, and then specifying the class name, and any other properties to be set on the instance. The class must have a no-arg constructor, and the properties are set reflectively. Only primitive data type values (including Strings) are supported.</p>
-
-<p>Thus, the general pattern for defining a plug-in is:</p>
-
-<div class="code"><div class="codeHeader"><b>Configuring a Plugin</b></div><div class="codeContent">
-<pre class="code-java">org.quartz.plugin.NAME.class = com.foo.MyPluginClass
-org.quartz.plugin.NAME.propName = propValue
-org.quartz.plugin.NAME.prop2Name = prop2Value</pre>
-</div></div>
-
-<p><br clear="all" />
-<br clear="all" /></p>
-
-<p>There are several Plugins that come with Quartz, that can be found in the <em>org.quartz.plugins</em> package (and subpackages).  Example of configuring a few of them are as follows:</p>
-
-<h3><a name="ConfigPlugins-SampleconfigurationofLoggingTriggerHistoryPlugin">Sample configuration of Logging Trigger History Plugin</a></h3>
-
-<p>The logging trigger history plugin catches trigger events (it is also a trigger listener) and logs then with Jakarta Commons-Logging.  See the class's JavaDoc for a list of all the possible parameters.</p>
-
-<div class="code"><div class="codeHeader"><b>Sample configuration of Logging Trigger History Plugin</b></div><div class="codeContent">
-<pre class="code-java">org.quartz.plugin.triggHistory.class = \
-  org.quartz.plugins.history.LoggingTriggerHistoryPlugin
-org.quartz.plugin.triggHistory.triggerFiredMessage = \
-  Trigger \{1\}.\{0\} fired job \{6\}.\{5\} at: \{4, date, HH:mm:ss MM/dd/yyyy}
-org.quartz.plugin.triggHistory.triggerCompleteMessage = \
-  Trigger \{1\}.\{0\} completed firing job \{6\}.\{5\} at \{4, date, HH:mm:ss MM/dd/yyyy\}.</pre>
-</div></div>
-
-<p><br clear="all" /></p>
-
-<h3><a name="ConfigPlugins-SampleconfigurationofJobInitializationPlugin">Sample configuration of Job Initialization Plugin</a></h3>
-
-<p>Job initialization plugin reads a set of jobs and triggers from an XML file, and adds them to the scheduler during initialization.  See the class's JavaDoc for more details.</p>
-
-<div class="code"><div class="codeHeader"><b>Sample configuration of JobInitializationPlugin</b></div><div class="codeContent">
-<pre class="code-java">org.quartz.plugin.jobInitializer.class = \
-  org.quartz.plugins.xml.JobInitializationPlugin
-org.quartz.plugin.jobInitializer.fileName = \
-  data/my_job_data.xml
-org.quartz.plugin.jobInitializer.overWriteExistingJobs = <span class="code-keyword">false</span>
-org.quartz.plugin.jobInitializer.failOnFileNotFound = <span class="code-keyword">true</span></pre>
-</div></div>
-
-<p><br clear="all" /></p>
-
-<h3><a name="ConfigPlugins-SampleconfigurationofShutdownHookPlugin">Sample configuration of Shutdown Hook Plugin</a></h3>
-
-<p>The shutdown-hook plugin catches the event of the JVM terminating, and calls shutdown on the scheduler.</p>
-
-<div class="code"><div class="codeHeader"><b>Sample configuration of ShutdownHookPlugin</b></div><div class="codeContent">
-<pre class="code-java">org.quartz.plugin.shutdownhook.class = \
-  org.quartz.plugins.management.ShutdownHookPlugin
-org.quartz.plugin.shutdownhook.cleanShutdown = <span class="code-keyword">true</span></pre>
-</div></div>
-
-
-                    			    </td>
-		    </tr>
-	    </table>
-    </body>
-</html>

docs/wikidocs/ConfigRAMJobStore.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        ConfigRAMJobStore
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <h1><a name="ConfigRAMJobStore-ConfigureRAMJobStore">Configure RAMJobStore</a></h1>
-
-
-<p>RAMJobStore is used to store scheduling information (job, triggers and calendars) within memory.  RAMJobStore is fast and lightweight, but all scheduling information is lost when the process terminates.  </p>
-
-<p><br clear="all" /></p>
-
-<p><b>RAMJobStore is selected by setting the 'org.quartz.jobStore.class' property as such:</b></p>
-
-<div class="code"><div class="codeHeader"><b>Setting The Scheduler's JobStore to RAMJobStore</b></div><div class="codeContent">
-<pre class="code-java">org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore</pre>
-</div></div>
-
-<p><br clear="all" /></p>
-
-<p>RAMJobStore can be tuned with the following properties:
-<br clear="all" /></p>
-<table class='confluenceTable'>
-<tr>
-<th class='confluenceTh'>Property Name</th>
-<th class='confluenceTh'>Required</th>
-<th class='confluenceTh'>Type</th>
-<th class='confluenceTh'>Default Value</th>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.jobStore.misfireThreshold</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>int</td>
-<td class='confluenceTd'>60000</td>
-</tr>
-</table>
-
-
-<p><b>org.quartz.jobStore.misfireThreshold</b> <br/>
-The the number of milliseconds the scheduler will 'tolerate' a trigger to pass its next-fire-time by, before being considered "misfired".  The default value (if you don't make an entry of this property in your configuration) is 60000 (60 seconds).</p>
-
-                    			    </td>
-		    </tr>
-	    </table>
-    </body>
-</html>

docs/wikidocs/ConfigRMI.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        ConfigRMI
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <h1><a name="ConfigRMI-ConfigureSchedulerRMISettings">Configure Scheduler RMI Settings</a></h1>
-
-
-<h3><a name="ConfigRMI-RMIServerSchedulerProperties">RMI Server Scheduler Properties</a></h3>
-
-<p>None of the primary properties are required, and all have 'resonable' defaults.  When using Quartz via RMI, you need to start an instance of Quartz with it configured to "export" its services via RMI.  You then create clients to the server by configuring a Quartz scheduler to "proxy" its work to the server.
-<br clear="all" /></p>
-
-
-<div class="information-block" align='center'><div class='informationMacroPadding'><table cellpadding='5' width='85%' cellspacing='0' class='tipMacro' border='0'><tr><td width='16' valign='top'><img src="/images/icons/emoticons/check.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>
-<p>Some users experience problems with class availability (namely Job classes) between the client and server.  To work through these problems you'll need an understanding of RMI's "codebase" and RMI security managagers.  You may find these resources to be useful:</p>
-
-<p>An excellent description of RMI and codebase: <a href="http://www.kedwards.com/jini/codebase.html" title="Visit page outside Confluence">&#104;ttp://www.kedwards.com/jini/codebase.html</a> . One of the important points is to realize that "codebase" is used by the client!</p>
-
-<p>Quick info about security managers: <a href="http://gethelp.devx.com/techtips/java_pro/10MinuteSolutions/10min0500.asp" title="Visit page outside Confluence">&#104;ttp://gethelp.devx.com/techtips/java_pro/10MinuteSolutions/10min0500.asp</a></p>
-
-<p>And finally from the java API docs, read the docs for the RMISecurityManager<br/>
-<a href="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/RMISecurityManager.html" title="Visit page outside Confluence">&#104;ttp://java.sun.com/j2se/1.4.2/docs/api/java/rmi/RMISecurityManager.html</a></p></td></tr></table></div></div>
-
-<p><br clear="all" /></p>
-<table class='confluenceTable'>
-<tr>
-<th class='confluenceTh'>Property Name</th>
-<th class='confluenceTh'>Required</th>
-<th class='confluenceTh'>Default Value</th>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.scheduler.rmi.export</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>false</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.scheduler.rmi.registryHost</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>'localhost'</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.scheduler.rmi.registryPort</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>1099</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.scheduler.rmi.createRegistry</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>'never'</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.scheduler.rmi.serverPort</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>random</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.scheduler.rmi.proxy</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>false</td>
-</tr>
-</table>
-
-<p><b>org.quartz.scheduler.rmi.export</b><br/>
-If you want the Quartz Scheduler to export itself via RMI as a server then set the 'rmi.export' flag to true.  </p>
-
-<p><b>org.quartz.scheduler.rmi.registryHost</b><br/>
-The host at which the RMI Registry can be found (often 'localhost').</p>
-
-<p><b>org.quartz.scheduler.rmi.registryPort</b><br/>
-The port on which the RMI Registry is listening (usually 1099).</p>
-
-<p><b>org.quartz.scheduler.rmi.createRegistry</b><br/>
-Set the 'rmi.createRegistry' flag according to how you want Quartz to cause the creation of an RMI Registry.  Use "false" or "never" if you don't want Quartz to create a registry (e.g. if you already have an external registry running).  Use "true" or "as_needed" if you want Quartz to first attempt to use an existing registry, and then fall back to creating one.  Use "always" if you want Quartz to attempt creating a Registry, and then fall back to using an existing one.  If a registry is created, it will be bound to port number in the given 'org.quartz.scheduler.rmi.registryPort' property, and 'org.quartz.rmi.registryHost' should be "localhost".</p>
-
-<p><b>org.quartz.scheduler.rmi.serverPort</b><br/>
-The port on which the the Quartz Scheduler service will bind and listen for connections.  By default, the RMI service will 'randomly' select a port as the scheduler is bound to the RMI Registry.</p>
-
-
-<p><b>org.quartz.scheduler.rmi.proxy</b><br/>
-If you want to connect to (use) a remotely served scheduler, then set the 'org.quartz.scheduler.rmi.proxy' flag to true.  You must also then specify a  host and port for the RMI Registry process - which is typically 'localhost' port 1099.</p>
-
-<div class="information-block" align='center'><div class='informationMacroPadding'><table cellpadding='5' width='85%' cellspacing='0' class='infoMacro' border='0'><tr><td width='16' valign='top'><img src="/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>
-<p>It does not make sense to specify a 'true' value for both 'org.quartz.scheduler.rmi.export' and 'org.quartz.scheduler.rmi.proxy' in the same config file - if you do, the 'export' option will be ignored.  A value of 'false' for both 'export' and 'proxy' properties is of course valid, if you're not using Quartz via RMI.</p></td></tr></table></div></div>
-
-
-                    			    </td>
-		    </tr>
-	    </table>
-    </body>
-</html>

docs/wikidocs/ConfigThreadPool.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        ConfigThreadPool
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <h1><a name="ConfigThreadPool-ConfigureThreadPoolSettings">Configure ThreadPool Settings</a></h1>
-
-
-<table class='confluenceTable'>
-<tr>
-<th class='confluenceTh'>Property Name</th>
-<th class='confluenceTh'>Required</th>
-<th class='confluenceTh'>Type</th>
-<th class='confluenceTh'>Default Value</th>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.threadPool.class</td>
-<td class='confluenceTd'>yes</td>
-<td class='confluenceTd'>string (clas name)</td>
-<td class='confluenceTd'>null</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.threadPool.threadCount</td>
-<td class='confluenceTd'>yes</td>
-<td class='confluenceTd'>int</td>
-<td class='confluenceTd'>-1</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.threadPool.threadPriority</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>int</td>
-<td class='confluenceTd'>Thread.NORM_PRIORITY (5)</td>
-</tr>
-</table>
-
-<p><b>org.quartz.threadPool.class</b> <br/>
-Is the name of the ThreadPool implementation you wish to use.  The threadpool that ships with Quartz is "org.quartz.simpl.SimpleThreadPool", and should meet the needs of nearly every user.  It has very simple behavior and is very well tested.  It provides a fixed-size pool of threads that 'live' the lifetime of the Scheduler.</p>
-
-<p><b>org.quartz.threadPool.threadCount</b> <br/>
-Can be any positive integer, although you should realize that only numbers between 1 and 100 are very practical.  This is the number of threads that are available for concurrent execution of jobs.  If you only have a few jobs that fire a few times a day, then 1 thread is plenty! If you have tens of thousands of jobs, with many firing every minute, then you probably want a thread count more like 50 or 100 (this highly depends on the nature of the work that your jobs perform, and your systems resources!).</p>
-
-<p><b>org.quartz.threadPool.threadPriority</b> <br/>
-Can be any int between <em>Thread.MIN_PRIORITY</em> (which is 1) and <em>Thread.MAX_PRIORITY</em> (which is 10).  The default is <em>Thread.NORM_PRIORITY</em> (5).</p>
-
-<p><br clear="all" /></p>
-
-<h3><a name="ConfigThreadPool-SimpleThreadPoolSpecificProperties">SimpleThreadPool-Specific Properties</a></h3>
-<p><br clear="all" /></p>
-<table class='confluenceTable'>
-<tr>
-<th class='confluenceTh'>Property Name</th>
-<th class='confluenceTh'>Required</th>
-<th class='confluenceTh'>Type</th>
-<th class='confluenceTh'>Default Value</th>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.threadPool.makeThreadsDaemons</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>boolean</td>
-<td class='confluenceTd'>false</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.threadPool.threadsInheritGroupOfInitializingThread</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>boolean</td>
-<td class='confluenceTd'>true</td>
-</tr>
-<tr>
-<td class='confluenceTd'>org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread</td>
-<td class='confluenceTd'>no</td>
-<td class='confluenceTd'>boolean</td>
-<td class='confluenceTd'>false</td>
-</tr>
-</table>
-
-<p><b>org.quartz.threadPool.makeThreadsDaemons</b> <br/>
-Can be set to "true" to have the threads in the pool created as daemon threads.  Default is "false".</p>
-
-<p><b>org.quartz.threadPool.threadsInheritGroupOfInitializingThread</b> <br/>
-Can be "true" or "false", and defaults to true.</p>
-
-<p><b>org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread</b> <br/>
-Can be "true" or "false", and defaults to false.</p>
-
-<p><br clear="all" /></p>
-
-<h3><a name="ConfigThreadPool-CustomThreadPools">Custom ThreadPools</a></h3>
-
-<p><br clear="all" />
-If you use your own implementation of a thread pool, you can have properties set on it reflectively simply by naming the property as thus:</p>
-<div class="code"><div class="codeHeader"><b>Setting Properties on a Custom ThreadPool</b></div><div class="codeContent">
-<pre class="code-java">org.quartz.threadPool.class = com.mycompany.goo.FooThreadPool
-org.quartz.threadPool.somePropOfFooThreadPool = someValue</pre>
-</div></div>
-
-<p><br clear="all" /></p>
-
-                    			    </td>
-		    </tr>
-	    </table>
-    </body>
-</html>

docs/wikidocs/Configuration.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        Configuration
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <p>Configuration of Quartz is typically done through the use of a properties file, in conjunction with the use of StdSchedulerFactory (which consumes the configuration file and instantiates a scheduler).</p>
-
-<p>The properties for configuring various aspect of a scheduler are described in these sub-documents:</p>
-
-<ol>
-	<li><a href="ConfigMain.html" title="ConfigMain">Main Configuration</a> (configuration of primary scheduler settings, transactions)</li>
-	<li><a href="ConfigThreadPool.html" title="ConfigThreadPool">Configuration of ThreadPool</a> (tune resources for job execution)</li>
-	<li><a href="ConfigListeners.html" title="ConfigListeners">Configuration of Listeners</a> (your application can recieve notification of scheuled events)</li>
-	<li><a href="ConfigPlugins.html" title="ConfigPlugins">Configuration of Plug-Ins</a> (add functionality to your scheduler)</li>
-	<li><a href="ConfigRMI.html" title="ConfigRMI">Configuration of RMI Server and Client</a> (use a Quartz instance from a remote process)</li>
-	<li><a href="ConfigRAMJobStore.html" title="ConfigRAMJobStore">Configuration of RAMJobStore</a> (store jobs and triggers in memory)</li>
-	<li><a href="ConfigJobStoreTX.html" title="ConfigJobStoreTX">Configuration of JDBC-JobStoreTX</a> (store jobs and triggers in a database via JDBC)</li>
-	<li><a href="ConfigJobStoreCMT.html" title="ConfigJobStoreCMT">Configuration of JDBC-JobStoreCMT</a> (JDBC with JTA containter-managed transactions)</li>
-	<li><a href="ConfigDataSources.html" title="ConfigDataSources">Configuration of DataSources</a> (for use by the JDBC-JobStores)</li>
-	<li><a href="ConfigJDBCJobStoreClustering.html" title="ConfigJDBCJobStoreClustering">Configuration of Clustering</a> (achieve fail-over and load-balancing with JDBC-JobStore)</li>
-</ol>
-
-
-                    			    </td>
-		    </tr>
-	    </table>
-    </body>
-</html>

docs/wikidocs/Cookbook.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        Cookbook
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <p><br clear="all" /></p>
-
-<p><b>The Quartz cookbook is a collection of succinct examples of doing specific things with Quartz.</b></p>
-
-<p><br clear="all" /></p>
-
-<p>Choose from the following menu:</p>
-
-<ul>
-	<li><a href="CreateScheduler.html" title="CreateScheduler">Instantiating a Scheduler</a></li>
-	<li><a href="SchedulerStandby.html" title="SchedulerStandby">Placing a Scheduler in Stand-by Mode</a></li>
-	<li><a href="ShutdownScheduler.html" title="ShutdownScheduler">Shutting Down a Scheduler</a></li>
-	<li><a href="ServletInitScheduler.html" title="ServletInitScheduler">Initializing a Scheduler Within a Servlet Container</a></li>
-	<li>Initializing a Scheduler With Job And Triggers Defined in an XML file</li>
-</ul>
-
-
-<p><br clear="all" /></p>
-<ul>
-	<li><a href="DefineJobWithData.html" title="DefineJobWithData">Defining a Job</a></li>
-	<li><a href="ScheduleJob.html" title="ScheduleJob">Defining and Scheduling a Job</a></li>
-	<li><a href="UnscheduleJob.html" title="UnscheduleJob">Unscheduling a Job</a></li>
-	<li><a href="StoreJob.html" title="StoreJob">Storing a Job For Later Scheduling</a></li>
-	<li><a href="ScheduleStoreJob.html" title="ScheduleStoreJob">Scheduling an already stored Job</a></li>
-	<li><a href="UpdateJob.html" title="UpdateJob">Updating an existing Job</a></li>
-	<li><a href="UpdateTrigger.html" title="UpdateTrigger">Updating an existing Trigger</a></li>
-</ul>
-
-
-<p><br clear="all" /></p>
-<ul>
-	<li><a href="ListJobs.html" title="ListJobs">Listing Jobs in the Scheduler</a></li>
-	<li><a href="ListTriggers.html" title="ListTriggers">Listing Trigger in the Scheduler</a></li>
-	<li><a href="JobTriggers.html" title="JobTriggers">Finding Triggers of a Job</a></li>
-</ul>
-
-
-<p><br clear="all" /></p>
-<ul>
-	<li>Using a Global JobListener</li>
-	<li>Using a Global TriggerListener</li>
-	<li>Using a Job-Specific JobListener</li>
-	<li>Using a Trigger-Specific TriggerListener</li>
-</ul>
-
-
-<p><br clear="all" /></p>
-<ul>
-	<li><a href="TenSecTrigger.html" title="TenSecTrigger">Trigger That Fires Every 10 Seconds</a></li>
-	<li><a href="NintyMinTrigger.html" title="NintyMinTrigger">Trigger That Fires Every 90 Minutes</a></li>
-	<li><a href="DailyTrigger.html" title="DailyTrigger">Trigger That Fires Every Day</a></li>
-	<li><a href="BiDailyTrigger.html" title="BiDailyTrigger">Trigger That Fires Every 2 Days</a></li>
-	<li><a href="WeeklyTrigger.html" title="WeeklyTrigger">Trigger That Fires Every Week</a></li>
-	<li><a href="BiWeeklyTrigger.html" title="BiWeeklyTrigger">Trigger That Fires Every 2 Weeks</a></li>
-	<li><a href="MonthlyTrigger.html" title="MonthlyTrigger">Trigger That Fires Every Month</a></li>
-	<li><a href="FifthWorkingDayTrigger.html" title="FifthWorkingDayTrigger">Trigger That Fires on the Fifth "Working Day" of Every Month</a></li>
-</ul>
-
-
-                    			    </td>
-		    </tr>
-	    </table>
-    </body>
-</html>

docs/wikidocs/CreateScheduler.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        CreateScheduler
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <h1><a name="CreateScheduler-InstantiatingaScheduler">Instantiating a Scheduler</a></h1>
-
-<p><br clear="all" /></p>
-
-<div class="code"><div class="codeHeader"><b>Instantiating the Default Scheduler</b></div><div class="codeContent">
-<pre class="code-java"><span class="code-comment">// the '<span class="code-keyword">default</span>' scheduler is defined in <span class="code-quote">"quartz.propeties"</span> found
-</span><span class="code-comment">// in the current working directory, in the classpath, or 
-</span><span class="code-comment">// resorts to a fall-back <span class="code-keyword">default</span> that is in the quartz.jar
-</span>
-SchedulerFactory sf = <span class="code-keyword">new</span> StdSchedulerFactory();
-Scheduler scheduler = sf.getScheduler();
-
-<span class="code-comment">// Scheduler will not execute jobs until it has been started (though they can be scheduled before start()) 
-</span>scheduler.start();</pre>
-</div></div>
-
-<p><br clear="all" /></p>
-
-<div class="code"><div class="codeHeader"><b>Instantiating A Specific Scheduler From Specific Properties</b></div><div class="codeContent">
-<pre class="code-java">SchedulerFactory sf = <span class="code-keyword">new</span> StdSchedulerFactory();
-
-sf.initialize(schedulerProperties);
-
-Scheduler scheduler = sf.getScheduler();
-
-<span class="code-comment">// Scheduler will not execute jobs until it has been started (though they can be scheduled before start()) 
-</span>scheduler.start();</pre>
-</div></div>
-
-<p><br clear="all" /></p>
-
-<div class="code"><div class="codeHeader"><b>Instantiating A Specific Scheduler From A Specific Property File</b></div><div class="codeContent">
-<pre class="code-java">SchedulerFactory sf = <span class="code-keyword">new</span> StdSchedulerFactory();
-
-sf.initialize(fileName);
-
-Scheduler scheduler = sf.getScheduler();
-
-<span class="code-comment">// Scheduler will not execute jobs until it has been started (though they can be scheduled before start()) 
-</span>scheduler.start();</pre>
-</div></div>
-
-                    			    </td>
-		    </tr>
-	    </table>
-    </body>
-</html>

docs/wikidocs/CronTriggers Tutorial.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        CronTriggers Tutorial
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <div class="information-block" align='center'><div class='informationMacroPadding'><table cellpadding='5' width='85%' cellspacing='0' class='noteMacro' border='0'><tr><td width='16' valign='top'><img src="/images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>
-<p>Some of the content in this tutorial is taken from the Quartz 1.4.2 javadocs for <tt>CronTrigger</tt>.</p></td></tr></table></div></div>
-
-<h3><a name="CronTriggersTutorial-Introduction">Introduction</a></h3>
-
-<p><tt>cron</tt> is a UNIX tool that has been around for a long time, so its scheduling capabilities are powerful and proven. The <tt>CronTrigger</tt> class is based on the scheduling capabilities of cron.</p>
-
-<p><tt>CronTrigger</tt> uses "cron expressions", which are able to create firing schedules such as: "At 8:00am every Monday through Friday" or "At 1:30am every last Friday of the month".</p>
-
-<p>Cron expressions are powerful, but can be pretty confusing. This tutorial aims to take some of the mystery out of creating a cron expression, giving users a resource which they can visit before having to ask in a forum or mailing list.</p>
-
-<h3><a name="CronTriggersTutorial-Format">Format</a></h3>
-
-<p>A cron expression is a string comprised of 6 or 7 fields separated by white space. Fields can contain any of the allowed values, along with various combinations of the allowed special characters for that field. The fields are as follows:</p>
-
-<table class='confluenceTable'>
-<tr>
-<th class='confluenceTh'>Field Name</th>
-<th class='confluenceTh'>Mandatory?</th>
-<th class='confluenceTh'>Allowed Values</th>
-<th class='confluenceTh'>Allowed Special Characters</th>
-</tr>
-<tr>
-<td class='confluenceTd'>Seconds</td>
-<td class='confluenceTd'>YES</td>
-<td class='confluenceTd'>0-59</td>
-<td class='confluenceTd'>, - * /</td>
-</tr>
-<tr>
-<td class='confluenceTd'>Minutes</td>
-<td class='confluenceTd'>YES</td>
-<td class='confluenceTd'>0-59</td>
-<td class='confluenceTd'>, - * /</td>
-</tr>
-<tr>
-<td class='confluenceTd'>Hours</td>
-<td class='confluenceTd'>YES</td>
-<td class='confluenceTd'>0-23</td>
-<td class='confluenceTd'>, - * /</td>
-</tr>
-<tr>
-<td class='confluenceTd'>Day of month</td>
-<td class='confluenceTd'>YES</td>
-<td class='confluenceTd'>1-31</td>
-<td class='confluenceTd'>, - * ? / L W C</td>
-</tr>
-<tr>
-<td class='confluenceTd'>Month</td>
-<td class='confluenceTd'>YES</td>
-<td class='confluenceTd'>1-12 or JAN-DEC</td>
-<td class='confluenceTd'>, - * /</td>
-</tr>
-<tr>
-<td class='confluenceTd'>Day of week</td>
-<td class='confluenceTd'>YES</td>
-<td class='confluenceTd'>1-7 or SUN-SAT</td>
-<td class='confluenceTd'>, - * ? / L C #</td>
-</tr>
-<tr>
-<td class='confluenceTd'>Year</td>
-<td class='confluenceTd'>NO</td>
-<td class='confluenceTd'>empty, 1970-2099</td>
-<td class='confluenceTd'>, - * /</td>
-</tr>
-</table>
-
-<p>So cron expressions can be as simple as this: <tt>* * * * ? *</tt><br/>
-or more complex, like this: <tt>0 0/5 14,18,3-39,52 ? JAN,MAR,SEP MON-FRI 2002-2010</tt></p>
-
-<h3><a name="CronTriggersTutorial-Specialcharacters">Special characters</a></h3>
-
-<ul>
-	<li><b><tt>&#42;</tt></b> (<em>"all values"</em>) - used to select all values within a field. For example, "&#42;" in the minute field means <em>"every minute"</em>.</li>
-</ul>
-
-
-<ul>
-	<li><b><tt>?</tt></b> (<em>"no specific value"</em>) - useful when you need to specify something in one of the two fields in which the character is allowed, but not the other. For example, if I want my trigger to fire on a particular day of the month (say, the 10th), but don't care what day of the week that happens to be, I would put "10" in the day-of-month field, and "?" in the day-of-week field. See the examples below for clarification.</li>
-</ul>
-
-
-<ul>
-	<li><b><tt>-</tt></b> - used to specify ranges. For example, "10-12" in the hour field means <em>"the hours 10, 11 and 12"</em>.</li>
-</ul>
-
-
-<ul>
-	<li><b><tt>,</tt></b> - used to specify additional values. For example, "MON,WED,FRI" in the day-of-week field means <em>"the days Monday, Wednesday, and Friday"</em>.</li>
-</ul>
-
-
-<ul>
-	<li><b><tt>/</tt></b> - used to specify increments. For example, "0/15" in the seconds field means <em>"the seconds 0, 15, 30, and 45"</em>. And "5/15" in the seconds field means <em>"the seconds 5, 20, 35, and 50"</em>. You can also specify '/' after the '&#42;' character - in this case '&#42;' is equivalent to having '0' before the '/'. '1/3' in the day-of-month field means <em>"fire every 3 days starting on the first day of the month"</em>.</li>
-</ul>
-
-
-<ul>
-	<li><b><tt>L</tt></b> (<em>"last"</em>) - has different meaning in each of the two fields in which it is allowed. For example, the value "L" in the day-of-month field means <em>"the last day of the month"</em> - day 31 for January, day 28 for February on non-leap years. If used in the day-of-week field by itself, it simply means "7" or "SAT". But if used in the day-of-week field after another value, it means <em>"the last xxx day of the month"</em> - for example "6L" means <em>"the last friday of the month"</em>. When using the 'L' option, it is important not to specify lists, or ranges of values, as you'll get confusing results.</li>
-</ul>
-
-
-<ul>
-	<li><b><tt>W</tt></b> (<em>"weekday"</em>) - used to specify the weekday (Monday-Friday) nearest the given day. As an example, if you were to specify "15W" as the value for the day-of-month field, the meaning is: <em>"the nearest weekday to the 15th of the month"</em>. So if the 15th is a Saturday, the trigger will fire on Friday the 14th. If the 15th is a Sunday, the trigger will fire on Monday the 16th. If the 15th is a Tuesday, then it will fire on Tuesday the 15th. However if you specify "1W" as the value for day-of-month, and the 1st is a Saturday, the trigger will fire on Monday the 3rd, as it will not 'jump' over the boundary of a month's days. The 'W' character can only be specified when the day-of-month is a single day, not a range or list of days.</li>
-</ul>
-
-
-<div class="information-block" align='center'><div class='informationMacroPadding'><table cellpadding='5' width='85%' cellspacing='0' class='tipMacro' border='0'><tr><td width='16' valign='top'><img src="/images/icons/emoticons/check.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>
-<p>The 'L' and 'W' characters can also be combined in the day-of-month field to yield 'LW', which translates to <em>"last weekday of the month"</em>.</p></td></tr></table></div></div>
-
-<ul>
-	<li><b><tt>#</tt></b> - used to specify "the nth" XXX day of the month. For example, the value of "6#3" in the day-of-week field means <em>"the third Friday of the month"</em> (day 6 = Friday and "#3" = the 3rd one in the month). Other examples: "2#1" = the first Monday of the month and "4#5" = the fifth Wednesday of the month. Note that if you specify "#5" and there is not 5 of the given day-of-week in the month, then no firing will occur that month.</li>
-</ul>
-
-
-<ul>
-	<li><b><tt>C</tt></b> (<em>"calendar"</em>) - this means values are calculated against the associated calendar, if any. If no calendar is associated, then it is equivalent to having an all-inclusive calendar. A value of "5C" in the day-of-month field means <em>"the first day included by the calendar on or after the 5th"</em>. A value of "1C" in the day-of-week field means <em>"the first day included by the calendar on or after Sunday"</em>.</li>
-</ul>
-
-
-<div class="information-block" align='center'><div class='informationMacroPadding'><table cellpadding='5' width='85%' cellspacing='0' class='infoMacro' border='0'><tr><td width='16' valign='top'><img src="/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>
-<p>The legal characters and the names of months and days of the week are not case sensitive. <tt>MON</tt> is the same as <tt>mon</tt>.</p></td></tr></table></div></div>
-
-<h3><a name="CronTriggersTutorial-Examples">Examples</a></h3>
-
-<p>Here are some full examples:</p>
-
-<table class='confluenceTable'>
-<tr>
-<th class='confluenceTh'>Expression</th>
-<th class='confluenceTh'>Meaning</th>
-</tr>
-<tr>
-<td class='confluenceTd'><tt>0 0 12 * * ?</tt></td>
-<td class='confluenceTd'>Fire at 12pm (noon) every day</td>
-</tr>
-<tr>
-<td class='confluenceTd'><tt>0 15 10 ? * *</tt></td>
-<td class='confluenceTd'>Fire at 10:15am every day</td>
-</tr>
-<tr>
-<td class='confluenceTd'><tt>0 15 10 * * ?</tt></td>
-<td class='confluenceTd'>Fire at 10:15am every day</td>
-</tr>
-<tr>
-<td class='confluenceTd'><tt>0 15 10 * * ? *</tt></td>
-<td class='confluenceTd'>Fire at 10:15am every day</td>
-</tr>
-<tr>
-<td class='confluenceTd'><tt>0 15 10 * * ? 2005</tt></td>
-<td class='confluenceTd'>Fire at 10:15am every day during the year 2005</td>
-</tr>
-<tr>
-<td class='confluenceTd'><tt>0 * 14 * * ?</tt></td>
-<td class='confluenceTd'>Fire every minute starting at 2pm and ending at 2:59pm, every day</td>
-</tr>
-<tr>
-<td class='confluenceTd'><tt>0 0/5 14 * * ?</tt></td>
-<td class='confluenceTd'>Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day</td>
-</tr>
-<tr>
-<td class='confluenceTd'><tt>0 0/5 14,18 * * ?</tt></td>
-<td class='confluenceTd'>Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5 minutes starting at 6pm and ending at 6:55pm, every day</td>
-</tr>
-<tr>
-<td class='confluenceTd'><tt>0 0-5 14 * * ?</tt></td>
-<td class='confluenceTd'>Fire every minute starting at 2pm and ending at 2:05pm, every day</td>
-</tr>
-<tr>
-<td class='confluenceTd'><tt>0 10,44 14 ? 3 WED</tt></td>
-<td class='confluenceTd'>Fire at 2:10pm and at 2:44pm every Wednesday in the month of March.</td>
-</tr>
-<tr>
-<td class='confluenceTd'><tt>0 15 10 ? * MON-FRI</tt></td>
-<td class='confluenceTd'>Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday</td>
-</tr>
-<tr>
-<td class='confluenceTd'><tt>0 15 10 15 * ?</tt></td>
-<td class='confluenceTd'>Fire at 10:15am on the 15th day of every month</td>
-</tr>
-<tr>
-<td class='confluenceTd'><tt>0 15 10 L * ?</tt></td>
-<td class='confluenceTd'>Fire at 10:15am on the last day of every month</td>
-</tr>
-<tr>
-<td class='confluenceTd'><tt>0 15 10 ? * 6L</tt></td>
-<td class='confluenceTd'>Fire at 10:15am on the last Friday of every month</td>
-</tr>
-<tr>
-<td class='confluenceTd'><tt>0 15 10 ? * 6L</tt></td>
-<td class='confluenceTd'>Fire at 10:15am on the last Friday of every month</td>
-</tr>
-<tr>
-<td class='confluenceTd'><tt>0 15 10 ? * 6L 2002-2005</tt></td>
-<td class='confluenceTd'>Fire at 10:15am on every last friday of every month during the years 2002, 2003, 2004 and 2005</td>
-</tr>
-<tr>
-<td class='confluenceTd'><tt>0 15 10 ? * 6#3</tt></td>
-<td class='confluenceTd'>Fire at 10:15am on the third Friday of every month</td>
-</tr>
-<tr>
-<td class='confluenceTd'><tt>0 0 12 1/5 * ?</tt></td>
-<td class='confluenceTd'>Fire at 12pm (noon) every 5 days every month, starting on the first day of the month.</td>
-</tr>
-<tr>
-<td class='confluenceTd'><tt>0 11 11 11 11 ?</tt></td>
-<td class='confluenceTd'>Fire every November 11th at 11:11am.</td>
-</tr>
-</table>
-
-<div class="information-block" align='center'><div class='informationMacroPadding'><table cellpadding='5' width='85%' cellspacing='0' class='warningMacro' border='0'><tr><td width='16' valign='top'><img src="/images/icons/emoticons/forbidden.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>
-<p>Pay attention to the effects of '?' and '*' in the day-of-week and day-of-month fields!</p></td></tr></table></div></div>
-
-<h3><a name="CronTriggersTutorial-Notes">Notes</a></h3>
-<ul>
-	<li>Support for the features described for the 'C' character is not complete.</li>
-	<li>Support for specifying both a day-of-week and a day-of-month value is not complete (you must currently use the '?' character in one of these fields).</li>
-	<li>Be careful when setting fire times between mid-night and 1:00 AM - "daylight savings" can cause a skip or a repeat depending on whether the time moves back or jumps forward.</li>
-</ul>
-
-
-                    			    </td>
-		    </tr>
-	    </table>
-    </body>
-</html>

docs/wikidocs/DailyTrigger.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        DailyTrigger
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <h1><a name="DailyTrigger-TriggerThatExecutesEveryDay">Trigger That Executes Every Day</a></h1>
-<h2><a name="DailyTrigger-Usingorg.quartz.helpers.TriggerUtils">Using org.quartz.helpers.TriggerUtils</a></h2>
-<p><em>(TriggerUtils note: in 1.5.x, org.quartz.helpers.TriggerUtils has moved to org.quartz.TriggerUtils.)</em></p>
-<div class="code"><div class="codeHeader"><b>Trigger That Executes Every Day at 3:00PM</b></div><div class="codeContent">
-<pre class="code-java">Trigger trigger = TriggerUtils.makeDailyTrigger(15, 0);
-trigger.setName(<span class="code-quote">"trigger1"</span>);
-trigger.setGroup(<span class="code-quote">"group1"</span>);</pre>
-</div></div>
-
-<h2><a name="DailyTrigger-Doingitmanually">Doing it manually</a></h2>
-<p>If you would like a Trigger that executes every day at a specified time, use CronTrigger:</p>
-<div class="code"><div class="codeHeader"><b>CronTrigger That Executes Every Day at 3:00PM</b></div><div class="codeContent">
-<pre class="code-java">Trigger trigger = <span class="code-keyword">new</span> CronTrigger(<span class="code-quote">"trigger1"</span>, <span class="code-quote">"group1"</span>);
-trigger.setCronExpression(<span class="code-quote">"0 0 15 * * ?"</span>);</pre>
-</div></div>
-
-<p>If you don't care what time it runs (only the period is important), you can use SimpleTrigger (note that startTime will be the time when the trigger was instantiated):</p>
-<div class="code"><div class="codeHeader"><b>SimpleTrigger That Executes Every 24 Hours</b></div><div class="codeContent">
-<pre class="code-java">Trigger trigger = <span class="code-keyword">new</span> SimpleTrigger(<span class="code-quote">"trigger1"</span>, <span class="code-quote">"group1"</span>);
-<span class="code-comment">// 24 hours * 60(minutes per hour) * 60(seconds per minute) * 1000(milliseconds per second)
-</span>trigger.setRepeatInterval(24L * 60L * 60L * 1000L);</pre>
-</div></div>
-
-<p>Technically, if you want the trigger to run at a specific time, you can also use a SimpleTrigger, but it's a bit of work to get the startTime right:</p>
-<div class="code"><div class="codeHeader"><b>SimpleTrigger That Executes Every Day at 3:00PM</b></div><div class="codeContent">
-<pre class="code-java">java.util.Calendar startTime = java.util.Calendar.getInstance();
-startTime.set(java.util.Calendar.HOUR_OF_DAY, 15);
-startTime.set(java.util.Calendar.MINUTE, 0);
-startTime.set(java.util.Calendar.SECOND, 0);
-startTime.set(java.util.Calendar.MILLISECOND, 0);
-
-<span class="code-comment">//<span class="code-keyword">if</span> the startTime will be before the current time, move to next day
-</span><span class="code-keyword">if</span> (startTime.getTime.before(<span class="code-keyword">new</span> Date()) {
-   startTime.add(java.util.Calendar.DAY_OF_MONTH, 1);
-}
-
-Trigger trigger = <span class="code-keyword">new</span> SimpleTrigger(<span class="code-quote">"trigger1"</span>, <span class="code-quote">"group1"</span>);
-trigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
-trigger.setStartTime(startTime.getTime());
-<span class="code-comment">// 24 hours * 60(minutes per hour) * 60(seconds per minute) * 1000(milliseconds per second)
-</span>trigger.setRepeatInterval(24L * 60L * 60L * 1000L);</pre>
-</div></div>
-
-                    			    </td>
-		    </tr>
-	    </table>
-    </body>
-</html>

docs/wikidocs/DefineJobWithData.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        DefineJobWithData
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <h1><a name="DefineJobWithData-DefiningaJob">Defining a Job</a></h1>
-
-<p><br clear="all" /></p>
-
-<div class="code"><div class="codeHeader"><b>A Job Class</b></div><div class="codeContent">
-<pre class="code-java"><span class="code-keyword">public</span> class PrintPropsJob <span class="code-keyword">implements</span> Job {
-
-	<span class="code-keyword">public</span> PrintPropsJob() {
-	}
-
-	<span class="code-keyword">public</span> void execute(JobExecutionContext context)
-			<span class="code-keyword">throws</span> JobExecutionException {
-
-		JobDataMap data = context.getJobDetail().getJobDataMap();
-		<span class="code-object">System</span>.out.println(<span class="code-quote">"someProp = "</span> + data.getString(<span class="code-quote">"someProp"</span>));
-		<span class="code-object">System</span>.out.println(<span class="code-quote">"someObjectProp = "</span> + data.getObject(<span class="code-quote">"someObjectProp"</span>));
-	}
-
-}</pre>
-</div></div>
-
-
-<div class="code"><div class="codeHeader"><b>Defining a Job Instance</b></div><div class="codeContent">
-<pre class="code-java"><span class="code-comment">// Define job instance
-</span>JobDetail job = <span class="code-keyword">new</span> JobDetail(<span class="code-quote">"job1"</span>, <span class="code-quote">"group1"</span>, MyJobClass.class);
-job.getDataMap(<span class="code-quote">"someProp"</span>, <span class="code-quote">"someValue"</span>);
-job.getDataMap(<span class="code-quote">"someObjectProp"</span>, someObjectValue);</pre>
-</div></div>
-
-                    			    </td>
-		    </tr>
-	    </table>
-    </body>
-</html>

docs/wikidocs/Documentation.html

-<html>
-    <head>
-        <title>Quartz 1 - 
-        Documentation
-         </title>
-	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
-        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    </head>
-
-    <body>
-	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
-		    <tr>
-			    <td valign="top" class="pagebody">
-				    <h3><a name="Documentation-1.Overview">1. Overview</a></h3>
-
-<ol>
-	<li><a href="License.html" title="License">License</a></li>
-	<li><a href="Features.html" title="Features">Features</a></li>
-	<li><a href="FAQ.html" title="FAQ">Frequently Asked Questions</a></li>
-	<li><a href="Quickstart.html" title="QuickStart">Quickstart</a> - a guide to getting Quartz up and running.</li>
-	<li><a href="http://www.opensymphony.com/quartz/api/" title="Visit page outside Confluence">Javadocs</a></li>
-	<li>Articles and press about Quartz
-	<ol>
-		<li><a href="http://www.onjava.com/pub/a/onjava/2004/03/10/quartz.html" title="Visit page outside Confluence">Job Scheduling in Java</a></li>
-		<li><a href="http://www.theserverside.com/blogs/showblog.tss?id=QuartzSchedulerInJ2EE" title="Visit page outside Confluence">Using Quartz Enterprise Scheduler in J2EE</a></li>
-	</ol>
-	</li>
-	<li><a href="Quartz Users.html" title="Quartz Users">Projects Using Quartz</a></li>
-</ol>
-
-
-<h3><a name="Documentation-2.QuartzVersions">2. Quartz Versions</a></h3>
-
-<ul>
-	<li>Current release - <a href="Quartz 1.5.0.html" title="Quartz 1.5.0">Quartz 1.5.0</a></li>
-	<li><a href="Releases.html" title="Releases">Previous Releases</a></li>
-</ul>
-
-
-<h3><a name="Documentation-3.LearningQuartz">3. Learning Quartz</a></h3>
-
-<p><b>Tutorials</b></p>
-
-<ol>
-	<li><a href="Tutorial.html" title="Tutorial">The Official Quartz Tutorial</a></li>
-	<li><a href="CronTriggers Tutorial.html" title="CronTriggers Tutorial">CronTrigger Tutorial</a> - a CronTrigger can be used to schedule a job with complex requirements such as "fire at 10.15am every Monday". However, they're pretty confusing to use. This is a short tutorial on cron expressions, with lots of examples.</li>
-</ol>
-
-
-<p><b>Examples</b></p>
-
-<ol>