I am new to Spring Batch and hope someone can help me.
I have a simple job with three steps. The first steps does something with a file using a tasklet and then writes it back with a different name/extenstion. Step 2 is a chunk related reader/writer step that picks up this file, reads it with a multiresourceitemreader (so that I could use wildcards) and writes it to a database. Step 3 renames this file.
At first my job was implemented with step 2 only - works great. I then added the rename step - works fine. Then lastly I added step one...this is where the trouble starts. Step 1 on its own works...I can see the file being written back with the different extention. But step 2 now gives me a warning that there is no resources to be read. If then I comment out my tasklet code for step 1 (so the changed filename is still in the folder) and run the job again...then it does pick it up. So it almost seems as if Step 2 tries to find the file before it is written? Is this possible? Am I understanding batch correctly that one step has to complete before the next one start (in the way I wired it up?) Any ideas of what I can try to solve this?
Some code samples below.
<job id="SpringJobBean.RPDataJob" job-repository="jobRepository">
<step id="step1" next="step2">
<step id="step2" next="step3">
<beans:bean id="changeFileTasklet" class="com.ChangeFileTasklet">
<beans:property name="filePathName" value="D:/DataExtractSampleFiles/"/>
<beans:bean id="renameFilesTasklet" class="com.RenameFilesTasklet">
<beans:property name="fileName" value="_TEST.txt"/>
<beans:bean id="MultiResourceItemReader.RPDataJob" class="org.springframework.batch.item.file.MultiResourceItemReader">
<beans:property name="resources" value="file:D:/DataExtractSampleFiles/*_TEST.txt"/>
<beans:property name="delegate" ref="ItemReader.RPataJob">