use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project OpenOLAT by OpenOLAT.
the class PersistentTaskDAOTest method pickTask.
@Test
public void pickTask() {
String taskName = "Task 1";
PersistentTask task = persistentTaskDao.createTask(taskName, new DummyTask());
dbInstance.commitAndCloseSession();
PersistentTask todo = persistentTaskDao.pickTaskForRun(task.getKey());
Assert.assertNotNull(todo);
Assert.assertEquals(task.getKey(), todo.getKey());
Assert.assertEquals(TaskStatus.inWork, todo.getStatus());
}
use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project OpenOLAT by OpenOLAT.
the class PersistentTaskDAO method returnTaskAfterEdition.
public PersistentTask returnTaskAfterEdition(Long taskKey, TaskStatus wishedStatus) {
PersistentTask task = dbInstance.getCurrentEntityManager().find(PersistentTask.class, taskKey, LockModeType.PESSIMISTIC_WRITE);
PersistentTask mtask;
if (TaskStatus.inWork.equals(task.getStatus())) {
// cannot pick
mtask = null;
} else {
if (wishedStatus == null) {
task.setStatusStr(task.getStatusBeforeEditStr());
} else {
task.setStatus(wishedStatus);
}
task.setStatusBeforeEditStr(null);
mtask = dbInstance.getCurrentEntityManager().merge(task);
}
dbInstance.commit();
return mtask;
}
use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project OpenOLAT by OpenOLAT.
the class PersistentTaskDAO method updateTask.
public PersistentTask updateTask(Task task, Serializable runnableTask, Identity modifier, Date scheduledDate) {
PersistentTask ptask = dbInstance.getCurrentEntityManager().find(PersistentTask.class, task.getKey(), LockModeType.PESSIMISTIC_WRITE);
if (ptask != null) {
ptask.setLastModified(new Date());
ptask.setScheduledDate(scheduledDate);
ptask.setStatus(TaskStatus.newTask);
ptask.setStatusBeforeEditStr(null);
ptask.setTask(xstream.toXML(runnableTask));
ptask = dbInstance.getCurrentEntityManager().merge(ptask);
if (modifier != null) {
// add to the list of modifier
PersistentTaskModifier mod = new PersistentTaskModifier();
mod.setCreationDate(new Date());
mod.setModifier(modifier);
mod.setTask(ptask);
dbInstance.getCurrentEntityManager().persist(mod);
}
dbInstance.commit();
}
return ptask;
}
use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project OpenOLAT by OpenOLAT.
the class PersistentTaskDAO method pickTaskForEdition.
public PersistentTask pickTaskForEdition(Long taskKey) {
PersistentTask task = dbInstance.getCurrentEntityManager().find(PersistentTask.class, taskKey, LockModeType.PESSIMISTIC_WRITE);
PersistentTask mtask;
if (TaskStatus.inWork.equals(task.getStatus()) || TaskStatus.edition.equals(task.getStatus())) {
// cannot pick
mtask = null;
} else {
task.setStatusBeforeEditStr(task.getStatusStr());
task.setStatus(TaskStatus.edition);
mtask = dbInstance.getCurrentEntityManager().merge(task);
}
dbInstance.commit();
return mtask;
}
use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project OpenOLAT by OpenOLAT.
the class PersistentTaskDAO method createTask.
public PersistentTask createTask(String name, Serializable task) {
PersistentTask ptask = new PersistentTask();
Date currentDate = new Date();
ptask.setCreationDate(currentDate);
ptask.setLastModified(currentDate);
ptask.setName(name);
ptask.setStatus(TaskStatus.newTask);
ptask.setTask(xstream.toXML(task));
dbInstance.getCurrentEntityManager().persist(ptask);
return ptask;
}
Aggregations