cocoon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From un...@apache.org
Subject svn commit: rev 36526 - in cocoon/branches/BRANCH_2_1_X/src/blocks/cron: conf java/org/apache/cocoon/components/cron
Date Tue, 17 Aug 2004 13:26:46 GMT
Author: unico
Date: Tue Aug 17 06:26:46 2004
New Revision: 36526

Modified:
   cocoon/branches/BRANCH_2_1_X/src/blocks/cron/conf/cron.xconf
   cocoon/branches/BRANCH_2_1_X/src/blocks/cron/java/org/apache/cocoon/components/cron/QuartzJobScheduler.java
Log:
port from 2.2: make type of job store to use configurable

Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/cron/conf/cron.xconf
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/cron/conf/cron.xconf	(original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/cron/conf/cron.xconf	Tue Aug 17 06:26:46 2004
@@ -45,6 +45,14 @@
             <!-- The maximum time to wait for running jobs to complete. Defaults to unlimited
time (<0 == default) -->
             <shutdown-wait-time-ms>5000</shutdown-wait-time-ms>
         </thread-pool>
+        <!-- Definition of the JobStore -->
+        <!-- store type is one of "ram" (default), "tx", or "cmt" -->
+        <store type="ram"/>
+        <!--
+        <store type="tx">
+          <datasource>jdbc/MyJobStoreDS</datasource>
+        </store>
+        -->
         <!-- Definintions of triggers -->
         <triggers>
             <!-- Sample definition of a trigger -->

Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/cron/java/org/apache/cocoon/components/cron/QuartzJobScheduler.java
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/cron/java/org/apache/cocoon/components/cron/QuartzJobScheduler.java
(original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/cron/java/org/apache/cocoon/components/cron/QuartzJobScheduler.java
Tue Aug 17 06:26:46 2004
@@ -48,7 +48,11 @@
 import org.quartz.SimpleTrigger;
 import org.quartz.Trigger;
 import org.quartz.impl.DirectSchedulerFactory;
+import org.quartz.impl.jdbcjobstore.JobStoreCMT;
+import org.quartz.impl.jdbcjobstore.JobStoreSupport;
+import org.quartz.impl.jdbcjobstore.JobStoreTX;
 import org.quartz.simpl.RAMJobStore;
+import org.quartz.spi.JobStore;
 
 import EDU.oswego.cs.dl.util.concurrent.BoundedBuffer;
 import EDU.oswego.cs.dl.util.concurrent.LinkedQueue;
@@ -59,7 +63,7 @@
  * This component can either schedule jobs or directly execute one.
  *
  * @author <a href="mailto:giacomo@apache.org">Giacomo Pati</a>
- * @version CVS $Id: QuartzJobScheduler.java,v 1.12 2004/03/11 22:05:12 sylvain Exp $
+ * @version CVS $Id$
  *
  * @since 2.1.1
  */
@@ -304,8 +308,8 @@
 			// we cannot create the same scheduler again
 			final String runID = new Date().toString().replace(' ', '_');
 			final ThreadPool pool = createThreadPool(this.config.getChild("thread-pool"));
-			DirectSchedulerFactory.getInstance().createScheduler(DEFAULT_QUARTZ_SCHEDULER_NAME, runID,
pool,
-																 new RAMJobStore());
+            final JobStore store = createJobStore(this.config.getChild("job-store"));
+			DirectSchedulerFactory.getInstance().createScheduler(DEFAULT_QUARTZ_SCHEDULER_NAME, runID,
pool, store);
 			// scheduler = DirectSchedulerFactory.getInstance().getScheduler(DEFAULT_QUARTZ_SCHEDULER_NAME,
runID);
 			scheduler = DirectSchedulerFactory.getInstance().getScheduler(DEFAULT_QUARTZ_SCHEDULER_NAME);
 		} catch (final SchedulerException se) {
@@ -686,6 +690,26 @@
         }
     }
 
+    private JobStore createJobStore(final Configuration configuration)
+    throws ConfigurationException {
+        String type = configuration.getAttribute("type", "ram");
+        if (type.equals("ram")) {
+            return new RAMJobStore();
+        }
+        JobStoreSupport store = null;
+        if (type.equals("tx")) {
+            store = new JobStoreTX();
+        }
+        else if (type.equals("cmt")) {
+            store = new JobStoreCMT();
+        }
+        else {
+            throw new ConfigurationException("Unknown store type: " + type);
+        }
+        store.setDataSource(configuration.getChild("datasource").getValue());
+        return store;
+    }
+
     /* (non-Javadoc)
      * @see org.apache.cocoon.components.cron.JobScheduler#fireTarget(java.lang.Object)
      */
@@ -717,7 +741,7 @@
      * A ThreadPool for the Quartz Scheduler based on Doug Leas concurrency utilities PooledExecutor
      *
      * @author <a href="mailto:giacomo@otego.com">Giacomo Pati</a>
-     * @version CVS $Id: QuartzJobScheduler.java,v 1.12 2004/03/11 22:05:12 sylvain Exp $
+     * @version CVS $Id$
      */
     private static class ThreadPool extends AbstractLogEnabled implements org.quartz.spi.ThreadPool
{
         /** Our executor thread pool */

Mime
View raw message