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.
- Tip:
- if you use SpringIDE, make sure it tracks all your configuration files, so that errors are immediately visible.
JOB CONFIGURATION
- 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.
CONTAINER CONFIGURATION
- 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)
VARIOUS
- 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.