compositeItemWriterSampleJob works because it
1. writes to a file
2. insert data to database.
But the problem is with writing to two file.
I am giving different file names so there is no confusion with the file name. As I said , I tried with the spring-batch-dist-2.0.0.M1 and earlier version and it is working fine. But with spring-batch-dist-2.0.0.M2 and spring-batch-dist-2.0.0.M3 there is a problem.
The configuration is below
Regestring the stream
Code:
<bean id="compositeItemWriterJob" parent="simpleJob">
<property name="steps">
<bean id="step1" parent="simpleStep">
<property name="streams">
<list>
<ref bean="fileItemReader" />
<ref bean="fileItemWriter" />
<ref bean="fileItemWriter1" />
</list>
</property>
<property name="itemReader" ref="fileItemReader" />
<property name="itemProcessor">
<bean class="org.springframework.batch.item.validator.ValidatingItemProcessor">
<constructor-arg ref="fixedValidator" />
</bean>
</property>
<property name="itemWriter" ref="compositeWriter" />
</bean>
</property>
</bean>
defining composite writer
Code:
<bean id="compositeWriter"
class="org.springframework.batch.item.support.CompositeItemWriter">
<property name="delegates">
<list>
<bean
class="org.springframework.batch.sample.domain.trade.internal.TradeWriter">
<property name="dao" ref="tradeDao" />
</bean>
<ref bean="fileItemWriter" />
<ref bean="fileItemWriter1" />
</list>
</property>
</bean>
defining the beans
Code:
<bean class="org.springframework.batch.item.file.FlatFileItemWriter"
id="fileItemWriter">
<property name="resource"
value="file:target/test.TEMP.txt" />
<property name="lineAggregator">
<bean
class="org.springframework.batch.item.file.transform.PassThroughLineAggregator" />
</property>
</bean>
<bean class="org.springframework.batch.item.file.FlatFileItemWriter"
id="fileItemWriter1">
<property name="resource"
value="file:target/test-outputs/test.TEMP1.txt" />
<property name="lineAggregator">
<bean
class="org.springframework.batch.item.file.transform.PassThroughLineAggregator" />
</property>
</bean>