diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/BatchListenerFactoryHelper.java b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/BatchListenerFactoryHelper.java index 508e89154..82205715f 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/BatchListenerFactoryHelper.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/BatchListenerFactoryHelper.java @@ -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]; diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/RepeatOperationsStepFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/RepeatOperationsStepFactoryBean.java index b5e3b970f..660076ab0 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/RepeatOperationsStepFactoryBean.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/RepeatOperationsStepFactoryBean.java @@ -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); diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SimpleStepFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SimpleStepFactoryBean.java index fc3cbd577..6ae5d611a 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SimpleStepFactoryBean.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SimpleStepFactoryBean.java @@ -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); diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SkipLimitStepFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SkipLimitStepFactoryBean.java index 9181ecbee..de31e0c70 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SkipLimitStepFactoryBean.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/SkipLimitStepFactoryBean.java @@ -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);