Skip to content

v6.0.0-M1

Pre-release
Pre-release
Compare
Choose a tag to compare
@fmbenhassine fmbenhassine released this 23 Jul 14:04
· 3 commits to main since this release
817a997

This is the first milestone of Spring Batch 6.0, which is a major release that comes with several new features, enhancements, and bug fixes. Moreover, this release introduces a number of API breaking changes and deprecations. Please refer to the migration guide for the full list of changes.

⭐ New features

  • Introduce a modern command line batch operator #4899
  • Add ability to use bean names for jobs and steps #4858
  • Make MapJobRegistry smart enough to auto register jobs defined in the application context #4855
  • Make MessageChannelPartitionHandler usable with any job repository implementations #4917
  • Add optimistic locking for meta-data deletion #4793

🚀 Enhancements

  • Improve experience when configuring an alternative JobRepository #4718
  • Improve performance of JdbcStepExecutionDao::getStepExecution #4799
  • Improve update sql for optimistic locking #4792
  • Improve JobOperator API by using domain types instead of primitive types #4845
  • Improve JobOperator by reducing its scope to job operations only #4833
  • Core API simplification #4847
  • Move core APIs in dedicated packages #4877
  • Move listener APIs under core.listener package #4867
  • Move core.explore package under core.repository #4827
  • Move core partitioning APIs under org.springframework.batch.core.partition #4849
  • Move DAOs implementations to separate packages #4848
  • Remove unnecessary generic from JobKeyGenerator interface #4886
  • Remove usage of JobFactory in `JobRegistry`` #4854
  • Remove dependency to JobExplorer in SimpleJobOperator #4817
  • Remove JobExplorer bean registration from the default batch configuration #4825
  • Remove unnecessary reflection in RemoteChunkHandlerFactoryBean #4839
  • Rename SimpleJobOperator to TaskExecutorJobOperator #4834
  • Rename JobRepositoryFactoryBean to JdbcJobRepositoryFactoryBean #4829
  • FlatFileItemReaderBuilder : raise check exception on build #4757
  • Make JobOperator extend JobLauncher #4832
  • Make JobRepository extend JobExplorer #4824
  • Redundant methods in JobExplorer/JobInstanceDao APIs #4821
  • Introduce ErrorProne, fix compiler warnings #4807
  • Add Redis integration tests #4892
  • Fail test if no exception is thrown in testErrorMessageWhenNoLineTokenizerWasProvided #4883
  • Refactor AOT proxy hints for better type safety #4881
  • Refactor ExitStatus#isRunning for type-safety #4783
  • Mark argument to ExitStatus#equals as nullable #4823
  • Use typesafe variant of ctx::getBean instead #4803
  • Use jdbcTemplate.queryForStream().findFirst() where appropriate #4802
  • Reuse existing SQL where feasible #4801

🐞 Bug fixes

  • Incorrect warning when starting a job with an empty parameters set #4914
  • Incorrect handling of job parameters when using a JobParametersIncrementer #4910
  • Write Skip Count Not Updated in Chunk Processing #4514

📔 Documentation

  • Polish code block style and fix typo in whatsnew.adoc #4901
  • Fix javadoc in JdbcCursorItemReaderBuilder #4838
  • Correct comment in RemoteChunkingJobFunctionalTests #4822

🔨 Tasks

  • Replace usage of JobExplorer with JobRepository in RemoteStepExecutionAggregator #4928
  • Replace usage of JobExplorer with JobRepository in SystemCommandTasklet #4927
  • Replace usage of JobLauncher with JobOperator in JobLaunchingGateway and JobLaunchingMessageHandler #4924
  • Replace usage of JobLauncher with JobOperator in JobStep #4923
  • Replace usage of JobExplorer with JobRepository in StepExecutionRequestHandler #4918
  • Rename JobLauncherTestUtils to JobOperatorTestUtils #4920
  • Rename JobExplorerFactoryBean to JdbcJobExplorerFactoryBean #4846
  • Deprecate StepRunner #4921
  • Deprecate modular job configuration through EnableBatchProcessing #4866
  • Remove usage of JobExplorer in BatchIntegrationConfiguration #4919
  • Remove deprecated APIs scheduled for removal in v6 #4819
  • Update GraalVM runtime hints #4844

🆙 Dependency Upgrades

  • Spring Framework: 7.0.0-M7
  • Spring Integration: 7.0.0-M1
  • Spring AMQP: 4.0.0-M3
  • Spring Kafka: 4.0.0-M3
  • Spring Data: 4.0.0-M4
  • Spring Ldap: 4.0.0-M1
  • Spring Retry: 2.0.12
  • Micrometer: 1.16.0-M1

❤️ Contributors

Thank you to all the contributors who worked on this release:

@darth-raijin, @itis821, @jbotuck, @martinfrancois, @noojung, @patrickwinti, @quaff, @scordio, @sieunie, @sjiwon, and @therepanic


Full change log: v5.2.2...v6.0.0-M1