[Yanel-commits] rev 47024 - public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/scheduler

michi at wyona.com michi at wyona.com
Mon Jan 11 14:17:55 CET 2010


Author: michi
Date: 2010-01-11 14:17:55 +0100 (Mon, 11 Jan 2010)
New Revision: 47024

Modified:
   public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/scheduler/QuartzSchedulerUtil.java
Log:
reading of jobs implemented

Modified: public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/scheduler/QuartzSchedulerUtil.java
===================================================================
--- public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/scheduler/QuartzSchedulerUtil.java	2010-01-11 12:50:12 UTC (rev 47023)
+++ public/yanel/trunk/src/impl/java/org/wyona/yanel/impl/scheduler/QuartzSchedulerUtil.java	2010-01-11 13:17:55 UTC (rev 47024)
@@ -2,8 +2,13 @@
 
 import org.w3c.dom.Document;
 
+import org.quartz.JobDetail;
 import org.quartz.Scheduler;
+import org.quartz.SimpleTrigger;
+import org.quartz.Trigger;
 
+import java.util.Date;
+
 import org.apache.log4j.Logger;
 
 /**
@@ -14,9 +19,24 @@
     private static Logger log = Logger.getLogger(QuartzSchedulerUtil.class);
 
     /**
-     *
+     * Schedule jobs based on XML configuration
+     * @param scheduler Scheduler
+     * @param doc XML document containing jobs configuration
+     * @param groupName Group name, e.g. realm ID
      */
-    public static void schedule(Scheduler scheduler, Document doc, String groupName) {
+    public static void schedule(Scheduler scheduler, Document doc, String groupName) throws Exception {
         log.warn("Add jobs for group '" + groupName + "' to scheduler.");
+
+        org.w3c.dom.NodeList jobElements = doc.getDocumentElement().getElementsByTagName("job");
+   
+        for (int i = 0; i < jobElements.getLength(); i++) {
+            org.w3c.dom.Element jobE = (org.w3c.dom.Element) jobElements.item(i);
+            log.warn("Add job with class: " + jobE.getAttribute("class"));
+            JobDetail jobDetail = new JobDetail(jobE.getAttribute("name"), groupName, Class.forName(jobE.getAttribute("class")));
+            Date startDate = new Date();
+            Date endDate = null;
+            Trigger trigger = new SimpleTrigger("heartbeatTrigger", groupName, startDate, endDate, SimpleTrigger.REPEAT_INDEFINITELY, 60L * 1000L);
+            scheduler.scheduleJob(jobDetail, trigger);
+        }
     }
 }



More information about the Yanel-commits mailing list