Class JobFlowExecutor
java.lang.Object
org.springframework.batch.core.job.flow.JobFlowExecutor
- All Implemented Interfaces:
FlowExecutor
Implementation of
FlowExecutor
for use in components that need to execute a
flow related to a JobExecution
.- Author:
- Dave Syer, Michael Minella, Mahmoud Ben Hassine
-
Field Summary
-
Constructor Summary
ConstructorDescriptionJobFlowExecutor
(JobRepository jobRepository, StepHandler stepHandler, JobExecution execution) -
Method Summary
Modifier and TypeMethodDescriptionvoid
Handle any status changes that might be needed at the start of a state.void
addExitStatus
(String code) void
close
(FlowExecution result) Chance to clean up resources at the end of a flow (whether it completed successfully or not).executeStep
(Step step) protected BatchStatus
findBatchStatus
(FlowExecutionStatus status) boolean
void
Handle any status changes that might be needed in theJobExecution
.
-
Field Details
-
exitStatus
-
-
Constructor Details
-
JobFlowExecutor
public JobFlowExecutor(JobRepository jobRepository, StepHandler stepHandler, JobExecution execution) - Parameters:
jobRepository
- instance ofJobRepository
.stepHandler
- instance ofStepHandler
.execution
- instance ofJobExecution
.
-
-
Method Details
-
executeStep
public String executeStep(Step step) throws JobInterruptedException, JobRestartException, StartLimitExceededException - Specified by:
executeStep
in interfaceFlowExecutor
- Parameters:
step
- aStep
to execute- Returns:
- the exit status that drives the surrounding
Flow
- Throws:
JobInterruptedException
- thrown if job was interrupted.JobRestartException
- thrown if job restart is not allowed.StartLimitExceededException
- thrown if start limit is exceeded.
-
abandonStepExecution
public void abandonStepExecution()Description copied from interface:FlowExecutor
Handle any status changes that might be needed at the start of a state.- Specified by:
abandonStepExecution
in interfaceFlowExecutor
-
updateJobExecutionStatus
Description copied from interface:FlowExecutor
Handle any status changes that might be needed in theJobExecution
.- Specified by:
updateJobExecutionStatus
in interfaceFlowExecutor
- Parameters:
status
- status to update theJobExecution
to.
-
getJobExecution
- Specified by:
getJobExecution
in interfaceFlowExecutor
- Returns:
- the current
JobExecution
-
getStepExecution
- Specified by:
getStepExecution
in interfaceFlowExecutor
- Returns:
- the latest
StepExecution
or null if there is none
-
close
Description copied from interface:FlowExecutor
Chance to clean up resources at the end of a flow (whether it completed successfully or not).- Specified by:
close
in interfaceFlowExecutor
- Parameters:
result
- the finalFlowExecution
-
isRestart
public boolean isRestart()- Specified by:
isRestart
in interfaceFlowExecutor
- Returns:
- true if the flow is at the beginning of a restart
-
addExitStatus
- Specified by:
addExitStatus
in interfaceFlowExecutor
- Parameters:
code
- the label for the exit status when a flow or sub-flow ends
-
findBatchStatus
- Parameters:
status
-FlowExecutionStatus
to convert.- Returns:
- A
BatchStatus
appropriate for theFlowExecutionStatus
provided
-