EventImpl event = observableElement.getEvent(eventName);
if (event == null) {
event = observableElement.createEvent(eventName);
}
// register event listener
MailListener eventListener = new MailListener();
EventListenerReference eventListenerRef = event.createEventListenerReference(eventListener);
// set continuation mode
String continuationText = XmlUtil.attribute(element, "continue");
if ("async".equals(continuationText)) {
eventListenerRef.setContinuation(Continuation.ASYNCHRONOUS);
}
else if ("exclusive".equals(continuationText)) {
eventListenerRef.setContinuation(Continuation.EXCLUSIVE);
}
//https://jira.jboss.org/jira/browse/JBPM-2466
String mailTemplateName = eventName;
if (Event.ASSIGN.equals(eventName)) {
mailTemplateName = "task-notification";
} else if (Event.REMIND.equals(eventName)) {
mailTemplateName = "task-reminder";
}
// associate mail producer to event listener
MailProducer mailProducer = parseMailProducer(element, parse, mailTemplateName);
eventListener.setMailProducer(mailProducer);
}