contents


foreword
preface
acknowledgments
about this book
about the cover illustration

Part 1 Background

1 Introducing Spring Batch
1.1 What are batch applications?
1.2 Meet Spring Batch
1.3 Introducing the case study
1.4 Reading and writing the product data
1.5 Decompressing the input file with a tasklet
1.6 Testing the batch process
1.7 Skipping incorrect lines instead of failing
1.8 Summary
2 Spring Batch concepts
2.1 The batch domain language
2.2 The Spring Batch infrastructure
2.3 Anatomy of a job
2.4 Summary

Part 2 Core Spring Batch

3 Batch configuration
3.1 The Spring Batch XML vocabulary
3.2 Configuring jobs and steps
3.3 Configuring the job repository
3.4 Advanced configuration topics
3.5 Summary
4 Running batch jobs
4.1 Launching concepts
4.2 Launching from the command line
4.3 Job schedulers
4.4 Launching from a web application
4.6 Stopping jobs gracefully
4.7 Summary
5 Reading data
5.1 Data reading concepts
5.2 Reading flat files
5.3 Reading XML files
5.4 Reading file sets
5.5 Reading from relational databases
5.6 Using other input sources
5.7 Implementing custom readers
5.8 Summary
6 Writing data
6.1 Data-writing concepts
6.2 Writing files
6.3 Writing to databases
6.4 Adapting existing services for reuse
6.5 Writing to JMS
6.6 Sending email messages
6.7 Implementing custom item writers
6.8 Advanced writing techniques
6.9 Summary
7 Processing data
7.1 Processing items
7.2 Transforming items
7.3 Filtering and validating items
7.4 Chaining item processors
7.5 Summary
8 Implementing bulletproof jobs
8.1 What is a bulletproof job?
8.2 Skipping instead of failing
8.3 Retrying on error
8.4 Restart on error
8.5 Summary
9 Transaction management
9.1 A transaction primer
9.2 Transaction management in Spring Batch components
9.3 Transaction configuration
9.4 Transaction management patterns
9.5 Summary

Part 3 Advanced Spring Batch

10 Controlling execution
10.1 A complex flow in the online store application
10.2 Driving the flow of a job
10.3 Sharing data between steps
10.4 Externalizing flow definitions
10.5 Stopping a job execution
10.6 Summary
11 Enterprise integration
11.1 What is enterprise integration?
11.2 Spring Batch and enterprise integration
11.3 Spring Integration, a toolbox for enterprise integration
11.4 RESTful job submission with Spring MVC
11.5 Triggering jobs from file system events
11.6 RESTful job monitoring with Spring MVC
11.7 Summary
12 Monitoring jobs
12.1 Introducing monitoring
12.2 Accessing batch execution data
12.3 Monitoring with listeners
12.4 Web monitoring with Spring Batch Admin
12.5 Monitoring with JMX
12.6 Summary
13 Scaling and parallel processing
13.1 Scaling concepts
13.2 Multithreaded steps
13.3 Parallelizing processing (single machine)
13.4 Remote chunking (multiple machines)
13.5 Fine-grained scaling with partitioning
13.6 Comparing patterns
13.7 Summary
14 Testing batch applications
14.1 The what and why of testing
14.2 Unit testing
14.3 Integration testing
14.4 Functional testing
14.5 Summary

 
appendix A Setting up the development environment
appendix B Managing Spring Batch Admin
index