1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.quartz.jobs;
12
13 import org.mule.api.MuleException;
14 import org.mule.module.client.MuleClient;
15 import org.mule.transport.NullPayload;
16 import org.mule.transport.quartz.QuartzConnector;
17 import org.mule.transport.quartz.i18n.QuartzMessages;
18
19 import org.apache.commons.logging.Log;
20 import org.apache.commons.logging.LogFactory;
21 import org.quartz.Job;
22 import org.quartz.JobDataMap;
23 import org.quartz.JobExecutionContext;
24 import org.quartz.JobExecutionException;
25
26
27
28
29
30 public class ScheduledDispatchJob implements Job
31 {
32
33
34
35 protected transient Log logger = LogFactory.getLog(getClass());
36
37 public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException
38 {
39 JobDataMap jobDataMap = jobExecutionContext.getJobDetail().getJobDataMap();
40 Object payload = jobDataMap.get(QuartzConnector.PROPERTY_PAYLOAD);
41
42 if (payload == null)
43 {
44 payload = NullPayload.getInstance();
45 }
46
47 ScheduledDispatchJobConfig config = (ScheduledDispatchJobConfig)jobDataMap.get(QuartzConnector.PROPERTY_JOB_CONFIG);
48 if (config == null)
49 {
50 throw new JobExecutionException(
51 QuartzMessages.missingJobDetail(QuartzConnector.PROPERTY_JOB_CONFIG).getMessage());
52 }
53
54 try
55 {
56 MuleClient client = new MuleClient();
57 logger.debug("Dispatching payload on: " + config.getEndpointRef());
58 client.dispatch(config.getEndpointRef(), payload, jobDataMap);
59 }
60 catch (MuleException e)
61 {
62 throw new JobExecutionException(e);
63 }
64 }
65 }