|
6 | 6 |
|
7 | 7 | == What's New in Spring Batch 5.0
|
8 | 8 |
|
9 |
| -TDB |
| 9 | +Spring Batch 5.0 release has the following major themes: |
| 10 | + |
| 11 | +* Java 17 Requirement |
| 12 | +* Dependencies Re-baseline |
| 13 | +* Batch infrastructure configuration updates |
| 14 | +* Pruning |
| 15 | + |
| 16 | +=== Java 17 Requirement |
| 17 | + |
| 18 | +Spring Batch follows Spring Framework's baselines for both Java version and third party dependencies. |
| 19 | +With Spring Batch 5, the Spring Framework version is being upgraded to Spring Framework 6 which requires Java 17. |
| 20 | +As a result, the Java version requirement for Spring Batch is also increasing to Java 17. |
| 21 | + |
| 22 | +=== Dependencies Re-baseline |
| 23 | + |
| 24 | +In order to continue the integration with supported versions of the third party libraries that Spring Batch uses, |
| 25 | +Spring Batch 5 is updating the dependencies across the board to the following versions: |
| 26 | + |
| 27 | +* Spring Framework 6 |
| 28 | +* Spring Integration 6 |
| 29 | +* Spring Data 3 |
| 30 | +* Spring AMQP 3 |
| 31 | +* Spring for Apache Kafka 3 |
| 32 | + |
| 33 | +=== Batch infrastructure configuration updates |
| 34 | + |
| 35 | +==== DataSource requirement updates |
| 36 | + |
| 37 | +Historically, Spring Batch provided a Map-based job repository and job explorer implementations to work with |
| 38 | +an in-memory job repository. These implementations were deprecated in version 4 and completely removed in version 5. |
| 39 | +The recommended replacement is to use the Jdbc-based implementations with an embedded database like H2, HSQL, etc. |
| 40 | + |
| 41 | +In this release, the `@EnableBatchProcessing` annotation will configure a Jdbc-based `JobRepository` which requires a |
| 42 | +`DataSource` bean in the application context. The `DataSource` bean could refer to an embedded database to work with |
| 43 | +an in-memory job repository. |
| 44 | + |
| 45 | +==== Transaction manager bean exposure |
| 46 | + |
| 47 | +Up until version 4.3, the `@EnableBatchProcessing` annotation exposed a tranasaction manager bean in the application |
| 48 | +context. While this was convenient in many cases, the unconditional exposure of a tranasaction manager could |
| 49 | +interfere with a user-defined transaction manager. In this release, `@EnableBatchProcessing` does not expose a |
| 50 | +transaction manager bean in the application context anymore. |
| 51 | + |
| 52 | +=== Pruning |
| 53 | + |
| 54 | +==== Deprecated APIs removal |
| 55 | + |
| 56 | +The following APIs were deprecated in previous versions and have been removed in this release: |
| 57 | + |
| 58 | +* Class `org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean` |
| 59 | +* Class `org.springframework.batch.core.repository.dao.MapExecutionContextDao` |
| 60 | +* Class `org.springframework.batch.core.repository.dao.MapJobExecutionDao` |
| 61 | +* Class `org.springframework.batch.core.repository.dao.MapJobInstanceDao` |
| 62 | +* Class `org.springframework.batch.core.repository.dao.MapStepExecutionDao` |
| 63 | +* Class `org.springframework.batch.core.explore.support.MapJobExplorerFactoryBean` |
| 64 | +* Class `org.springframework.batch.core.repository.dao.XStreamExecutionContextStringSerializer` |
| 65 | +* Class `org.springframework.batch.core.configuration.support.ClassPathXmlJobRegistry` |
| 66 | +* Class `org.springframework.batch.core.configuration.support.ClassPathXmlApplicationContextFactory` |
| 67 | +* Class `org.springframework.batch.core.launch.support.ScheduledJobParametersFactory` |
| 68 | +* Class `org.springframework.batch.item.data.AbstractNeo4jItemReader` |
| 69 | +* Class `org.springframework.batch.item.database.support.ListPreparedStatementSetter` |
| 70 | +* Class `org.springframework.batch.integration.chunk.RemoteChunkingMasterStepBuilder` |
| 71 | +* Class `org.springframework.batch.integration.chunk.RemoteChunkingMasterStepBuilderFactory` |
| 72 | +* Class `org.springframework.batch.integration.partition.RemotePartitioningMasterStepBuilder` |
| 73 | +* Class `org.springframework.batch.integration.partition.RemotePartitioningMasterStepBuilderFactory` |
| 74 | +* Class `org.springframework.batch.test.AbstractJobTests` |
| 75 | +* Class `org.springframework.batch.item.xml.StaxUtils` |
| 76 | +* Enum `org.springframework.batch.item.file.transform.Alignment` |
| 77 | +* Method `org.springframework.batch.core.JobExecution#stop()` |
| 78 | +* Method `org.springframework.batch.core.JobParameters#getDouble(String key, double defaultValue)` |
| 79 | +* Method `org.springframework.batch.core.JobParameters#getLong(String key, long defaultValue)` |
| 80 | +* Method `org.springframework.batch.core.partition.support.SimpleStepExecutionSplitter(JobRepository jobRepository, Step step, Partitioner partitioner)` |
| 81 | +* Method `org.springframework.batch.core.partition.support.SimpleStepExecutionSplitter#getStartable(StepExecution stepExecution, ExecutionContext context)` |
| 82 | +* Method `org.springframework.batch.core.repository.support.AbstractJobRepositoryFactoryBean#getJobRepository()` |
| 83 | +* Method `org.springframework.batch.item.database.AbstractCursorItemReader#cleanupOnClose()` |
| 84 | +* Method `org.springframework.batch.item.database.HibernateItemWriter#doWrite(HibernateOperations hibernateTemplate, List<? extends T> items)` |
| 85 | +* Method `org.springframework.batch.item.database.JdbcCursorItemReader#cleanupOnClose()` |
| 86 | +* Method `org.springframework.batch.item.database.StoredProcedureItemReader#cleanupOnClose()` |
| 87 | +* Method `org.springframework.batch.item.database.builder.HibernatePagingItemReaderBuilder#useSatelessSession(boolean useStatelessSession)` |
| 88 | +* Method `org.springframework.batch.item.file.MultiResourceItemReader#getCurrentResource()` |
| 89 | +* Method `org.springframework.batch.integration.config.annotation.BatchIntegrationConfiguration#remoteChunkingMasterStepBuilderFactory()` |
| 90 | +* Method `org.springframework.batch.integration.config.annotation.BatchIntegrationConfiguration#remotePartitioningMasterStepBuilderFactory()` |
| 91 | +* Method `org.springframework.batch.item.util.FileUtils#setUpOutputFile(File file, boolean restarted, boolean overwriteOutputFile)` |
| 92 | + |
| 93 | +==== SQLFire support removal |
| 94 | + |
| 95 | +SqlFire has been announced to be EOL as of November 1st, 2014. The support of SQLFire as a job repository |
| 96 | +was deprecated in version 4.3 and removed in version 5.0. |
| 97 | + |
| 98 | +==== JSR-352 implementation removal |
| 99 | + |
| 100 | +Due to a lack of adoption, the implementation of the JSR-352 has been removed in this release. |
0 commit comments