22:toc: left
33:toclevels: 4
44
5+ This section shows the major highlights of Spring Batch 5 and is not an exhaustive list of changes.
6+ For more details,
7+ please refer to the link:$$https://github.com/spring-projects/spring-batch/wiki/Spring-Batch-5.0-Migration-Guide$$[migration guide].
8+
59[[whatsNew]]
610== What's New in Spring Batch 5.0
711
@@ -13,9 +17,6 @@ Spring Batch 5.0 has the following major themes:
1317* New features
1418* Pruning
1519
16- For more details about the changes,
17- see the link:$$https://github.com/spring-projects/spring-batch/wiki/Spring-Batch-5.0-Migration-Guide$$[migration guide].
18-
1920=== Java 17 Requirement
2021
2122Spring Batch follows Spring Framework's baselines for both Java version and third party dependencies.
@@ -33,7 +34,7 @@ Spring Batch 5 is updating the dependencies across the board to the following ve
3334* Spring Data 3
3435* Spring AMQP 3
3536* Spring for Apache Kafka 3
36- * Micrometer 2
37+ * Micrometer 1.10
3738
3839This release also marks the migration to Jakarta EE 9 APIs.
3940
@@ -68,69 +69,62 @@ transaction manager bean in the application context.
6869
6970==== Batch tracing with Micrometer
7071
71- With the upgrade to Micrometer 2 , you can now get batch tracing in addition to batch metrics.
72+ With the upgrade to Micrometer 1.10 , you can now get batch tracing in addition to batch metrics.
7273Spring Batch will create a span for each job and a span for each step within a job. This tracing
7374meta-data can be collected and viewed on a dahsboard like link:$$https://zipkin.io$$[Zipkin] for example.
7475
7576==== Support for SAP HANA a job repository in Spring Batch
7677
7778This release introduces the support of SAP HANA as an additional supported database for the job repository.
7879
80+ ==== New Maven Bill Of Materials for Spring Batch modules
81+
82+ This feature has been requested several times and is finally shipped in v5. It is now possible to use the newly
83+ added Maven BOM to import Spring Batch modules with a consistent version number.
84+
85+ ==== UTF-8 by default
86+
87+ Several issues related to characters encoding have been reported over the years in different
88+ areas of the framework, like inconsitent default encoding between file-based item readers
89+ and writers, serialization/deserialization issues when dealing with multi-byte characters
90+ in the execution context, etc.
91+
92+ In the same spirit as link:$$https://openjdk.java.net/jeps/400$$[JEP 400] and following the
93+ link:$$http://utf8everywhere.org$$[UTF-8 manifesto], this release updates the default encoding
94+ to UTF-8 in all areas of the framework and ensures this default is configurable as needed.
95+
96+ ==== Native support
97+
98+ The effort towards providing support to compile Spring Batch applications as native executables
99+ using the GraalVM native-image compiler has started in v4.2 and was shipped as experimental in v4.3.
100+
101+ In this release, the native support has been improved significantly and is now considered out of beta.
102+
79103=== Pruning
80104
81105Spring Batch 5 removes a number of items that are no longer needed, including:
82106
83- * <<deprecated-apis -removal>>
107+ * <<api-deprecation-and -removal>>
84108* <<sqlfire-support-removal>>
85109* <<jsr-352-implementation-removal>>
86110
87- [[deprecated-apis-removal]]
88- ==== Deprecated APIs Removal
89-
90- The following APIs were deprecated in previous versions and have been removed in this release:
91-
92- * Class `org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean`
93- * Class `org.springframework.batch.core.repository.dao.MapExecutionContextDao`
94- * Class `org.springframework.batch.core.repository.dao.MapJobExecutionDao`
95- * Class `org.springframework.batch.core.repository.dao.MapJobInstanceDao`
96- * Class `org.springframework.batch.core.repository.dao.MapStepExecutionDao`
97- * Class `org.springframework.batch.core.explore.support.MapJobExplorerFactoryBean`
98- * Class `org.springframework.batch.core.repository.dao.XStreamExecutionContextStringSerializer`
99- * Class `org.springframework.batch.core.configuration.support.ClassPathXmlJobRegistry`
100- * Class `org.springframework.batch.core.configuration.support.ClassPathXmlApplicationContextFactory`
101- * Class `org.springframework.batch.core.launch.support.ScheduledJobParametersFactory`
102- * Class `org.springframework.batch.item.data.AbstractNeo4jItemReader`
103- * Class `org.springframework.batch.item.database.support.ListPreparedStatementSetter`
104- * Class `org.springframework.batch.integration.chunk.RemoteChunkingMasterStepBuilder`
105- * Class `org.springframework.batch.integration.chunk.RemoteChunkingMasterStepBuilderFactory`
106- * Class `org.springframework.batch.integration.partition.RemotePartitioningMasterStepBuilder`
107- * Class `org.springframework.batch.integration.partition.RemotePartitioningMasterStepBuilderFactory`
108- * Class `org.springframework.batch.test.AbstractJobTests`
109- * Class `org.springframework.batch.item.xml.StaxUtils`
110- * Enum `org.springframework.batch.item.file.transform.Alignment`
111- * Method `org.springframework.batch.core.JobExecution#stop()`
112- * Method `org.springframework.batch.core.JobParameters#getDouble(String key, double defaultValue)`
113- * Method `org.springframework.batch.core.JobParameters#getLong(String key, long defaultValue)`
114- * Method `org.springframework.batch.core.partition.support.SimpleStepExecutionSplitter(JobRepository jobRepository, Step step, Partitioner partitioner)`
115- * Method `org.springframework.batch.core.partition.support.SimpleStepExecutionSplitter#getStartable(StepExecution stepExecution, ExecutionContext context)`
116- * Method `org.springframework.batch.core.repository.support.AbstractJobRepositoryFactoryBean#getJobRepository()`
117- * Method `org.springframework.batch.item.database.AbstractCursorItemReader#cleanupOnClose()`
118- * Method `org.springframework.batch.item.database.HibernateItemWriter#doWrite(HibernateOperations hibernateTemplate, List<? extends T> items)`
119- * Method `org.springframework.batch.item.database.JdbcCursorItemReader#cleanupOnClose()`
120- * Method `org.springframework.batch.item.database.StoredProcedureItemReader#cleanupOnClose()`
121- * Method `org.springframework.batch.item.database.builder.HibernatePagingItemReaderBuilder#useSatelessSession(boolean useStatelessSession)`
122- * Method `org.springframework.batch.item.file.MultiResourceItemReader#getCurrentResource()`
123- * Method `org.springframework.batch.integration.config.annotation.BatchIntegrationConfiguration#remoteChunkingMasterStepBuilderFactory()`
124- * Method `org.springframework.batch.integration.config.annotation.BatchIntegrationConfiguration#remotePartitioningMasterStepBuilderFactory()`
125- * Method `org.springframework.batch.item.util.FileUtils#setUpOutputFile(File file, boolean restarted, boolean overwriteOutputFile)`
111+ [[api-deprecation-and-removal]]
112+ ==== API deprecation and removal
113+
114+ In this major release, all APIs that were deprecated in previous versions have been removed.
115+ Moreover, some APIs have been deprecated in v5.0 and are scheduled for removal in v5.2.
116+ Finally, some APIs have been moved or removed without deprecation for practical reasons.
117+
118+ Please refer to the link:$$https://github.com/spring-projects/spring-batch/wiki/Spring-Batch-5.0-Migration-Guide$$[migration guide]
119+ for more details about these changes.
126120
127121[[sqlfire-support-removal]]
128122==== SQLFire Support Removal
129123
130124SqlFire has been announced to be EOL as of November 1st, 2014. The support of SQLFire as a job repository
131- was deprecated in version 4 .3 and removed in version 5 .0.
125+ was deprecated in version v4 .3 and removed in version v5 .0.
132126
133127[[jsr-352-implementation-removal]]
134128==== JSR-352 Implementation Removal
135129
136- Due to a lack of adoption, the implementation of JSR-352 has been removed from this release.
130+ Due to a lack of adoption, the implementation of JSR-352 has been discontinued in this release.
0 commit comments