diff --git a/application/src/main/java/org/thingsboard/server/service/job/DummyJobProcessor.java b/application/src/main/java/org/thingsboard/server/service/job/DummyJobProcessor.java index 64148af259..e1b91e606a 100644 --- a/application/src/main/java/org/thingsboard/server/service/job/DummyJobProcessor.java +++ b/application/src/main/java/org/thingsboard/server/service/job/DummyJobProcessor.java @@ -21,8 +21,8 @@ import org.thingsboard.server.common.data.job.DummyJobConfiguration; import org.thingsboard.server.common.data.job.Job; import org.thingsboard.server.common.data.job.JobType; import org.thingsboard.server.common.data.job.task.DummyTask; -import org.thingsboard.server.common.data.job.task.DummyTask.DummyTaskFailure; import org.thingsboard.server.common.data.job.task.DummyTaskResult; +import org.thingsboard.server.common.data.job.task.DummyTaskResult.DummyTaskFailure; import org.thingsboard.server.common.data.job.task.Task; import org.thingsboard.server.common.data.job.task.TaskResult; diff --git a/application/src/test/java/org/thingsboard/server/service/job/JobManagerTest.java b/application/src/test/java/org/thingsboard/server/service/job/JobManagerTest.java index d7d22a2859..ee1eee6531 100644 --- a/application/src/test/java/org/thingsboard/server/service/job/JobManagerTest.java +++ b/application/src/test/java/org/thingsboard/server/service/job/JobManagerTest.java @@ -30,8 +30,8 @@ import org.thingsboard.server.common.data.job.Job; import org.thingsboard.server.common.data.job.JobResult; import org.thingsboard.server.common.data.job.JobStatus; import org.thingsboard.server.common.data.job.JobType; -import org.thingsboard.server.common.data.job.task.DummyTask.DummyTaskFailure; import org.thingsboard.server.common.data.job.task.DummyTaskResult; +import org.thingsboard.server.common.data.job.task.DummyTaskResult.DummyTaskFailure; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.controller.AbstractControllerTest; import org.thingsboard.server.dao.job.JobService; diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/job/task/DummyTask.java b/common/data/src/main/java/org/thingsboard/server/common/data/job/task/DummyTask.java index 8c3ed31e50..39e1306597 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/job/task/DummyTask.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/job/task/DummyTask.java @@ -23,7 +23,6 @@ import lombok.experimental.SuperBuilder; import org.thingsboard.server.common.data.job.JobType; import java.util.List; -import java.util.Optional; @Data @NoArgsConstructor @@ -43,33 +42,18 @@ public class DummyTask extends Task { } @Override - public DummyTaskResult toResult(boolean discarded, Optional error) { - var result = DummyTaskResult.builder(); - result.discarded(discarded); - if (error.isPresent()) { - result.failure(DummyTaskFailure.builder() - .error(error.map(Throwable::getMessage).orElse(null)) - .number(number) - .failAlways(failAlways) - .build()); - } - return result.build(); + public DummyTaskResult toFailed(Throwable error) { + return DummyTaskResult.failed(this, error); } @Override - public JobType getJobType() { - return JobType.DUMMY; + public DummyTaskResult toDiscarded() { + return DummyTaskResult.discarded(); } - @Data - @NoArgsConstructor - @EqualsAndHashCode(callSuper = true) - @SuperBuilder - public static class DummyTaskFailure extends TaskFailure { // todo: do we need separate structure? - - private int number; - private boolean failAlways; - + @Override + public JobType getJobType() { + return JobType.DUMMY; } } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/job/task/DummyTaskResult.java b/common/data/src/main/java/org/thingsboard/server/common/data/job/task/DummyTaskResult.java index 7c36636181..cd68b4d248 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/job/task/DummyTaskResult.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/job/task/DummyTaskResult.java @@ -20,7 +20,6 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; import org.thingsboard.server.common.data.job.JobType; -import org.thingsboard.server.common.data.job.task.DummyTask.DummyTaskFailure; @Data @EqualsAndHashCode(callSuper = true) @@ -28,21 +27,43 @@ import org.thingsboard.server.common.data.job.task.DummyTask.DummyTaskFailure; @SuperBuilder public class DummyTaskResult extends TaskResult { - private static final DummyTaskResult SUCCESS = new DummyTaskResult(true); + private static final DummyTaskResult SUCCESS = DummyTaskResult.builder().success(true).build(); + private static final DummyTaskResult DISCARDED = DummyTaskResult.builder().discarded(true).build(); private DummyTaskFailure failure; - public DummyTaskResult(boolean success) { - super(success); - } - public static DummyTaskResult success() { return SUCCESS; } + public static DummyTaskResult failed(DummyTask task, Throwable error) { + DummyTaskResult result = new DummyTaskResult(); + result.setFailure(DummyTaskFailure.builder() + .error(error.getMessage()) + .number(task.getNumber()) + .failAlways(task.isFailAlways()) + .build()); + return result; + } + + public static DummyTaskResult discarded() { + return DISCARDED; + } + @Override public JobType getJobType() { return JobType.DUMMY; } + @Data + @NoArgsConstructor + @EqualsAndHashCode(callSuper = true) + @SuperBuilder + public static class DummyTaskFailure extends TaskFailure { + + private int number; + private boolean failAlways; + + } + } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/job/task/Task.java b/common/data/src/main/java/org/thingsboard/server/common/data/job/task/Task.java index 5cf39ec6fb..624c5e90f8 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/job/task/Task.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/job/task/Task.java @@ -27,8 +27,6 @@ import org.thingsboard.server.common.data.id.JobId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.job.JobType; -import java.util.Optional; - @Data @JsonIgnoreProperties(ignoreUnknown = true) @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "jobType") @@ -51,7 +49,9 @@ public abstract class Task { @JsonIgnore public abstract Object getKey(); - public abstract R toResult(boolean discarded, Optional error); + public abstract R toFailed(Throwable error); + + public abstract R toDiscarded(); public abstract JobType getJobType(); diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/job/task/TaskResult.java b/common/data/src/main/java/org/thingsboard/server/common/data/job/task/TaskResult.java index 40f0763e3a..8c4667e1be 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/job/task/TaskResult.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/job/task/TaskResult.java @@ -39,10 +39,6 @@ public abstract class TaskResult { private boolean success; private boolean discarded; - public TaskResult(boolean success) { - this.success = success; - } - public abstract JobType getJobType(); } diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/task/TaskProcessor.java b/common/queue/src/main/java/org/thingsboard/server/queue/task/TaskProcessor.java index 25e9d8807d..643e7b27bc 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/task/TaskProcessor.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/task/TaskProcessor.java @@ -37,7 +37,6 @@ import org.thingsboard.server.queue.provider.TaskProcessorQueueFactory; import org.thingsboard.server.queue.util.AfterStartUp; import java.util.List; -import java.util.Optional; import java.util.Set; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; @@ -140,11 +139,13 @@ public abstract class TaskProcessor, R extends TaskResult> { public abstract R process(T task) throws Exception; private void reportTaskFailure(T task, Throwable error) { - reportTaskResult(task, task.toResult(false, Optional.of(error))); + R taskResult = task.toFailed(error); + reportTaskResult(task, taskResult); } private void reportTaskDiscarded(T task) { - reportTaskResult(task, task.toResult(true, Optional.empty())); + R taskResult = task.toDiscarded(); + reportTaskResult(task, taskResult); } private void reportTaskResult(T task, R result) {