diff --git a/spring-batch-lightmin-server/spring-batch-lightmin-server-fe/src/main/java/org/tuxdevelop/spring/batch/lightmin/server/fe/controller/BatchJobExecutionsController.java b/spring-batch-lightmin-server/spring-batch-lightmin-server-fe/src/main/java/org/tuxdevelop/spring/batch/lightmin/server/fe/controller/BatchJobExecutionsController.java index 6fae4b8ce..1d4918544 100644 --- a/spring-batch-lightmin-server/spring-batch-lightmin-server-fe/src/main/java/org/tuxdevelop/spring/batch/lightmin/server/fe/controller/BatchJobExecutionsController.java +++ b/spring-batch-lightmin-server/spring-batch-lightmin-server-fe/src/main/java/org/tuxdevelop/spring/batch/lightmin/server/fe/controller/BatchJobExecutionsController.java @@ -1,18 +1,19 @@ package org.tuxdevelop.spring.batch.lightmin.server.fe.controller; +import java.util.List; + import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; import org.tuxdevelop.spring.batch.lightmin.server.fe.model.common.ApplicationContextModel; import org.tuxdevelop.spring.batch.lightmin.server.fe.model.common.ContentPageModel; import org.tuxdevelop.spring.batch.lightmin.server.fe.model.job.batch.JobExecutionDetailsModel; import org.tuxdevelop.spring.batch.lightmin.server.fe.model.job.batch.JobExecutionModel; import org.tuxdevelop.spring.batch.lightmin.server.fe.service.JobExecutionFeService; -import java.util.List; - @Controller public class BatchJobExecutionsController extends CommonController { @@ -24,16 +25,15 @@ public BatchJobExecutionsController(final JobExecutionFeService jobExecutionFeSe @GetMapping(value = "/batch-job-executions") public void initBatchJobExecutions(final Model model, - @RequestParam(name = "start-index", defaultValue = "0") final Integer index, - @RequestParam(name = "page-size", defaultValue = "20") final Integer pageSize, - @RequestParam(name = "job-name") final String jobName, - @RequestParam(name = "application-instance-id") final String applicationInstanceId) { + @RequestParam(name = "start-index", defaultValue = "0") final Integer index, + @RequestParam(name = "page-size", defaultValue = "20") final Integer pageSize, + @RequestParam(name = "job-name") final String jobName, + @RequestParam(name = "application-instance-id") final String applicationInstanceId) { - final ContentPageModel> page = - this.jobExecutionFeService.getJobExecutionModelPage(applicationInstanceId, jobName, index, pageSize); + final ContentPageModel> page = this.jobExecutionFeService.getJobExecutionModelPage(applicationInstanceId, jobName, index, + pageSize); - final ApplicationContextModel applicationContextModel = - this.jobExecutionFeService.getApplicationContextModel(applicationInstanceId); + final ApplicationContextModel applicationContextModel = this.jobExecutionFeService.getApplicationContextModel(applicationInstanceId); applicationContextModel.setJobName(jobName); model.addAttribute("pageModel", page); @@ -42,45 +42,47 @@ public void initBatchJobExecutions(final Model model, @GetMapping(value = "/batch-job-execution") public void initBatchJobExecution(final Model model, - @RequestParam(name = "job-execution-id") final Long jobExecutionId, - @RequestParam(name = "job-name") final String jobName, - @RequestParam(name = "application-instance-id") final String applicationInstanceId) { + @RequestParam(name = "job-execution-id") final Long jobExecutionId, + @RequestParam(name = "job-name") final String jobName, + @RequestParam(name = "application-instance-id") final String applicationInstanceId) { initDetailsModel(model, jobExecutionId, jobName, applicationInstanceId); } - @PostMapping(value = {"/batch-job-execution"}, params = "stop-batch-job-execution") - public void stopBatchJobExecution(final Model model, - @RequestParam(name = "job-execution-id") final Long jobExecutionId, - @RequestParam(name = "job-name") final String jobName, - @RequestParam(name = "application-instance-id") final String applicationInstanceId) { + @PostMapping(value = { "/batch-job-execution" }, params = "stop-batch-job-execution") + public String stopBatchJobExecution(final Model model, + @RequestParam(name = "job-execution-id") final Long jobExecutionId, + @RequestParam(name = "job-name") final String jobName, + @RequestParam(name = "application-instance-id") final String applicationInstanceId, + RedirectAttributes redirectAttributes) { this.jobExecutionFeService.stopJobExecution(jobExecutionId, applicationInstanceId); - - initDetailsModel(model, jobExecutionId, jobName, applicationInstanceId); + redirectAttributes.addAttribute("job-execution-id", jobExecutionId); + redirectAttributes.addAttribute("job-name", jobName); + redirectAttributes.addAttribute("application-instance-id", applicationInstanceId); + return "redirect:/batch-job-execution"; } - - @PostMapping(value = {"/batch-job-execution"}, params = "restart-batch-job-execution") - public void restartBatchJobExecution(final Model model, - @RequestParam(name = "job-execution-id") final Long jobExecutionId, - @RequestParam(name = "job-name") final String jobName, - @RequestParam(name = "application-instance-id") final String applicationInstanceId) { + @PostMapping(value = { "/batch-job-execution" }, params = "restart-batch-job-execution") + public String restartBatchJobExecution(final Model model, + @RequestParam(name = "job-execution-id") final Long jobExecutionId, + @RequestParam(name = "job-name") final String jobName, + @RequestParam(name = "application-instance-id") final String applicationInstanceId, + RedirectAttributes redirectAttributes) { this.jobExecutionFeService.restartJobExecution(jobExecutionId, applicationInstanceId); - - initDetailsModel(model, jobExecutionId, jobName, applicationInstanceId); + redirectAttributes.addAttribute("job-name", jobName); + redirectAttributes.addAttribute("application-instance-id", applicationInstanceId); + return "redirect:/batch-job-executions"; } private void initDetailsModel(final Model model, - final Long jobExecutionId, - final String jobName, - final String applicationInstanceId) { - final JobExecutionDetailsModel jobExecutionDetailsModel = - this.jobExecutionFeService.getJobExecutionDetailsModel(jobExecutionId, applicationInstanceId); - - final ApplicationContextModel applicationContextModel = - this.jobExecutionFeService.getApplicationContextModel(applicationInstanceId); + final Long jobExecutionId, + final String jobName, + final String applicationInstanceId) { + final JobExecutionDetailsModel jobExecutionDetailsModel = this.jobExecutionFeService.getJobExecutionDetailsModel(jobExecutionId, applicationInstanceId); + + final ApplicationContextModel applicationContextModel = this.jobExecutionFeService.getApplicationContextModel(applicationInstanceId); applicationContextModel.setJobName(jobName); applicationContextModel.setJobExecutionId(jobExecutionId); diff --git a/spring-batch-lightmin-server/spring-batch-lightmin-server-fe/src/main/java/org/tuxdevelop/spring/batch/lightmin/server/fe/model/common/CommonExecutionModel.java b/spring-batch-lightmin-server/spring-batch-lightmin-server-fe/src/main/java/org/tuxdevelop/spring/batch/lightmin/server/fe/model/common/CommonExecutionModel.java index 7048bd125..d62894169 100644 --- a/spring-batch-lightmin-server/spring-batch-lightmin-server-fe/src/main/java/org/tuxdevelop/spring/batch/lightmin/server/fe/model/common/CommonExecutionModel.java +++ b/spring-batch-lightmin-server/spring-batch-lightmin-server-fe/src/main/java/org/tuxdevelop/spring/batch/lightmin/server/fe/model/common/CommonExecutionModel.java @@ -1,10 +1,11 @@ package org.tuxdevelop.spring.batch.lightmin.server.fe.model.common; -import lombok.Data; +import java.util.Date; + import org.springframework.util.StringUtils; import org.tuxdevelop.spring.batch.lightmin.util.DurationHelper; -import java.util.Date; +import lombok.Data; @Data public abstract class CommonExecutionModel { @@ -14,6 +15,7 @@ public abstract class CommonExecutionModel { protected static final String STARTED = "started"; protected static final String UNKNOWN = "unknown"; protected static final String FAILED = "failed"; + protected static final String STOPPED = "stopped"; protected Long id; protected String status; @@ -31,9 +33,9 @@ public Boolean getIsCompleted() { } public Boolean getIsFinished() { - return StringUtils.hasText(this.exitStatus) ? - this.COMPLETED.equalsIgnoreCase(this.exitStatus) || this.FAILED.equalsIgnoreCase(this.exitStatus) : - Boolean.FALSE; + return StringUtils.hasText(this.exitStatus) ? this.COMPLETED.equalsIgnoreCase(this.exitStatus) + || this.FAILED.equalsIgnoreCase(this.exitStatus) + || this.STOPPED.equalsIgnoreCase(this.exitStatus) : Boolean.FALSE; } public String getStatusClass() {