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:
robokaso
2008-06-13 09:34:10 +00:00
parent d4a1e23b7e
commit 567fc74779
4 changed files with 15 additions and 19 deletions

View File

@@ -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];

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);