Updating Spring Batch jobs from 1.0.0.m3 to 1.0.0.m4 framework

This is a description of what needed to be done to migrate the samples from m3 to the m4 release.

if you use SpringIDE, make sure it tracks all your configuration files, so that errors are immediately visible.


  • ItemProviderTasklet and RestartableItemProviderTasklet have been replaced with ItemOrientedTasklet
  • ItemProvider/ItemProcessor pair is now ItemReader/ItemWriter
  • InputSource and ItemProvider interfaces have been merged into ItemReader (ItemReaders can be composite when desired)
  • OutputSource and ItemProcessor interfaces have been merged into ItemWriter (ItemTransformerItemWriter and CompositeItemTransformer provide support for item transformations before writing to output)
  • JobConfiguration and Step Configuration are now called simply Job and Step. There is no JobExecutor or StepExecutor.


  • JobIdentifier is replaced by JobParameters
  • JobLauncher#run(Job, JobParameters) now returns JobExecution which has methods stop() and isRunnig() (previously part of JobLauncher)
  • Hibernate repository (JobDao and StepDao) has been removed
  • JobExecutor and StepExecutor are no longer explicitly declared (Job and Step execute themselves)


  • Remember to update the database schema
  • Several moves and package renames easily fixed by IDE refactoring support ('organize imports' in Eclipse)
  • FieldSet is now an interface with DefaultFieldSet as provided implementation
  • ResourceLifecycle and Restartable interfaces have been removed, ItemStream now covers their responsibilities
  • StatisticsProvider interface has been superceded by ExecutionAttributesProvider
  • BatchTransationSynchronizationManager has been removed. Use the regular TransactionSynchronizationManager if you need to register a synchronization.