2
2
:toc: left
3
3
:toclevels: 4
4
4
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
+
5
9
[[whatsNew]]
6
10
== What's New in Spring Batch 5.0
7
11
@@ -13,9 +17,6 @@ Spring Batch 5.0 has the following major themes:
13
17
* New features
14
18
* Pruning
15
19
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
-
19
20
=== Java 17 Requirement
20
21
21
22
Spring 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
33
34
* Spring Data 3
34
35
* Spring AMQP 3
35
36
* Spring for Apache Kafka 3
36
- * Micrometer 2
37
+ * Micrometer 1.10
37
38
38
39
This release also marks the migration to Jakarta EE 9 APIs.
39
40
@@ -68,69 +69,62 @@ transaction manager bean in the application context.
68
69
69
70
==== Batch tracing with Micrometer
70
71
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.
72
73
Spring Batch will create a span for each job and a span for each step within a job. This tracing
73
74
meta-data can be collected and viewed on a dahsboard like link:$$https://zipkin.io$$[Zipkin] for example.
74
75
75
76
==== Support for SAP HANA a job repository in Spring Batch
76
77
77
78
This release introduces the support of SAP HANA as an additional supported database for the job repository.
78
79
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
+
79
103
=== Pruning
80
104
81
105
Spring Batch 5 removes a number of items that are no longer needed, including:
82
106
83
- * <<deprecated-apis -removal>>
107
+ * <<api-deprecation-and -removal>>
84
108
* <<sqlfire-support-removal>>
85
109
* <<jsr-352-implementation-removal>>
86
110
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.
126
120
127
121
[[sqlfire-support-removal]]
128
122
==== SQLFire Support Removal
129
123
130
124
SqlFire 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.
132
126
133
127
[[jsr-352-implementation-removal]]
134
128
==== JSR-352 Implementation Removal
135
129
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