From d4a1e23b7e2663eed9e50d574a3d3f8da4cd8537 Mon Sep 17 00:00:00 2001 From: robokaso Date: Fri, 13 Jun 2008 09:10:21 +0000 Subject: [PATCH] IN PROGRESS - BATCH-666: consolidate duplications in SimpleStepFactoryBean and RepeatOperationsStepFactoryBean pulled up reader & writer registration --- .../step/item/AbstractStepFactoryBean.java | 20 ++++++++++++++++++ .../item/RepeatOperationsStepFactoryBean.java | 21 +------------------ .../core/step/item/SimpleStepFactoryBean.java | 17 --------------- 3 files changed, 21 insertions(+), 37 deletions(-) diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/AbstractStepFactoryBean.java b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/AbstractStepFactoryBean.java index b4b21d4c3..f9dd02b07 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/AbstractStepFactoryBean.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/step/item/AbstractStepFactoryBean.java @@ -16,6 +16,7 @@ package org.springframework.batch.core.step.item; import org.springframework.batch.core.Step; +import org.springframework.batch.core.StepExecutionListener; import org.springframework.batch.core.repository.JobRepository; import org.springframework.batch.item.ItemReader; import org.springframework.batch.item.ItemStream; @@ -187,6 +188,25 @@ public abstract class AbstractStepFactoryBean implements FactoryBean, BeanNameAw step.setAllowStartIfComplete(allowStartIfComplete); step.setStreams(streams); + + ItemReader itemReader = getItemReader(); + ItemWriter itemWriter = getItemWriter(); + + // Since we are going to wrap these things with listener callbacks we + // need to register them here because the step will not know we did + // that. + if (itemReader instanceof ItemStream) { + step.registerStream((ItemStream) itemReader); + } + if (itemReader instanceof StepExecutionListener) { + step.registerStepExecutionListener((StepExecutionListener) itemReader); + } + if (itemWriter instanceof ItemStream) { + step.registerStream((ItemStream) itemWriter); + } + if (itemWriter instanceof StepExecutionListener) { + step.registerStepExecutionListener((StepExecutionListener) itemWriter); + } } 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 399ed3e80..b5e3b970f 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 @@ -15,11 +15,10 @@ */ package org.springframework.batch.core.step.item; -import org.springframework.batch.core.StepListener; import org.springframework.batch.core.Step; import org.springframework.batch.core.StepExecutionListener; +import org.springframework.batch.core.StepListener; import org.springframework.batch.item.ItemReader; -import org.springframework.batch.item.ItemStream; import org.springframework.batch.item.ItemWriter; import org.springframework.batch.repeat.RepeatOperations; import org.springframework.batch.repeat.support.RepeatTemplate; @@ -85,24 +84,6 @@ public class RepeatOperationsStepFactoryBean extends AbstractStepFactoryBean { ItemReader itemReader = getItemReader(); ItemWriter itemWriter = getItemWriter(); - /* - * Since we are going to wrap these things with listener callbacks we - * need to register them here because the step will not know we did - * that. - */ - if (itemReader instanceof ItemStream) { - step.registerStream((ItemStream) itemReader); - } - if (itemReader instanceof StepExecutionListener) { - step.registerStepExecutionListener((StepExecutionListener) itemReader); - } - if (itemWriter instanceof ItemStream) { - step.registerStream((ItemStream) itemWriter); - } - if (itemWriter instanceof StepExecutionListener) { - step.registerStepExecutionListener((StepExecutionListener) itemWriter); - } - BatchListenerFactoryHelper helper = new BatchListenerFactoryHelper(); StepExecutionListener[] stepListeners = helper.getStepListeners(listeners); 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 77adf372e..fc3cbd577 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 @@ -21,7 +21,6 @@ import org.springframework.batch.core.Step; import org.springframework.batch.core.StepExecutionListener; import org.springframework.batch.core.StepListener; import org.springframework.batch.item.ItemReader; -import org.springframework.batch.item.ItemStream; import org.springframework.batch.item.ItemWriter; import org.springframework.batch.repeat.CompletionPolicy; import org.springframework.batch.repeat.exception.DefaultExceptionHandler; @@ -178,22 +177,6 @@ public class SimpleStepFactoryBean extends AbstractStepFactoryBean { ItemReader itemReader = getItemReader(); ItemWriter itemWriter = getItemWriter(); - // Since we are going to wrap these things with listener callbacks we - // need to register them here because the step will not know we did - // that. - if (itemReader instanceof ItemStream) { - step.registerStream((ItemStream) itemReader); - } - if (itemReader instanceof StepExecutionListener) { - step.registerStepExecutionListener((StepExecutionListener) itemReader); - } - if (itemWriter instanceof ItemStream) { - step.registerStream((ItemStream) itemWriter); - } - if (itemWriter instanceof StepExecutionListener) { - step.registerStepExecutionListener((StepExecutionListener) itemWriter); - } - BatchListenerFactoryHelper helper = new BatchListenerFactoryHelper(); chunkOperations = new RepeatTemplate();