Example usage for org.springframework.batch.core.partition.support PartitionStep setPartitionHandler

List of usage examples for org.springframework.batch.core.partition.support PartitionStep setPartitionHandler

Introduction

In this page you can find the example usage for org.springframework.batch.core.partition.support PartitionStep setPartitionHandler.

Prototype

public void setPartitionHandler(PartitionHandler partitionHandler) 

Source Link

Document

A PartitionHandler which can send out step executions for remote processing and bring back the results.

Usage

From source file:org.springframework.batch.core.configuration.xml.StepParserStepFactoryBean.java

private void configurePartitionStep(PartitionStep ts) {
    Assert.state(partitioner != null, "A Partitioner must be provided for a partition step");
    configureAbstractStep(ts);// w  w  w  .j  a v  a2  s  .c o m

    if (partitionHandler != null) {
        ts.setPartitionHandler(partitionHandler);
    } else {
        TaskExecutorPartitionHandler partitionHandler = new TaskExecutorPartitionHandler();
        partitionHandler.setStep(step);
        if (taskExecutor == null) {
            taskExecutor = new SyncTaskExecutor();
        }
        partitionHandler.setGridSize(gridSize);
        partitionHandler.setTaskExecutor(taskExecutor);
        ts.setPartitionHandler(partitionHandler);
    }

    boolean allowStartIfComplete = this.allowStartIfComplete != null ? this.allowStartIfComplete : false;
    String name = this.name;
    if (step != null) {
        try {
            allowStartIfComplete = step.isAllowStartIfComplete();
            name = step.getName();
        } catch (Exception e) {
            logger.info("Ignored exception from step asking for name and allowStartIfComplete flag. "
                    + "Using default from enclosing PartitionStep (" + name + "," + allowStartIfComplete
                    + ").");
        }
    }
    SimpleStepExecutionSplitter splitter = new SimpleStepExecutionSplitter(jobRepository, allowStartIfComplete,
            name, partitioner);
    ts.setStepExecutionSplitter(splitter);
    if (stepExecutionAggregator != null) {
        ts.setStepExecutionAggregator(stepExecutionAggregator);
    }
}