/** * Creates new instance of JPA task audit logger * @return new instance of JPA task audit logger */ public static JPATaskLifeCycleEventListener newJPAInstance() { return new JPATaskLifeCycleEventListener(true); }
@Override public void afterTaskAssignmentsRemovedEvent(TaskEvent event, AssignmentType type, List<OrganizationalEntity> entities) { assignmentsUpadted(event, type, entities, "] have been removed"); }
@Override public void afterTaskStartedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.STARTED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId )); AuditTaskImpl auditTaskImpl = getAuditTask(event, persistenceContext, ti); if (auditTaskImpl == null) { logger.warn("Unable find audit task entry for task id {} '{}', skipping audit task update", ti.getId(), ti.getName()); return; } auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setLastModificationDate(event.getEventDate()); persistenceContext.merge(auditTaskImpl); } finally { cleanup(persistenceContext); } }
String userId = event.getTaskContext().getUserId(); Task task = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); indexAndPersistVariables(task, variables, persistenceContext, VariableType.OUTPUT); String message = "Task output data updated"; persistenceContext.persist(new TaskEventImpl(task.getId(), task.getTaskData().getWorkItemId(), userId, message)); AuditTaskImpl auditTaskImpl = getAuditTask(event, persistenceContext, task); if (auditTaskImpl == null) { logger.warn("Unable find audit task entry for task id {} '{}', skipping audit task update", task.getId(), task.getName());
@Override public void beforeTaskReleasedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.RELEASED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId)); } finally { cleanup(persistenceContext); } }
Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { AuditTaskImpl auditTaskImpl = getAuditTask(event, persistenceContext, ti); if (auditTaskImpl == null) { logger.warn("Unable find audit task entry for task id {} '{}', skipping audit task update", ti.getId(), ti.getName()); String message = getUpdateFieldLog("Description", auditTaskImpl.getDescription(), ti.getDescription()); String message = getUpdateFieldLog("Name", auditTaskImpl.getName(), ti.getName()); persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.UPDATED, String message = getUpdateFieldLog("Priority", String.valueOf(auditTaskImpl.getPriority()), String.valueOf(ti.getPriority())); persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.UPDATED, String fromDate = (auditTaskImpl.getDueDate() != null ? new Date(auditTaskImpl.getDueDate().getTime()).toString(): null); String toDate = (ti.getTaskData().getExpirationTime()!= null ? ti.getTaskData().getExpirationTime().toString() : "" ); String message = getUpdateFieldLog( "DueDate", fromDate, toDate ); cleanup(persistenceContext);
Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { AuditTaskImpl auditTaskImpl = getAuditTask(event, persistenceContext, ti); if (auditTaskImpl == null) { logger.warn("Unable find audit task entry for task id {} '{}', skipping audit task update", ti.getId(), ti.getName()); String message = getUpdateFieldLog("Description", auditTaskImpl.getDescription(), ti.getDescription()); String message = getUpdateFieldLog("Name", auditTaskImpl.getName(), ti.getName()); persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.UPDATED, String message = getUpdateFieldLog("Priority", String.valueOf(auditTaskImpl.getPriority()), String.valueOf(ti.getPriority())); persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.UPDATED, String fromDate = (auditTaskImpl.getDueDate() != null ? new Date(auditTaskImpl.getDueDate().getTime()).toString(): null); String toDate = (ti.getTaskData().getExpirationTime()!= null ? ti.getTaskData().getExpirationTime().toString() : "" ); String message = getUpdateFieldLog( "DueDate", fromDate, toDate ); cleanup(persistenceContext);
String userId = event.getTaskContext().getUserId(); Task task = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); indexAndPersistVariables(task, variables, persistenceContext, VariableType.OUTPUT); String message = "Task output data updated"; persistenceContext.persist(new TaskEventImpl(task.getId(), task.getTaskData().getWorkItemId(), userId, message)); AuditTaskImpl auditTaskImpl = getAuditTask(event, persistenceContext, task); if (auditTaskImpl == null) { logger.warn("Unable find audit task entry for task id {} '{}', skipping audit task update", task.getId(), task.getName());
String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { if(ti.getTaskData().getProcessId() != null){ persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.ADDED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId)); } finally { cleanup(persistenceContext);
/** * Creates new instance of JPA task audit logger with given entity manager factory * @param enf EntityManagerFactory instance to be used * @return new instance of JPA task audit logger */ public static JPATaskLifeCycleEventListener newJPAInstance(EntityManagerFactory emf) { return new JPATaskLifeCycleEventListener(emf); }
@Override public void afterTaskFailedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.FAILED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId)); AuditTaskImpl auditTaskImpl = getAuditTask(event, persistenceContext, ti); if (auditTaskImpl == null) { logger.warn("Unable find audit task entry for task id {} '{}', skipping audit task update", ti.getId(), ti.getName()); return; } auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setLastModificationDate(event.getEventDate()); persistenceContext.merge(auditTaskImpl); } finally { cleanup(persistenceContext); } }
@Override public void beforeTaskReleasedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.RELEASED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId)); } finally { cleanup(persistenceContext); } }
@Override public void afterTaskAssignmentsAddedEvent(TaskEvent event, AssignmentType type, List<OrganizationalEntity> entities) { assignmentsUpadted(event, type, entities, "] have been added"); }
DeploymentDescriptor descriptor = getRuntimeManager().getDeploymentDescriptor(); if (descriptor == null) { defaultListeners.add(new JPATaskLifeCycleEventListener(true)); } else if (descriptor.getAuditMode() == AuditMode.JPA) {
@Override public void afterTaskCompletedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.COMPLETED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId)); AuditTaskImpl auditTaskImpl = getAuditTask(event, persistenceContext, ti); if (auditTaskImpl == null) { logger.warn("Unable find audit task entry for task id {} '{}', skipping audit task update", ti.getId(), ti.getName()); return; } auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setLastModificationDate(event.getEventDate()); persistenceContext.merge(auditTaskImpl); } finally { cleanup(persistenceContext); } }
String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { if(ti.getTaskData().getProcessId() != null){ persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.ADDED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId)); } finally { cleanup(persistenceContext);
@Override public void afterTaskAssignmentsRemovedEvent(TaskEvent event, AssignmentType type, List<OrganizationalEntity> entities) { assignmentsUpadted(event, type, entities, "] have been removed"); }
@Override public TaskService newTaskService() { customTaskServiceUsed.set(true); return HumanTaskServiceFactory.newTaskServiceConfigurator() .entityManagerFactory(produceEntityManagerFactory()) .listener(new JPATaskLifeCycleEventListener(true)) .getTaskService(); }
@Override public void afterTaskActivatedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.ACTIVATED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId)); AuditTaskImpl auditTaskImpl = getAuditTask(event, persistenceContext, ti); if (auditTaskImpl == null) { logger.warn("Unable find audit task entry for task id {} '{}', skipping audit task update", ti.getId(), ti.getName()); return; } auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setDescription(ti.getDescription()); auditTaskImpl.setLastModificationDate(event.getEventDate()); persistenceContext.merge(auditTaskImpl); } finally { cleanup(persistenceContext); } }
@Override public void afterTaskAssignmentsAddedEvent(TaskEvent event, AssignmentType type, List<OrganizationalEntity> entities) { assignmentsUpadted(event, type, entities, "] have been added"); }