IN PROGRESS - BATCH-666: consolidate duplications in SimpleStepFactoryBean and RepeatOperationsStepFactoryBean
BatchListenerFactoryHelper refactored as utility class - methods declared static and the class abstract
This commit is contained in:
@@ -43,13 +43,13 @@ import org.springframework.util.Assert;
|
||||
* @author Dave Syer
|
||||
*
|
||||
*/
|
||||
class BatchListenerFactoryHelper {
|
||||
abstract class BatchListenerFactoryHelper {
|
||||
|
||||
/**
|
||||
* @param itemReader
|
||||
* @param listeners
|
||||
*/
|
||||
public ItemReader getItemReader(ItemReader itemReader, StepListener[] listeners) {
|
||||
public static ItemReader getItemReader(ItemReader itemReader, StepListener[] listeners) {
|
||||
|
||||
final CompositeItemReadListener multicaster = new CompositeItemReadListener();
|
||||
|
||||
@@ -82,7 +82,7 @@ class BatchListenerFactoryHelper {
|
||||
* @param itemWriter
|
||||
* @param listeners
|
||||
*/
|
||||
public ItemWriter getItemWriter(ItemWriter itemWriter, StepListener[] listeners) {
|
||||
public static ItemWriter getItemWriter(ItemWriter itemWriter, StepListener[] listeners) {
|
||||
final CompositeItemWriteListener multicaster = new CompositeItemWriteListener();
|
||||
|
||||
for (int i = 0; i < listeners.length; i++) {
|
||||
@@ -114,7 +114,7 @@ class BatchListenerFactoryHelper {
|
||||
* @param chunkOperations
|
||||
* @param listeners
|
||||
*/
|
||||
public RepeatOperations addChunkListeners(RepeatOperations chunkOperations, StepListener[] listeners) {
|
||||
public static RepeatOperations addChunkListeners(RepeatOperations chunkOperations, StepListener[] listeners) {
|
||||
|
||||
final CompositeChunkListener multicaster = new CompositeChunkListener();
|
||||
|
||||
@@ -155,7 +155,7 @@ class BatchListenerFactoryHelper {
|
||||
/**
|
||||
* @param listeners
|
||||
*/
|
||||
public StepExecutionListener[] getStepListeners(StepListener[] listeners) {
|
||||
public static StepExecutionListener[] getStepListeners(StepListener[] listeners) {
|
||||
List list = new ArrayList();
|
||||
for (int i = 0; i < listeners.length; i++) {
|
||||
StepListener listener = listeners[i];
|
||||
@@ -169,7 +169,7 @@ class BatchListenerFactoryHelper {
|
||||
/**
|
||||
* @param listeners
|
||||
*/
|
||||
public SkipListener[] getSkipListeners(StepListener[] listeners) {
|
||||
public static SkipListener[] getSkipListeners(StepListener[] listeners) {
|
||||
List list = new ArrayList();
|
||||
for (int i = 0; i < listeners.length; i++) {
|
||||
StepListener listener = listeners[i];
|
||||
|
||||
@@ -84,12 +84,10 @@ public class RepeatOperationsStepFactoryBean extends AbstractStepFactoryBean {
|
||||
ItemReader itemReader = getItemReader();
|
||||
ItemWriter itemWriter = getItemWriter();
|
||||
|
||||
BatchListenerFactoryHelper helper = new BatchListenerFactoryHelper();
|
||||
|
||||
StepExecutionListener[] stepListeners = helper.getStepListeners(listeners);
|
||||
itemReader = helper.getItemReader(itemReader, listeners);
|
||||
itemWriter = helper.getItemWriter(itemWriter, listeners);
|
||||
RepeatOperations chunkOperations = helper.addChunkListeners(this.chunkOperations, listeners);
|
||||
StepExecutionListener[] stepListeners = BatchListenerFactoryHelper.getStepListeners(listeners);
|
||||
itemReader = BatchListenerFactoryHelper.getItemReader(itemReader, listeners);
|
||||
itemWriter = BatchListenerFactoryHelper.getItemWriter(itemWriter, listeners);
|
||||
RepeatOperations chunkOperations = BatchListenerFactoryHelper.addChunkListeners(this.chunkOperations, listeners);
|
||||
|
||||
// In case they are used by subclasses:
|
||||
setItemReader(itemReader);
|
||||
|
||||
@@ -177,16 +177,14 @@ public class SimpleStepFactoryBean extends AbstractStepFactoryBean {
|
||||
ItemReader itemReader = getItemReader();
|
||||
ItemWriter itemWriter = getItemWriter();
|
||||
|
||||
BatchListenerFactoryHelper helper = new BatchListenerFactoryHelper();
|
||||
|
||||
chunkOperations = new RepeatTemplate();
|
||||
chunkOperations.setCompletionPolicy(getChunkCompletionPolicy());
|
||||
helper.addChunkListeners(chunkOperations, listeners);
|
||||
BatchListenerFactoryHelper.addChunkListeners(chunkOperations, listeners);
|
||||
step.setChunkOperations(chunkOperations);
|
||||
|
||||
StepExecutionListener[] stepListeners = helper.getStepListeners(listeners);
|
||||
itemReader = helper.getItemReader(itemReader, listeners);
|
||||
itemWriter = helper.getItemWriter(itemWriter, listeners);
|
||||
StepExecutionListener[] stepListeners = BatchListenerFactoryHelper.getStepListeners(listeners);
|
||||
itemReader = BatchListenerFactoryHelper.getItemReader(itemReader, listeners);
|
||||
itemWriter = BatchListenerFactoryHelper.getItemWriter(itemWriter, listeners);
|
||||
|
||||
// In case they are used by subclasses:
|
||||
setItemReader(itemReader);
|
||||
|
||||
@@ -241,7 +241,7 @@ public class SkipLimitStepFactoryBean extends SimpleStepFactoryBean {
|
||||
.asList(fatalExceptionClasses));
|
||||
StatefulRetryItemHandler itemHandler = new StatefulRetryItemHandler(getItemReader(), getItemWriter(),
|
||||
retryTemplate, itemKeyGenerator, readSkipPolicy, writeSkipPolicy);
|
||||
itemHandler.setSkipListeners(new BatchListenerFactoryHelper().getSkipListeners(getListeners()));
|
||||
itemHandler.setSkipListeners(BatchListenerFactoryHelper.getSkipListeners(getListeners()));
|
||||
|
||||
step.setItemHandler(itemHandler);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user