[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