Class AbstractPartitionHandler
- java.lang.Object
- org.springframework.batch.core.partition.support.AbstractPartitionHandler
- All Implemented Interfaces:
PartitionHandler
- Direct Known Subclasses:
TaskExecutorPartitionHandler
public abstract class AbstractPartitionHandler extends java.lang.Object implements PartitionHandler
BasePartitionHandler
implementation providing common base features. Subclasses are expected to implement only thedoHandle(org.springframework.batch.core.StepExecution, java.util.Set)
method which returns with the result of the execution(s) or an exception if the step failed to process.- Author:
- Sebastien Gerard, Dave Syer
Constructor Summary
Constructors Constructor Description AbstractPartitionHandler()
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract java.util.Set<StepExecution>
doHandle(StepExecution masterStepExecution, java.util.Set<StepExecution> partitionStepExecutions)
Executes the specifiedStepExecution
instances and returns an updated view of them.int
getGridSize()
Returns the number of step executions.java.util.Collection<StepExecution>
handle(StepExecutionSplitter stepSplitter, StepExecution masterStepExecution)
Main entry point forPartitionHandler
interface.void
setGridSize(int gridSize)
Passed to theStepExecutionSplitter
in thehandle(StepExecutionSplitter, StepExecution)
method, instructing it how manyStepExecution
instances are required, ideally.
Method Detail
doHandle
protected abstract java.util.Set<StepExecution> doHandle(StepExecution masterStepExecution, java.util.Set<StepExecution> partitionStepExecutions) throws java.lang.Exception
Executes the specifiedStepExecution
instances and returns an updated view of them. Throws anException
if anything goes wrong.- Parameters:
masterStepExecution
- the whole partition executionpartitionStepExecutions
- theStepExecution
instances to execute- Returns:
- an updated view of these completed
StepExecution
instances - Throws:
java.lang.Exception
- if anything goes wrong. This allows implementations to be liberal and rely on the caller to translate an exception into a step failure as necessary.
handle
public java.util.Collection<StepExecution> handle(StepExecutionSplitter stepSplitter, StepExecution masterStepExecution) throws java.lang.Exception
Description copied from interface:PartitionHandler
Main entry point forPartitionHandler
interface. The splitter creates all the executions that need to be farmed out, along with their input parameters (in the form of theirExecutionContext
). The master step execution is used to identify the partition and group together the results logically.- Specified by:
handle
in interfacePartitionHandler
- Parameters:
stepSplitter
- a strategy for generating a collection ofStepExecution
instancesmasterStepExecution
- the master step execution for the whole partition- Returns:
- a collection of completed
StepExecution
instances - Throws:
java.lang.Exception
- if anything goes wrong. This allows implementations to be liberal and rely on the caller to translate an exception into a step failure as necessary.- See Also:
PartitionHandler.handle(StepExecutionSplitter, StepExecution)
getGridSize
public int getGridSize()
Returns the number of step executions.- Returns:
- the number of step executions
setGridSize
public void setGridSize(int gridSize)
Passed to theStepExecutionSplitter
in thehandle(StepExecutionSplitter, StepExecution)
method, instructing it how manyStepExecution
instances are required, ideally. TheStepExecutionSplitter
is allowed to ignore the grid size in the case of a restart, since the input data partitions must be preserved.- Parameters:
gridSize
- the number of step executions that will be created