From 8cb0084749c5334eec1ec7bae4abd91e2de5b4b1 Mon Sep 17 00:00:00 2001
From: ?? ? <ulysseskao@ximple.com.tw>
Date: Mon, 17 Mar 2008 12:50:05 +0800
Subject: [PATCH] update for EOFM-20

---
 ximple-jobcarrier/src/main/java/com/ximple/eofms/XQuartzJobCarrier.java |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50 insertions(+), 0 deletions(-)

diff --git a/ximple-jobcarrier/src/main/java/com/ximple/eofms/XQuartzJobCarrier.java b/ximple-jobcarrier/src/main/java/com/ximple/eofms/XQuartzJobCarrier.java
index 7e71186..f2eef84 100644
--- a/ximple-jobcarrier/src/main/java/com/ximple/eofms/XQuartzJobCarrier.java
+++ b/ximple-jobcarrier/src/main/java/com/ximple/eofms/XQuartzJobCarrier.java
@@ -4,9 +4,14 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.quartz.JobDetail;
 import org.quartz.Scheduler;
 import org.quartz.SchedulerException;
+import org.quartz.Trigger;
+import org.quartz.TriggerUtils;
 import org.quartz.impl.StdSchedulerFactory;
+
+import com.ximple.eofms.jobs.OracleConvertDgn2ShpJob;
 
 /**
  * Hello world!
@@ -25,6 +30,7 @@
     public void startScheduler()
     {
         Scheduler scheduler = null;
+        boolean shutdown = false;
 
         try
         {
@@ -39,7 +45,51 @@
         {
             // deal with any exceptions
             logger.error(ex);
+            shutdown = true;
+        } catch (Throwable throwable)
+        {
+            logger.error(throwable.getMessage(), throwable);
+            shutdown = true;
         }
+        if (shutdown)
+        {
+            try
+            {
+                scheduler.shutdown();
+            } catch (SchedulerException e)
+            {
+                logger.error(e.getMessage(), e);
+            }
+        }
+    }
+
+    /*
+     * return an instance of the Scheduler from the factory
+     */
+    public Scheduler createScheduler() throws SchedulerException
+    {
+        return StdSchedulerFactory.getDefaultScheduler();
+    }
+
+    // Create and Schedule a ScanDirectoryJob with the Scheduler
+    private void scheduleJob(Scheduler scheduler) throws SchedulerException
+    {
+
+        // Create a JobDetail for the Job
+        JobDetail jobDetail = new JobDetail("ScanDirectory", Scheduler.DEFAULT_GROUP,
+                OracleConvertDgn2ShpJob.class);
+
+        // Configure the directory to scan
+        jobDetail.getJobDataMap().put("SCAN_DIR", "c:\\quartz-book\\input");
+
+        // Create a trigger that fires every 10 seconds, forever
+        Trigger trigger = TriggerUtils.makeSecondlyTrigger(10);
+        trigger.setName("scanTrigger");
+        // Start the trigger firing from now
+        trigger.setStartTime(new Date());
+
+        // Associate the trigger with the job in the scheduler
+        scheduler.scheduleJob(jobDetail, trigger);
     }
 
 }

--
Gitblit v0.0.0-SNAPSHOT