From f5fcf3a6b6b77ea1cd50bafb3f3b64fb1ed2295e Mon Sep 17 00:00:00 2001 From: robokaso Date: Tue, 25 Mar 2008 17:02:28 +0000 Subject: [PATCH] fixed build - lesson learned: samples don't cleanup output files themselves, so they need to be cleaned before each run (otherwise the output file already exists even when the job did nothing). CompositeItemWriter wasn't delegating flush and clear calls, only write. --- .../item/support/CompositeItemWriter.java | 19 ++++++++-- .../jobs/compositeProcessorSampleJob.xml | 38 +++++++++++-------- 2 files changed, 38 insertions(+), 19 deletions(-) diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/CompositeItemWriter.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/CompositeItemWriter.java index 1c0b1298c..cedbffae6 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/CompositeItemWriter.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/support/CompositeItemWriter.java @@ -3,15 +3,16 @@ package org.springframework.batch.item.support; import java.util.Iterator; import java.util.List; -import org.springframework.batch.item.AbstractItemWriter; +import org.springframework.batch.item.ClearFailedException; +import org.springframework.batch.item.FlushFailedException; import org.springframework.batch.item.ItemWriter; /** - * Runs a collection of ItemProcessors in fixed-order sequence. + * Calls a collection of ItemWriters in fixed-order sequence. * * @author Robert Kasanicky */ -public class CompositeItemWriter extends AbstractItemWriter { +public class CompositeItemWriter implements ItemWriter { private List delegates; @@ -28,4 +29,16 @@ public class CompositeItemWriter extends AbstractItemWriter { } } + public void clear() throws ClearFailedException { + for (Iterator iterator = delegates.listIterator(); iterator.hasNext();) { + ((ItemWriter) iterator.next()).clear(); + } + } + + public void flush() throws FlushFailedException { + for (Iterator iterator = delegates.listIterator(); iterator.hasNext();) { + ((ItemWriter) iterator.next()).flush(); + } + } + } diff --git a/spring-batch-samples/src/main/resources/jobs/compositeProcessorSampleJob.xml b/spring-batch-samples/src/main/resources/jobs/compositeProcessorSampleJob.xml index 319627056..ad988911d 100644 --- a/spring-batch-samples/src/main/resources/jobs/compositeProcessorSampleJob.xml +++ b/spring-batch-samples/src/main/resources/jobs/compositeProcessorSampleJob.xml @@ -12,7 +12,12 @@ - + + + + + + @@ -21,26 +26,26 @@ - - - - - - - - - - - - + + + + + + + + + + + + - +