This is an automated email from the ASF dual-hosted git repository. ilgrosso pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/master by this push: new b4b373e SYNCOPE-1465: make sure task objects track the executor. (#127) b4b373e is described below commit b4b373e84c63542196cb9ccb0cdab3f99cdf0609 Author: Misagh Moayyed <mm1...@gmail.com> AuthorDate: Thu Oct 10 14:11:27 2019 +0400 SYNCOPE-1465: make sure task objects track the executor. (#127) --- .../main/java/org/apache/syncope/common/lib/to/TaskTO.java | 13 +++++++++++++ .../main/java/org/apache/syncope/core/logic/TaskLogic.java | 1 + .../core/provisioning/java/data/TaskDataBinderImpl.java | 6 ++++-- .../org/apache/syncope/fit/core/AbstractTaskITCase.java | 7 ++++--- 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/TaskTO.java b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/TaskTO.java index 51c7a6b..6dd9d35 100644 --- a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/TaskTO.java +++ b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/to/TaskTO.java @@ -54,6 +54,8 @@ public abstract class TaskTO extends AbstractStartEndBean implements EntityTO { private String latestExecStatus; + private String lastExecutor; + private final List<ExecTO> executions = new ArrayList<>(); @Schema(name = "@class", required = true) @@ -85,6 +87,15 @@ public abstract class TaskTO extends AbstractStartEndBean implements EntityTO { } @Schema(accessMode = Schema.AccessMode.READ_ONLY) + public String getLastExecutor() { + return lastExecutor; + } + + public void setLastExecutor(final String lastExecutor) { + this.lastExecutor = lastExecutor; + } + + @Schema(accessMode = Schema.AccessMode.READ_ONLY) @XmlElementWrapper(name = "executions") @XmlElement(name = "execution") @JsonProperty("executions") @@ -100,6 +111,7 @@ public abstract class TaskTO extends AbstractStartEndBean implements EntityTO { append(discriminator). append(executions). append(latestExecStatus). + append(lastExecutor). build(); } @@ -121,6 +133,7 @@ public abstract class TaskTO extends AbstractStartEndBean implements EntityTO { append(discriminator, other.discriminator). append(executions, other.executions). append(latestExecStatus, other.latestExecStatus). + append(lastExecutor, other.lastExecutor). build(); } } diff --git a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java index 7dec93d..16b0122 100644 --- a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java +++ b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java @@ -294,6 +294,7 @@ public class TaskLogic extends AbstractExecutableLogic<TaskTO> { result.setRefKey(task.getKey()); result.setRefDesc(binder.buildRefDesc(task)); result.setStart(new Date()); + result.setExecutor(executor); result.setStatus("JOB_FIRED"); result.setMessage("Job fired; waiting for results..."); break; diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/TaskDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/TaskDataBinderImpl.java index f747417..7463ef9 100644 --- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/TaskDataBinderImpl.java +++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/TaskDataBinderImpl.java @@ -312,7 +312,8 @@ public class TaskDataBinderImpl implements TaskDataBinder { execTO.setMessage(execution.getMessage()); execTO.setStart(execution.getStart()); execTO.setEnd(execution.getEnd()); - + execTO.setExecutor(execution.getExecutor()); + if (execution.getTask() != null && execution.getTask().getKey() != null) { execTO.setJobType(JobType.TASK); execTO.setRefKey(execution.getTask().getKey()); @@ -330,7 +331,7 @@ public class TaskDataBinderImpl implements TaskDataBinder { schedTaskTO.setActive(schedTask.isActive()); schedTaskTO.setLastExec(schedTaskTO.getStart()); - + String triggerName = JobNamer.getTriggerName(JobNamer.getJobKey(schedTask).getName()); try { Trigger trigger = scheduler.getScheduler().getTrigger(new TriggerKey(triggerName, Scheduler.DEFAULT_GROUP)); @@ -371,6 +372,7 @@ public class TaskDataBinderImpl implements TaskDataBinder { taskTO.setLatestExecStatus(latestExec.getStatus()); taskTO.setStart(latestExec.getStart()); taskTO.setEnd(latestExec.getEnd()); + taskTO.setLastExecutor(latestExec.getExecutor()); } if (details) { diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AbstractTaskITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AbstractTaskITCase.java index 41634dd..aceab14 100644 --- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AbstractTaskITCase.java +++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AbstractTaskITCase.java @@ -126,10 +126,11 @@ public abstract class AbstractTaskITCase extends AbstractITCase { assertNotNull(taskTO.getExecutions()); int preSyncSize = taskTO.getExecutions().size(); - ExecTO execution = taskService.execute( - new ExecuteQuery.Builder().key(taskTO.getKey()).dryRun(dryRun).build()); + ExecuteQuery query = new ExecuteQuery.Builder().key(taskTO.getKey()).dryRun(dryRun).build(); + ExecTO execution = taskService.execute(query); assertEquals(initialStatus, execution.getStatus()); - + assertNotNull(execution.getExecutor()); + int i = 0; // wait for completion (executions incremented)