The following trigger creates messages of the type log for each deadline change using the Current Task -> Task... -> Edit link. Create message type log before using this trigger.
SecuredTaskBean oldOne = new SecuredTaskBean(task.getId(),task.getSecure()); Object oldDeadline=oldOne.getDeadline(); Object newDeadline = task.getDeadline(); String actionType=null; if (oldDeadline==null && newDeadLine!=null) { actionType="Deadline was set."; } else if (oldDeadline!=null && newDeadLine==null) { actionType="Deadline was reset."; } else if (oldDeadline!=null && newDeadLine!=null) { if (newDeadline.after(oldDeadline)) { actionType="Deadline was extended."; } else if (newDeadline.before(oldDeadline)) { actionType="Deadline was moved up."; } } Object newOne = task.update(false); if (actionType!=null) { SecuredMessageTriggerBean bean = new SecuredMessageTriggerBean(null,actionType,null,null, task.getDeadline(), task.getBudget(), task.getId(), task.getSecure().getUserId(), null, task.getPriorityId(), task.getHandlerId(), task.getHandlerUserId(), task.getHandlerGroupId(), CSVImport.findMessageTypeIdByName("log", task.getCategory().getName()), null, task.getSecure()).create(); } return newOne;