class AsyncTaskLifeCycleEventProducer extends PersistableEventListener implements TaskLifeCycleEventListener {

    @Override
    public void afterTaskInputVariableChangedEvent(TaskEvent event, Map<String, Object> variables) {
        if (variables == null || variables.isEmpty()) {
            return;
        }
        Task task = event.getTask();               
        List<TaskVariableImpl> taskVariables = indexVariables(task, variables, VariableType.INPUT);
        
        sendMessage(new AuditTaskData(null, null, taskVariables, null), 2);
    }

    public  AsyncTaskLifeCycleEventProducer();

}