01: /*
02: * ChainBuilder ESB
03: * Visual Enterprise Integration
04: *
05: * Copyright (C) 2007 Bostech Corporation
06: *
07: * This program is free software; you can redistribute it and/or modify it
08: * under the terms of the GNU General Public License as published by the
09: * Free Software Foundation; either version 2 of the License, or (at your option)
10: * any later version.
11: *
12: * This program is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15: * for more details.
16: *
17: * You should have received a copy of the GNU General Public License along with
18: * this program; if not, write to the Free Software Foundation, Inc.,
19: * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20: *
21: *
22: * $Id: ARInitialTriggerListener.java 6905 2007-04-19 03:05:32Z mpreston $
23: */
24: package com.bostechcorp.cbesb.runtime.scheduler;
25:
26: import org.apache.commons.logging.Log;
27: import org.apache.commons.logging.LogFactory;
28: import org.quartz.JobExecutionContext;
29: import org.quartz.Trigger;
30: import org.quartz.TriggerListener;
31: import org.quartz.listeners.TriggerListenerSupport;
32:
33: public class ARInitialTriggerListener extends TriggerListenerSupport
34: implements TriggerListener {
35:
36: private Log log = LogFactory.getLog(ARInitialTriggerListener.class);
37:
38: /* (non-Javadoc)
39: * @see org.quartz.TriggerListener#getName()
40: */
41: public String getName() {
42: return "ARInitialTriggerListener";
43: }
44:
45: /* (non-Javadoc)
46: * @see org.quartz.TriggerListener#triggerComplete(org.quartz.Trigger, org.quartz.JobExecutionContext, int)
47: */
48: public void triggerComplete(Trigger trigger,
49: JobExecutionContext context, int TriggerListener) {
50: boolean result = context.getMergedJobDataMap().getBooleanValue(
51: "Success");
52: IAutoRetryJobProcessor jobProcessor = (IAutoRetryJobProcessor) context
53: .getMergedJobDataMap().get("JobProcessor");
54:
55: if (result) {
56: //Job completed successfully
57: jobProcessor.onSuccess();
58: } else {
59: //Job was not successful
60: SchedulerCore schedulerCoreInstance = (SchedulerCore) context
61: .getMergedJobDataMap().get("SchedulerCoreInstance");
62: int retryInterval = context.getMergedJobDataMap().getInt(
63: "RetryInterval");
64: String endTime = context.getMergedJobDataMap().getString(
65: "EndTime");
66: try {
67: schedulerCoreInstance.scheduleRetryTrigger(context
68: .getJobDetail(), retryInterval, endTime);
69: } catch (Exception e) {
70: log.error("Exception occurred while rescheduling job.",
71: e);
72: jobProcessor.onFailure();
73: }
74: }
75: }
76:
77: }
|