[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