[jboss-svn-commits] JBL Code SVN: r15117 - in labs/jbossesb/trunk/product/rosetta: tests/src/org/jboss/soa/esb/schedule and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Sep 14 08:10:33 EDT 2007


Author: tfennelly
Date: 2007-09-14 08:10:33 -0400 (Fri, 14 Sep 2007)
New Revision: 15117

Modified:
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/schedule/ScheduleProvider.java
   labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/schedule/SchedulingUnitTest.java
Log:
Redeliver Service stops when any esb project is undeployed: http://jira.jboss.com/jira/browse/JBESB-1034

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/schedule/ScheduleProvider.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/schedule/ScheduleProvider.java	2007-09-14 11:30:08 UTC (rev 15116)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/schedule/ScheduleProvider.java	2007-09-14 12:10:33 UTC (rev 15117)
@@ -25,9 +25,7 @@
 import org.quartz.impl.StdSchedulerFactory;
 import org.apache.log4j.Logger;
 
-import java.util.Properties;
-import java.util.List;
-import java.util.Date;
+import java.util.*;
 import java.text.ParseException;
 import java.io.IOException;
 import java.io.InputStream;
@@ -46,9 +44,11 @@
 
     /* Quartz scheduler instance */
     private Scheduler scheduler;
+    private List<String> scheduledJobs = new ArrayList<String>();
     private List<Schedule> schedules;
     
     private final ClassLoader tcc ;
+    private static final String JBOSS_ESB = "JBossESB";
 
     public ScheduleProvider(Properties properties, List<Schedule> schedules) throws ConfigurationException {
         try {
@@ -99,7 +99,7 @@
         } else {
             String cronExpression = ((CronSchedule)schedule).getCronExpression();
             try {
-                trigger = new CronTrigger(scheduleId, "JBossESB", cronExpression);
+                trigger = new CronTrigger(scheduleId, JBOSS_ESB, cronExpression);
             } catch (ParseException e) {
                 throw new ConfigurationException("Invalid CRON expression '" + cronExpression + "' on schedule '" + scheduleId + "'.", e);
             }
@@ -127,7 +127,7 @@
         addListener(listener, trigger);
     }
 
-    private static int nameDelta = 1; 
+    private static volatile int nameDelta = 1; 
     private void addListener(ScheduledEventListener listener, Trigger trigger) throws SchedulingException {
         JobDataMap jobDataMap = new JobDataMap();
         JobDetail jobDetail;
@@ -139,12 +139,13 @@
         name += ("-" + nameDelta++);
         trigger.setName(name);
 
-        jobDetail = new JobDetail("JBossESB", name, ESBScheduledJob.class);
+        jobDetail = new JobDetail(name, JBOSS_ESB, ESBScheduledJob.class);
         jobDataMap.put(ScheduledEventListener.class.getName(), listener);
         jobDataMap.put(ClassLoader.class.getName(), tcc);
         jobDetail.setJobDataMap(jobDataMap);
         try {
             scheduler.scheduleJob(jobDetail, trigger);
+            scheduledJobs.add(name);
         } catch (SchedulerException e) {
             throw new SchedulingException("Failed to schedule job.", e);
         }
@@ -193,7 +194,11 @@
      */
     public void stop() throws SchedulingException {
         try {
-            scheduler.shutdown();
+            for(String jobName : scheduledJobs) {
+                if(!scheduler.deleteJob(jobName, JBOSS_ESB)) {
+                    logger.error("Failed to delete scheduled Job '" + jobName + "' from job group '" + JBOSS_ESB + "'.");
+                }
+            }
         } catch (SchedulerException e) {
             throw new SchedulingException("Failed to shutdown scheduling.", e);
         }

Modified: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/schedule/SchedulingUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/schedule/SchedulingUnitTest.java	2007-09-14 11:30:08 UTC (rev 15116)
+++ labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/schedule/SchedulingUnitTest.java	2007-09-14 12:10:33 UTC (rev 15117)
@@ -23,12 +23,19 @@
 import org.jboss.soa.esb.testutils.ESBConfigUtil;
 import org.jboss.soa.esb.parameters.ParamRepositoryException;
 import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.util.ClassUtil;
 import org.jboss.soa.esb.mock.MockAction;
 import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException;
 import org.jboss.internal.soa.esb.util.StreamUtils;
 import org.xml.sax.SAXException;
+import org.quartz.impl.StdSchedulerFactory;
+import org.quartz.Scheduler;
+import org.quartz.SchedulerException;
 
 import java.io.UnsupportedEncodingException;
+import java.io.InputStream;
+import java.io.IOException;
+import java.util.Properties;
 
 /**
  * Scheduling unit tests.




More information about the jboss-svn-commits mailing list