From 5d08893a6b2a770fb15ac32411833baa071ce3bb Mon Sep 17 00:00:00 2001 From: Joerg Heffner <56156750+gitgoodjhe@users.noreply.github.com> Date: Mon, 30 Aug 2021 09:24:42 +0200 Subject: [PATCH] TSK-1724: Change JobType from Enum to String --- .../impl/jobs/HistoryCleanupJob.java | 5 ++- .../jobs/HistoryCleanupJobAccTest.java | 12 ++++--- .../internal/ClassificationServiceImpl.java | 2 +- .../jobs/ClassificationChangedJob.java | 10 +++--- .../pro/taskana/common/api/ScheduledJob.java | 36 +++---------------- .../taskana/common/internal/JobMapper.java | 3 +- .../common/internal/JobServiceImpl.java | 3 +- .../internal/jobs/AbstractTaskanaJob.java | 4 +-- .../task/internal/jobs/TaskCleanupJob.java | 7 ++-- .../task/internal/jobs/TaskRefreshJob.java | 7 ++-- .../internal/jobs/TaskUpdatePriorityJob.java | 7 ++-- .../internal/jobs/WorkbasketCleanupJob.java | 7 ++-- .../acceptance/jobs/JobRunnerAccTest.java | 3 +- .../jobs/TaskCleanupJobAccTest.java | 13 +++---- .../jobs/TaskUpdatePriorityJobAccTest.java | 3 +- .../jobs/WorkbasketCleanupJobAccTest.java | 12 ++++--- .../UpdateObjectsUseUtcTimeStampsAccTest.java | 3 +- .../taskana/example/jobs/JobScheduler.java | 3 +- 18 files changed, 56 insertions(+), 84 deletions(-) diff --git a/history/taskana-simplehistory-provider/src/main/java/pro/taskana/simplehistory/impl/jobs/HistoryCleanupJob.java b/history/taskana-simplehistory-provider/src/main/java/pro/taskana/simplehistory/impl/jobs/HistoryCleanupJob.java index c87d663bc..c37fc36a5 100644 --- a/history/taskana-simplehistory-provider/src/main/java/pro/taskana/simplehistory/impl/jobs/HistoryCleanupJob.java +++ b/history/taskana-simplehistory-provider/src/main/java/pro/taskana/simplehistory/impl/jobs/HistoryCleanupJob.java @@ -16,7 +16,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import pro.taskana.common.api.ScheduledJob; -import pro.taskana.common.api.ScheduledJob.Type; import pro.taskana.common.api.TaskanaEngine; import pro.taskana.common.api.TimeInterval; import pro.taskana.common.api.exceptions.InvalidArgumentException; @@ -144,8 +143,8 @@ public class HistoryCleanupJob extends AbstractTaskanaJob { } @Override - protected Type getType() { - return Type.HISTORY_CLEANUP_JOB; + protected String getType() { + return HistoryCleanupJob.class.getName(); } private List filterSameParentBusinessHistoryEventsQualifiedToClean( diff --git a/history/taskana-simplehistory-provider/src/test/java/acceptance/jobs/HistoryCleanupJobAccTest.java b/history/taskana-simplehistory-provider/src/test/java/acceptance/jobs/HistoryCleanupJobAccTest.java index 48b4c280c..b1965a12c 100644 --- a/history/taskana-simplehistory-provider/src/test/java/acceptance/jobs/HistoryCleanupJobAccTest.java +++ b/history/taskana-simplehistory-provider/src/test/java/acceptance/jobs/HistoryCleanupJobAccTest.java @@ -17,14 +17,15 @@ import org.junit.jupiter.api.TestFactory; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.function.ThrowingConsumer; +import pro.taskana.classification.internal.jobs.ClassificationChangedJob; import pro.taskana.common.api.ScheduledJob; -import pro.taskana.common.api.ScheduledJob.Type; import pro.taskana.common.internal.util.Pair; import pro.taskana.common.test.security.JaasExtension; import pro.taskana.common.test.security.WithAccessId; import pro.taskana.simplehistory.impl.jobs.HistoryCleanupJob; import pro.taskana.spi.history.api.events.task.TaskHistoryEvent; import pro.taskana.spi.history.api.events.task.TaskHistoryEventType; +import pro.taskana.task.internal.jobs.TaskRefreshJob; @ExtendWith(JaasExtension.class) class HistoryCleanupJobAccTest extends AbstractAccTest { @@ -378,11 +379,11 @@ class HistoryCleanupJobAccTest extends AbstractAccTest { for (int i = 0; i < 10; i++) { ScheduledJob job = new ScheduledJob(); - job.setType(ScheduledJob.Type.HISTORY_CLEANUP_JOB); + job.setType(HistoryCleanupJob.class.getName()); taskanaEngine.getJobService().createJob(job); - job.setType(Type.TASK_REFRESH_JOB); + job.setType(TaskRefreshJob.class.getName()); taskanaEngine.getJobService().createJob(job); - job.setType(Type.CLASSIFICATION_CHANGED_JOB); + job.setType(ClassificationChangedJob.class.getName()); taskanaEngine.getJobService().createJob(job); } @@ -392,7 +393,8 @@ class HistoryCleanupJobAccTest extends AbstractAccTest { List historyCleanupJobs = jobsToRun.stream() - .filter(scheduledJob -> scheduledJob.getType().equals(Type.HISTORY_CLEANUP_JOB)) + .filter( + scheduledJob -> scheduledJob.getType().equals(HistoryCleanupJob.class.getName())) .collect(Collectors.toList()); HistoryCleanupJob.initializeSchedule(taskanaEngine); diff --git a/lib/taskana-core/src/main/java/pro/taskana/classification/internal/ClassificationServiceImpl.java b/lib/taskana-core/src/main/java/pro/taskana/classification/internal/ClassificationServiceImpl.java index d034d6622..02da3aab8 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/classification/internal/ClassificationServiceImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/classification/internal/ClassificationServiceImpl.java @@ -589,7 +589,7 @@ public class ClassificationServiceImpl implements ClassificationService { args.put(ClassificationChangedJob.SERVICE_LEVEL_CHANGED, String.valueOf(serviceLevelChanged)); ScheduledJob job = new ScheduledJob(); job.setArguments(args); - job.setType(ScheduledJob.Type.CLASSIFICATION_CHANGED_JOB); + job.setType(ClassificationChangedJob.class.getName()); taskanaEngine.getEngine().getJobService().createJob(job); } } diff --git a/lib/taskana-core/src/main/java/pro/taskana/classification/internal/jobs/ClassificationChangedJob.java b/lib/taskana-core/src/main/java/pro/taskana/classification/internal/jobs/ClassificationChangedJob.java index 95fc96ba1..b10486f24 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/classification/internal/jobs/ClassificationChangedJob.java +++ b/lib/taskana-core/src/main/java/pro/taskana/classification/internal/jobs/ClassificationChangedJob.java @@ -8,7 +8,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import pro.taskana.common.api.ScheduledJob; -import pro.taskana.common.api.ScheduledJob.Type; import pro.taskana.common.api.TaskanaEngine; import pro.taskana.common.api.exceptions.SystemException; import pro.taskana.common.api.exceptions.TaskanaException; @@ -16,10 +15,11 @@ import pro.taskana.common.internal.jobs.AbstractTaskanaJob; import pro.taskana.common.internal.transaction.TaskanaTransactionProvider; import pro.taskana.common.internal.util.CollectionUtil; import pro.taskana.task.internal.TaskServiceImpl; +import pro.taskana.task.internal.jobs.TaskRefreshJob; /** * This class executes a job of type {@linkplain - * pro.taskana.common.api.ScheduledJob.Type#CLASSIFICATION_CHANGED_JOB}. + * pro.taskana.classification.internal.jobs.ClassificationChangedJob}. */ public class ClassificationChangedJob extends AbstractTaskanaJob { @@ -58,8 +58,8 @@ public class ClassificationChangedJob extends AbstractTaskanaJob { } @Override - protected Type getType() { - return Type.CLASSIFICATION_CHANGED_JOB; + protected String getType() { + return ClassificationChangedJob.class.getName(); } private void scheduleTaskRefreshJobs(List affectedTaskIds) { @@ -82,7 +82,7 @@ public class ClassificationChangedJob extends AbstractTaskanaJob { args.put(PRIORITY_CHANGED, Boolean.toString(priorityChanged)); args.put(SERVICE_LEVEL_CHANGED, Boolean.toString(serviceLevelChanged)); ScheduledJob job = new ScheduledJob(); - job.setType(ScheduledJob.Type.TASK_REFRESH_JOB); + job.setType(TaskRefreshJob.class.getName()); job.setArguments(args); taskanaEngineImpl.getJobService().createJob(job); } diff --git a/lib/taskana-core/src/main/java/pro/taskana/common/api/ScheduledJob.java b/lib/taskana-core/src/main/java/pro/taskana/common/api/ScheduledJob.java index 4def4ad94..17d7b8f9d 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/common/api/ScheduledJob.java +++ b/lib/taskana-core/src/main/java/pro/taskana/common/api/ScheduledJob.java @@ -5,12 +5,6 @@ import java.time.temporal.ChronoUnit; import java.util.Map; import java.util.Objects; -import pro.taskana.classification.internal.jobs.ClassificationChangedJob; -import pro.taskana.task.internal.jobs.TaskCleanupJob; -import pro.taskana.task.internal.jobs.TaskRefreshJob; -import pro.taskana.task.internal.jobs.TaskUpdatePriorityJob; -import pro.taskana.workbasket.internal.jobs.WorkbasketCleanupJob; - /** This class holds all data that go into the Job table. */ public class ScheduledJob { @@ -22,7 +16,7 @@ public class ScheduledJob { private State state; private String lockedBy; private Instant lockExpires; - private Type type; + private String type; private int retryCount; public ScheduledJob() { @@ -95,11 +89,11 @@ public class ScheduledJob { this.arguments = arguments; } - public Type getType() { + public String getType() { return type; } - public void setType(Type type) { + public void setType(String type) { this.type = type; } @@ -133,9 +127,9 @@ public class ScheduledJob { && Objects.equals(lockExpires, other.lockExpires) && Objects.equals(lockedBy, other.lockedBy) && Objects.equals(priority, other.priority) + && Objects.equals(type, other.type) && retryCount == other.retryCount - && state == other.state - && type == other.type; + && state == other.state; } @Override @@ -168,24 +162,4 @@ public class ScheduledJob { READY, FAILED } - - /** This enum controls the type of jobs. */ - public enum Type { - CLASSIFICATION_CHANGED_JOB(ClassificationChangedJob.class.getName()), - TASK_REFRESH_JOB(TaskRefreshJob.class.getName()), - TASK_CLEANUP_JOB(TaskCleanupJob.class.getName()), - TASK_UPDATE_PRIORITY_JOB(TaskUpdatePriorityJob.class.getName()), - WORKBASKET_CLEANUP_JOB(WorkbasketCleanupJob.class.getName()), - HISTORY_CLEANUP_JOB("pro.taskana.simplehistory.impl.jobs.HistoryCleanupJob"); - - private final String clazz; - - Type(String clazz) { - this.clazz = clazz; - } - - public String getClazz() { - return clazz; - } - } } diff --git a/lib/taskana-core/src/main/java/pro/taskana/common/internal/JobMapper.java b/lib/taskana-core/src/main/java/pro/taskana/common/internal/JobMapper.java index fb8ab5c68..7ab8931c3 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/common/internal/JobMapper.java +++ b/lib/taskana-core/src/main/java/pro/taskana/common/internal/JobMapper.java @@ -11,7 +11,6 @@ import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import pro.taskana.common.api.ScheduledJob; -import pro.taskana.common.api.ScheduledJob.Type; import pro.taskana.common.internal.persistence.MapTypeHandler; /** This class is the mybatis mapping of the JOB table. */ @@ -71,5 +70,5 @@ public interface JobMapper { void delete(ScheduledJob job); @Delete(value = "DELETE FROM SCHEDULED_JOB WHERE TYPE = #{jobType}") - void deleteMultiple(Type jobType); + void deleteMultiple(String jobType); } diff --git a/lib/taskana-core/src/main/java/pro/taskana/common/internal/JobServiceImpl.java b/lib/taskana-core/src/main/java/pro/taskana/common/internal/JobServiceImpl.java index a68da345d..367415bcb 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/common/internal/JobServiceImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/common/internal/JobServiceImpl.java @@ -8,7 +8,6 @@ import org.slf4j.LoggerFactory; import pro.taskana.common.api.JobService; import pro.taskana.common.api.ScheduledJob; -import pro.taskana.common.api.ScheduledJob.Type; /** Controls all job activities. */ public class JobServiceImpl implements JobService { @@ -36,7 +35,7 @@ public class JobServiceImpl implements JobService { return job; } - public void deleteJobs(Type jobType) { + public void deleteJobs(String jobType) { taskanaEngineImpl.executeInDatabaseConnection(() -> jobMapper.deleteMultiple(jobType)); if (LOGGER.isDebugEnabled()) { LOGGER.debug("Deleted jobs of type: {}", jobType); diff --git a/lib/taskana-core/src/main/java/pro/taskana/common/internal/jobs/AbstractTaskanaJob.java b/lib/taskana-core/src/main/java/pro/taskana/common/internal/jobs/AbstractTaskanaJob.java index 57998a7d0..45cdf894d 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/common/internal/jobs/AbstractTaskanaJob.java +++ b/lib/taskana-core/src/main/java/pro/taskana/common/internal/jobs/AbstractTaskanaJob.java @@ -41,7 +41,7 @@ public abstract class AbstractTaskanaJob implements TaskanaJob { return (TaskanaJob) Thread.currentThread() .getContextClassLoader() - .loadClass(job.getType().getClazz()) + .loadClass(job.getType()) .getConstructors()[0] .newInstance(engine, txProvider, job); } @@ -54,7 +54,7 @@ public abstract class AbstractTaskanaJob implements TaskanaJob { } } - protected abstract ScheduledJob.Type getType(); + protected abstract String getType(); protected abstract void execute() throws TaskanaException; diff --git a/lib/taskana-core/src/main/java/pro/taskana/task/internal/jobs/TaskCleanupJob.java b/lib/taskana-core/src/main/java/pro/taskana/task/internal/jobs/TaskCleanupJob.java index 4567041eb..534171e6a 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/task/internal/jobs/TaskCleanupJob.java +++ b/lib/taskana-core/src/main/java/pro/taskana/task/internal/jobs/TaskCleanupJob.java @@ -12,7 +12,6 @@ import org.slf4j.LoggerFactory; import pro.taskana.common.api.BaseQuery.SortDirection; import pro.taskana.common.api.BulkOperationResults; import pro.taskana.common.api.ScheduledJob; -import pro.taskana.common.api.ScheduledJob.Type; import pro.taskana.common.api.TaskanaEngine; import pro.taskana.common.api.TimeInterval; import pro.taskana.common.api.exceptions.InvalidArgumentException; @@ -73,13 +72,13 @@ public class TaskCleanupJob extends AbstractTaskanaJob { public static void initializeSchedule(TaskanaEngine taskanaEngine) { JobServiceImpl jobService = (JobServiceImpl) taskanaEngine.getJobService(); TaskCleanupJob job = new TaskCleanupJob(taskanaEngine, null, null); - jobService.deleteJobs(Type.TASK_CLEANUP_JOB); + jobService.deleteJobs(TaskCleanupJob.class.getName()); job.scheduleNextJob(); } @Override - protected Type getType() { - return Type.TASK_CLEANUP_JOB; + protected String getType() { + return TaskCleanupJob.class.getName(); } private List getTasksCompletedBefore(Instant untilDate) { diff --git a/lib/taskana-core/src/main/java/pro/taskana/task/internal/jobs/TaskRefreshJob.java b/lib/taskana-core/src/main/java/pro/taskana/task/internal/jobs/TaskRefreshJob.java index c32302c44..8de66aa54 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/task/internal/jobs/TaskRefreshJob.java +++ b/lib/taskana-core/src/main/java/pro/taskana/task/internal/jobs/TaskRefreshJob.java @@ -7,7 +7,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import pro.taskana.common.api.ScheduledJob; -import pro.taskana.common.api.ScheduledJob.Type; import pro.taskana.common.api.TaskanaEngine; import pro.taskana.common.api.exceptions.SystemException; import pro.taskana.common.api.exceptions.TaskanaException; @@ -15,7 +14,7 @@ import pro.taskana.common.internal.jobs.AbstractTaskanaJob; import pro.taskana.common.internal.transaction.TaskanaTransactionProvider; import pro.taskana.task.internal.TaskServiceImpl; -/** This class executes a job of type {@linkplain ScheduledJob.Type#TASK_REFRESH_JOB}. */ +/** This class executes a job of type {@linkplain pro.taskana.task.internal.jobs.TaskRefreshJob}. */ public class TaskRefreshJob extends AbstractTaskanaJob { public static final String TASK_IDS = "taskIds"; @@ -50,8 +49,8 @@ public class TaskRefreshJob extends AbstractTaskanaJob { } @Override - protected Type getType() { - return Type.TASK_REFRESH_JOB; + protected String getType() { + return TaskRefreshJob.class.getName(); } @Override diff --git a/lib/taskana-core/src/main/java/pro/taskana/task/internal/jobs/TaskUpdatePriorityJob.java b/lib/taskana-core/src/main/java/pro/taskana/task/internal/jobs/TaskUpdatePriorityJob.java index b92b49ba8..a41b95062 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/task/internal/jobs/TaskUpdatePriorityJob.java +++ b/lib/taskana-core/src/main/java/pro/taskana/task/internal/jobs/TaskUpdatePriorityJob.java @@ -6,7 +6,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import pro.taskana.common.api.ScheduledJob; -import pro.taskana.common.api.ScheduledJob.Type; import pro.taskana.common.api.TaskanaEngine; import pro.taskana.common.api.exceptions.SystemException; import pro.taskana.common.internal.JobServiceImpl; @@ -71,13 +70,13 @@ public class TaskUpdatePriorityJob extends AbstractTaskanaJob { public static void initializeSchedule(TaskanaEngine taskanaEngine) { JobServiceImpl jobService = (JobServiceImpl) taskanaEngine.getJobService(); TaskUpdatePriorityJob job = new TaskUpdatePriorityJob(taskanaEngine); - jobService.deleteJobs(job.getType()); + jobService.deleteJobs(TaskUpdatePriorityJob.class.getName()); job.scheduleNextJob(); } @Override - protected Type getType() { - return Type.TASK_UPDATE_PRIORITY_JOB; + protected String getType() { + return TaskUpdatePriorityJob.class.getName(); } @Override diff --git a/lib/taskana-core/src/main/java/pro/taskana/workbasket/internal/jobs/WorkbasketCleanupJob.java b/lib/taskana-core/src/main/java/pro/taskana/workbasket/internal/jobs/WorkbasketCleanupJob.java index d88a36e06..441f1ad64 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/workbasket/internal/jobs/WorkbasketCleanupJob.java +++ b/lib/taskana-core/src/main/java/pro/taskana/workbasket/internal/jobs/WorkbasketCleanupJob.java @@ -7,7 +7,6 @@ import org.slf4j.LoggerFactory; import pro.taskana.common.api.BaseQuery; import pro.taskana.common.api.BulkOperationResults; import pro.taskana.common.api.ScheduledJob; -import pro.taskana.common.api.ScheduledJob.Type; import pro.taskana.common.api.TaskanaEngine; import pro.taskana.common.api.exceptions.InvalidArgumentException; import pro.taskana.common.api.exceptions.NotAuthorizedException; @@ -60,13 +59,13 @@ public class WorkbasketCleanupJob extends AbstractTaskanaJob { public static void initializeSchedule(TaskanaEngine taskanaEngine) { JobServiceImpl jobService = (JobServiceImpl) taskanaEngine.getJobService(); WorkbasketCleanupJob job = new WorkbasketCleanupJob(taskanaEngine, null, null); - jobService.deleteJobs(job.getType()); + jobService.deleteJobs(WorkbasketCleanupJob.class.getName()); job.scheduleNextJob(); } @Override - protected Type getType() { - return Type.WORKBASKET_CLEANUP_JOB; + protected String getType() { + return WorkbasketCleanupJob.class.getName(); } private List getWorkbasketsMarkedForDeletion() { diff --git a/lib/taskana-core/src/test/java/acceptance/jobs/JobRunnerAccTest.java b/lib/taskana-core/src/test/java/acceptance/jobs/JobRunnerAccTest.java index a36e7b2cb..5361a52ab 100644 --- a/lib/taskana-core/src/test/java/acceptance/jobs/JobRunnerAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/jobs/JobRunnerAccTest.java @@ -21,6 +21,7 @@ import pro.taskana.common.api.exceptions.SystemException; import pro.taskana.common.internal.JobServiceImpl; import pro.taskana.common.internal.jobs.JobRunner; import pro.taskana.common.internal.jobs.PlainJavaTransactionProvider; +import pro.taskana.task.internal.jobs.TaskCleanupJob; class JobRunnerAccTest extends AbstractAccTest { @@ -79,7 +80,7 @@ class JobRunnerAccTest extends AbstractAccTest { private ScheduledJob createJob(Instant firstDue) { ScheduledJob job = new ScheduledJob(); - job.setType(ScheduledJob.Type.TASK_CLEANUP_JOB); + job.setType(TaskCleanupJob.class.getName()); job.setDue(firstDue); jobService.createJob(job); return job; diff --git a/lib/taskana-core/src/test/java/acceptance/jobs/TaskCleanupJobAccTest.java b/lib/taskana-core/src/test/java/acceptance/jobs/TaskCleanupJobAccTest.java index 6d386d21f..16f90b7dd 100644 --- a/lib/taskana-core/src/test/java/acceptance/jobs/TaskCleanupJobAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/jobs/TaskCleanupJobAccTest.java @@ -19,8 +19,8 @@ import org.junit.jupiter.api.TestFactory; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.function.ThrowingConsumer; +import pro.taskana.classification.internal.jobs.ClassificationChangedJob; import pro.taskana.common.api.ScheduledJob; -import pro.taskana.common.api.ScheduledJob.Type; import pro.taskana.common.internal.JobMapper; import pro.taskana.common.internal.JobServiceImpl; import pro.taskana.common.internal.jobs.JobRunner; @@ -30,6 +30,7 @@ import pro.taskana.task.api.TaskService; import pro.taskana.task.api.models.Task; import pro.taskana.task.api.models.TaskSummary; import pro.taskana.task.internal.jobs.TaskCleanupJob; +import pro.taskana.task.internal.jobs.TaskRefreshJob; /** Acceptance test for all "jobs tasks runner" scenarios. */ @ExtendWith(JaasExtension.class) @@ -110,11 +111,11 @@ class TaskCleanupJobAccTest extends AbstractAccTest { for (int i = 0; i < 10; i++) { ScheduledJob job = new ScheduledJob(); - job.setType(ScheduledJob.Type.TASK_CLEANUP_JOB); + job.setType(TaskCleanupJob.class.getName()); taskanaEngine.getJobService().createJob(job); - job.setType(Type.TASK_REFRESH_JOB); + job.setType(TaskRefreshJob.class.getName()); taskanaEngine.getJobService().createJob(job); - job.setType(Type.CLASSIFICATION_CHANGED_JOB); + job.setType(ClassificationChangedJob.class.getName()); taskanaEngine.getJobService().createJob(job); } @@ -124,7 +125,7 @@ class TaskCleanupJobAccTest extends AbstractAccTest { List taskCleanupJobs = jobsToRun.stream() - .filter(scheduledJob -> scheduledJob.getType().equals(Type.TASK_CLEANUP_JOB)) + .filter(scheduledJob -> scheduledJob.getType().equals(TaskCleanupJob.class.getName())) .collect(Collectors.toList()); TaskCleanupJob.initializeSchedule(taskanaEngine); @@ -172,7 +173,7 @@ class TaskCleanupJobAccTest extends AbstractAccTest { Instant firstDue = Instant.now().truncatedTo(ChronoUnit.MILLIS); ScheduledJob scheduledJob = new ScheduledJob(); - scheduledJob.setType(ScheduledJob.Type.TASK_CLEANUP_JOB); + scheduledJob.setType(TaskCleanupJob.class.getName()); scheduledJob.setDue(firstDue); JobServiceImpl jobService = (JobServiceImpl) taskanaEngine.getJobService(); diff --git a/lib/taskana-core/src/test/java/acceptance/jobs/TaskUpdatePriorityJobAccTest.java b/lib/taskana-core/src/test/java/acceptance/jobs/TaskUpdatePriorityJobAccTest.java index 5952a49eb..6e48bc998 100644 --- a/lib/taskana-core/src/test/java/acceptance/jobs/TaskUpdatePriorityJobAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/jobs/TaskUpdatePriorityJobAccTest.java @@ -15,7 +15,6 @@ import org.junit.jupiter.api.extension.ExtendWith; import pro.taskana.common.api.BaseQuery.SortDirection; import pro.taskana.common.api.ScheduledJob; -import pro.taskana.common.api.ScheduledJob.Type; import pro.taskana.common.api.exceptions.SystemException; import pro.taskana.common.test.security.JaasExtension; import pro.taskana.common.test.security.WithAccessId; @@ -97,7 +96,7 @@ class TaskUpdatePriorityJobAccTest extends AbstractAccTest { assertThat(getJobMapper().findJobsToRun(someTimeInTheFuture)) .hasSizeGreaterThanOrEqualTo(1) .extracting(ScheduledJob::getType) - .contains(Type.TASK_UPDATE_PRIORITY_JOB); + .contains(TaskUpdatePriorityJob.class.getName()); } @Test diff --git a/lib/taskana-core/src/test/java/acceptance/jobs/WorkbasketCleanupJobAccTest.java b/lib/taskana-core/src/test/java/acceptance/jobs/WorkbasketCleanupJobAccTest.java index 4bb13cf5c..a6defa804 100644 --- a/lib/taskana-core/src/test/java/acceptance/jobs/WorkbasketCleanupJobAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/jobs/WorkbasketCleanupJobAccTest.java @@ -10,14 +10,15 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import pro.taskana.classification.internal.jobs.ClassificationChangedJob; import pro.taskana.common.api.BaseQuery; import pro.taskana.common.api.ScheduledJob; -import pro.taskana.common.api.ScheduledJob.Type; import pro.taskana.common.test.security.JaasExtension; import pro.taskana.common.test.security.WithAccessId; import pro.taskana.task.api.TaskService; import pro.taskana.task.api.TaskState; import pro.taskana.task.internal.jobs.TaskCleanupJob; +import pro.taskana.task.internal.jobs.TaskRefreshJob; import pro.taskana.workbasket.api.WorkbasketService; import pro.taskana.workbasket.api.models.WorkbasketSummary; import pro.taskana.workbasket.internal.jobs.WorkbasketCleanupJob; @@ -95,11 +96,11 @@ class WorkbasketCleanupJobAccTest extends AbstractAccTest { for (int i = 0; i < 10; i++) { ScheduledJob job = new ScheduledJob(); - job.setType(ScheduledJob.Type.WORKBASKET_CLEANUP_JOB); + job.setType(WorkbasketCleanupJob.class.getName()); taskanaEngine.getJobService().createJob(job); - job.setType(Type.TASK_REFRESH_JOB); + job.setType(TaskRefreshJob.class.getName()); taskanaEngine.getJobService().createJob(job); - job.setType(Type.CLASSIFICATION_CHANGED_JOB); + job.setType(ClassificationChangedJob.class.getName()); taskanaEngine.getJobService().createJob(job); } @@ -109,7 +110,8 @@ class WorkbasketCleanupJobAccTest extends AbstractAccTest { List workbasketCleanupJobs = jobsToRun.stream() - .filter(scheduledJob -> scheduledJob.getType().equals(Type.WORKBASKET_CLEANUP_JOB)) + .filter( + scheduledJob -> scheduledJob.getType().equals(WorkbasketCleanupJob.class.getName())) .collect(Collectors.toList()); WorkbasketCleanupJob.initializeSchedule(taskanaEngine); diff --git a/lib/taskana-core/src/test/java/acceptance/persistence/UpdateObjectsUseUtcTimeStampsAccTest.java b/lib/taskana-core/src/test/java/acceptance/persistence/UpdateObjectsUseUtcTimeStampsAccTest.java index 80f51aadb..4b5e0e1d1 100644 --- a/lib/taskana-core/src/test/java/acceptance/persistence/UpdateObjectsUseUtcTimeStampsAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/persistence/UpdateObjectsUseUtcTimeStampsAccTest.java @@ -21,6 +21,7 @@ import pro.taskana.common.test.security.WithAccessId; import pro.taskana.task.api.TaskCustomField; import pro.taskana.task.api.TaskService; import pro.taskana.task.api.models.Task; +import pro.taskana.task.internal.jobs.TaskCleanupJob; import pro.taskana.task.internal.models.TaskImpl; import pro.taskana.workbasket.api.WorkbasketCustomField; import pro.taskana.workbasket.api.WorkbasketPermission; @@ -181,7 +182,7 @@ class UpdateObjectsUseUtcTimeStampsAccTest extends AbstractAccTest { resetDb(true); ScheduledJob job = new ScheduledJob(); job.setArguments(Map.of("keyBla", "valueBla")); - job.setType(ScheduledJob.Type.TASK_CLEANUP_JOB); + job.setType(TaskCleanupJob.class.getName()); job.setDue(Instant.now().minus(Duration.ofHours(5))); job.setLockExpires(Instant.now().minus(Duration.ofHours(5))); JobService jobService = taskanaEngine.getJobService(); diff --git a/rest/taskana-rest-spring-example-common/src/main/java/pro/taskana/example/jobs/JobScheduler.java b/rest/taskana-rest-spring-example-common/src/main/java/pro/taskana/example/jobs/JobScheduler.java index d820a7f7c..8a5992a6e 100644 --- a/rest/taskana-rest-spring-example-common/src/main/java/pro/taskana/example/jobs/JobScheduler.java +++ b/rest/taskana-rest-spring-example-common/src/main/java/pro/taskana/example/jobs/JobScheduler.java @@ -8,7 +8,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; -import pro.taskana.common.api.ScheduledJob.Type; import pro.taskana.common.api.TaskanaEngine; import pro.taskana.common.internal.jobs.JobRunner; import pro.taskana.common.internal.transaction.TaskanaTransactionProvider; @@ -40,7 +39,7 @@ public class JobScheduler { if (taskanaEngine.isHistoryEnabled()) { Thread.currentThread() .getContextClassLoader() - .loadClass(Type.HISTORY_CLEANUP_JOB.getClazz()) + .loadClass("pro.taskana.simplehistory.impl.jobs.HistoryCleanupJob") .getDeclaredMethod("initializeSchedule", TaskanaEngine.class) .invoke(null, taskanaEngine); }