public class DefaultQuartzMarshaler extends MarshalerSupport implements QuartzMarshaler {
public void populateNormalizedMessage(NormalizedMessage message, JobExecutionContext context)
throws JobExecutionException, MessagingException {
JobDetail detail = context.getJobDetail();
JobDataMap dataMap = detail.getJobDataMap();
for (Iterator iter = dataMap.entrySet().iterator(); iter.hasNext();) {
Map.Entry entry = (Map.Entry) iter.next();
String key = (String) entry.getKey();
if (!key.equals(ServiceMixJob.COMPONENT_NAME) && !key.equals(ServiceMixJob.ENDPOINT_NAME)) {
Object value = entry.getValue();
message.setProperty(key, value);
}
}
try {
Document document = getTransformer().createDocument();
Element root = document.createElement("timer");
document.appendChild(root);
DOMUtil.addChildElement(root, "name", detail.getName());
DOMUtil.addChildElement(root, "group", detail.getGroup());
DOMUtil.addChildElement(root, "fullname", detail.getFullName());
DOMUtil.addChildElement(root, "description", detail.getDescription());
DOMUtil.addChildElement(root, "fireTime", context.getFireTime());
message.setContent(new DOMSource(document));
} catch (ParserConfigurationException e) {
throw new MessagingException("Failed to create content: " + e, e);
}