Search in sources :

Example 46 with PersistentTask

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, Identity creator, OLATResource resource, String resSubPath, Date scheduledDate) {
    PersistentTask ptask = new PersistentTask();
    Date currentDate = new Date();
    ptask.setCreationDate(currentDate);
    ptask.setLastModified(currentDate);
    ptask.setScheduledDate(scheduledDate);
    ptask.setName(name);
    ptask.setCreator(creator);
    ptask.setResource(resource);
    ptask.setResSubPath(resSubPath);
    ptask.setStatus(TaskStatus.newTask);
    ptask.setTask(xstream.toXML(task));
    dbInstance.getCurrentEntityManager().persist(ptask);
    return ptask;
}
Also used : PersistentTask(org.olat.core.commons.services.taskexecutor.model.PersistentTask) Date(java.util.Date)

Example 47 with PersistentTask

use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project OpenOLAT by OpenOLAT.

the class TaskExecutorManagerImpl method getPersistedRunnableTask.

@Override
public <T extends Runnable> T getPersistedRunnableTask(Task task, Class<T> type) {
    if (task instanceof PersistentTask) {
        PersistentTask ptask = (PersistentTask) task;
        @SuppressWarnings("unchecked") T runnable = (T) persistentTaskDao.deserializeTask(ptask);
        return runnable;
    }
    return null;
}
Also used : PersistentTask(org.olat.core.commons.services.taskexecutor.model.PersistentTask)

Example 48 with PersistentTask

use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project openolat by klemens.

the class PersistentTaskDAOTest method deletedTask_byResourceAndSubpath.

@Test
public void deletedTask_byResourceAndSubpath() {
    RepositoryEntry re = JunitTestHelper.createAndPersistRepositoryEntry();
    Identity creator = JunitTestHelper.createAndPersistIdentityAsUser("extask-9-" + UUID.randomUUID().toString());
    String taskName = UUID.randomUUID().toString();
    PersistentTask task1 = persistentTaskDao.createTask(taskName, new DummyTask(), creator, re.getOlatResource(), "byResource", null);
    PersistentTask task2 = persistentTaskDao.createTask(taskName, new DummyTask(), creator, re.getOlatResource(), "byResource", null);
    PersistentTask taskMark = persistentTaskDao.createTask(taskName, new DummyTask(), creator, re.getOlatResource(), "byResourceMarker", null);
    Assert.assertNotNull(task1);
    Assert.assertNotNull(task2);
    Assert.assertNotNull(taskMark);
    dbInstance.commitAndCloseSession();
    // delete tasks 1 and 2
    persistentTaskDao.delete(re.getOlatResource(), "byResource");
    dbInstance.commitAndCloseSession();
    // check if the tasks are deleted
    List<Task> tasks = persistentTaskDao.findTasks(re.getOlatResource());
    Assert.assertNotNull(tasks);
    Assert.assertFalse(tasks.isEmpty());
    Assert.assertTrue(tasks.contains(taskMark));
}
Also used : PersistentTask(org.olat.core.commons.services.taskexecutor.model.PersistentTask) RepositoryEntry(org.olat.repository.RepositoryEntry) Identity(org.olat.core.id.Identity) PersistentTask(org.olat.core.commons.services.taskexecutor.model.PersistentTask) Test(org.junit.Test)

Example 49 with PersistentTask

use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project openolat by klemens.

the class PersistentTaskDAOTest method createTask_withResource.

@Test
public void createTask_withResource() {
    RepositoryEntry re = JunitTestHelper.createAndPersistRepositoryEntry();
    Identity creator = JunitTestHelper.createAndPersistIdentityAsUser("extask-1-" + UUID.randomUUID().toString());
    dbInstance.commitAndCloseSession();
    String taskName = UUID.randomUUID().toString();
    PersistentTask task = persistentTaskDao.createTask(taskName, new DummyTask(), creator, re.getOlatResource(), "test", null);
    Assert.assertNotNull(task);
    Assert.assertNotNull(task.getKey());
    Assert.assertNotNull(task.getCreationDate());
    Assert.assertNotNull(task.getLastModified());
    Assert.assertNotNull(task.getTask());
    Assert.assertEquals(TaskStatus.newTask, task.getStatus());
    Assert.assertEquals(re.getOlatResource(), task.getResource());
    Assert.assertEquals("test", task.getResSubPath());
    Assert.assertEquals(creator, task.getCreator());
}
Also used : RepositoryEntry(org.olat.repository.RepositoryEntry) Identity(org.olat.core.id.Identity) PersistentTask(org.olat.core.commons.services.taskexecutor.model.PersistentTask) Test(org.junit.Test)

Example 50 with PersistentTask

use of org.olat.core.commons.services.taskexecutor.model.PersistentTask in project openolat by klemens.

the class PersistentTaskDAOTest method edit_workflow.

@Test
public void edit_workflow() {
    RepositoryEntry re = JunitTestHelper.createAndPersistRepositoryEntry();
    Identity creator = JunitTestHelper.createAndPersistIdentityAsUser("extask-20-" + UUID.randomUUID().toString());
    String taskName = UUID.randomUUID().toString();
    PersistentTask task = persistentTaskDao.createTask(taskName, new DummyTask(), creator, re.getOlatResource(), "edition", null);
    Assert.assertNotNull(task);
    dbInstance.commitAndCloseSession();
    // pick
    PersistentTask editableTask = persistentTaskDao.pickTaskForEdition(task.getKey());
    Assert.assertNotNull(editableTask);
    Assert.assertEquals(TaskStatus.edition, editableTask.getStatus());
    dbInstance.commitAndCloseSession();
    // second pick
    PersistentTask notEditableTask = persistentTaskDao.pickTaskForEdition(task.getKey());
    Assert.assertNull(notEditableTask);
    dbInstance.commitAndCloseSession();
    // return
    persistentTaskDao.returnTaskAfterEdition(task.getKey(), null);
    dbInstance.commitAndCloseSession();
    // third pick
    PersistentTask againEditableTask = persistentTaskDao.pickTaskForEdition(task.getKey());
    Assert.assertNotNull(againEditableTask);
    Assert.assertEquals(TaskStatus.edition, againEditableTask.getStatus());
    dbInstance.commitAndCloseSession();
}
Also used : RepositoryEntry(org.olat.repository.RepositoryEntry) Identity(org.olat.core.id.Identity) PersistentTask(org.olat.core.commons.services.taskexecutor.model.PersistentTask) Test(org.junit.Test)

Aggregations

PersistentTask (org.olat.core.commons.services.taskexecutor.model.PersistentTask)56 Test (org.junit.Test)36 Identity (org.olat.core.id.Identity)24 RepositoryEntry (org.olat.repository.RepositoryEntry)24 Date (java.util.Date)14 LongRunnable (org.olat.core.commons.services.taskexecutor.LongRunnable)4 Sequential (org.olat.core.commons.services.taskexecutor.Sequential)4 EntityNotFoundException (javax.persistence.EntityNotFoundException)2 Task (org.olat.core.commons.services.taskexecutor.Task)2 TaskAwareRunnable (org.olat.core.commons.services.taskexecutor.TaskAwareRunnable)2 DBSecureRunnable (org.olat.core.commons.services.taskexecutor.model.DBSecureRunnable)2 PersistentTaskModifier (org.olat.core.commons.services.taskexecutor.model.PersistentTaskModifier)2 PersistentTaskRunnable (org.olat.core.commons.services.taskexecutor.model.PersistentTaskRunnable)2 AssertException (org.olat.core.logging.AssertException)2 SchedulerException (org.quartz.SchedulerException)2