Skip to content

Commit 12ceaec

Browse files
committed
Start version 6.5
* Upgrade dependencies to latest reasonable * Add `6.4.x` branch to Dependabot config * Move `whats-new.adoc` content to `changes-6.3-6.4.adoc` * Optimize `build.gradle` moving `add-opens` for `java.base/java.util` to common config block
1 parent 9f6e901 commit 12ceaec

File tree

6 files changed

+181
-123
lines changed

6 files changed

+181
-123
lines changed

.github/dependabot.yml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,52 @@ updates:
4545
- com.thoughtworks.xstream:xstream
4646
- org.springframework.security*
4747

48+
- package-ecosystem: gradle
49+
target-branch: 6.4.x
50+
directory: /
51+
schedule:
52+
interval: weekly
53+
day: sunday
54+
ignore:
55+
- dependency-name: '*'
56+
update-types:
57+
- version-update:semver-major
58+
- version-update:semver-minor
59+
open-pull-requests-limit: 10
60+
labels:
61+
- 'type: dependency-upgrade'
62+
groups:
63+
development-dependencies:
64+
update-types:
65+
- patch
66+
patterns:
67+
- com.gradle.*
68+
- com.github.spotbugs
69+
- io.spring.*
70+
- org.ajoberstar.grgit
71+
- org.antora
72+
- com.google.protobuf
73+
- io.micrometer:micrometer-docs-generator
74+
- com.willowtreeapps.assertk:assertk-jvm
75+
- org.jetbrains.dokka
76+
- org.apache.activemq*
77+
- org.aspectj*
78+
- org.awaitility:awaitility
79+
- org.apache.commons:commons-dbcp2
80+
- org.apache.derby
81+
- com.icegreen:greenmail
82+
- org.hibernate.orm*
83+
- org.testcontainers*
84+
- org.hsqldb:hsqldb
85+
- com.h2database:h2
86+
- org.postgresql:postgresql
87+
- mysql:mysql-connector-java
88+
- com.oracle.database.jdbc:ojdbc11
89+
- org.apache.tomcat.embed:tomcat-embed-websocket
90+
- org.xmlunit:xmlunit-assertj3
91+
- com.thoughtworks.xstream:xstream
92+
- org.springframework.security*
93+
4894
- package-ecosystem: gradle
4995
target-branch: 6.3.x
5096
directory: /
@@ -102,6 +148,18 @@ updates:
102148
development-dependencies:
103149
patterns:
104150
- '*'
151+
- package-ecosystem: github-actions
152+
target-branch: 6.4.x
153+
directory: /
154+
schedule:
155+
interval: weekly
156+
day: saturday
157+
labels:
158+
- 'type: task'
159+
groups:
160+
development-dependencies:
161+
patterns:
162+
- '*'
105163

106164
- package-ecosystem: github-actions
107165
target-branch: 6.3.x

build.gradle

Lines changed: 24 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ plugins {
2424
id 'io.spring.antora.generate-antora-yml' version '0.0.1'
2525
id 'com.github.spotbugs' version '6.0.27'
2626
id 'com.google.protobuf' version '0.9.4' apply false
27-
id 'io.freefair.aggregate-javadoc' version '8.10.2'
27+
id 'io.freefair.aggregate-javadoc' version '8.11'
2828
}
2929

3030
if (isCI) {
@@ -55,15 +55,15 @@ ext {
5555
modifiedFiles.finalizeValueOnRead()
5656

5757
apacheSshdVersion = '2.14.0'
58-
artemisVersion = '2.37.0'
58+
artemisVersion = '2.39.0'
5959
aspectjVersion = '1.9.22.1'
60-
assertjVersion = '3.26.3'
60+
assertjVersion = '3.27.1'
6161
assertkVersion = '0.28.1'
6262
avroVersion = '1.12.0'
6363
awaitilityVersion = '4.2.2'
64-
camelVersion = '4.8.2'
65-
commonsDbcp2Version = '2.12.0'
66-
commonsIoVersion = '2.17.0'
64+
camelVersion = '4.9.0'
65+
commonsDbcp2Version = '2.13.0'
66+
commonsIoVersion = '2.18.0'
6767
commonsNetVersion = '3.11.1'
6868
curatorVersion = '5.7.1'
6969
debeziumVersion = '3.0.6.Final'
@@ -89,35 +89,35 @@ ext {
8989
junitJupiterVersion = '5.11.4'
9090
kotlinCoroutinesVersion = '1.8.1'
9191
kryoVersion = '5.6.2'
92-
lettuceVersion = '6.4.1.RELEASE'
92+
lettuceVersion = '6.5.2.RELEASE'
9393
log4jVersion = '2.24.3'
9494
mailVersion = '2.0.3'
95-
micrometerTracingVersion = '1.4.1'
96-
micrometerVersion = '1.14.2'
95+
micrometerTracingVersion = '1.5.0-SNAPSHOT'
96+
micrometerVersion = '1.15.0-SNAPSHOT'
9797
mockitoVersion = '5.14.2'
9898
mongoDriverVersion = '5.2.1'
9999
mysqlVersion = '9.1.0'
100-
oracleVersion = '23.5.0.24.07'
100+
oracleVersion = '23.6.0.24.10'
101101
pahoMqttClientVersion = '1.2.5'
102102
postgresVersion = '42.7.4'
103-
protobufVersion = '4.28.3'
103+
protobufVersion = '4.29.2'
104104
r2dbch2Version = '1.0.0.RELEASE'
105105
reactorVersion = '2024.0.1'
106106
resilience4jVersion = '2.2.0'
107107
romeToolsVersion = '2.1.0'
108108
rsocketVersion = '1.1.4'
109-
servletApiVersion = '6.0.0'
109+
servletApiVersion = '6.1.0'
110110
smackVersion = '4.4.8'
111111
springAmqpVersion = '3.2.1'
112-
springDataVersion = '2024.1.1'
112+
springDataVersion = '2025.0.0-SNAPSHOT'
113113
springGraphqlVersion = '1.3.3'
114114
springKafkaVersion = '3.3.1'
115115
springRetryVersion = '2.0.11'
116-
springSecurityVersion = '6.4.2'
116+
springSecurityVersion = '6.5.0-SNAPSHOT'
117117
springVersion = '6.2.1'
118118
springWsVersion = '4.0.11'
119119
testcontainersVersion = '1.20.4'
120-
tomcatVersion = '10.1.34'
120+
tomcatVersion = '11.0.2'
121121
xmlUnitVersion = '2.10.0'
122122
xstreamVersion = '1.4.21'
123123
ztZipVersion = '1.17'
@@ -265,6 +265,10 @@ configure(javaProjects) { subproject ->
265265
options.addBooleanOption('Werror', true) // fail build on Javadoc warnings
266266
}
267267

268+
tasks.withType(JavaForkOptions) {
269+
jvmArgs '--add-opens', 'java.base/java.util=ALL-UNNAMED'
270+
}
271+
268272
eclipse {
269273
project {
270274
natures += 'org.springframework.ide.eclipse.core.springnature'
@@ -380,7 +384,7 @@ configure(javaProjects) { subproject ->
380384

381385
checkstyle {
382386
configDirectory.set(rootProject.file('src/checkstyle'))
383-
toolVersion = project.hasProperty('checkstyleVersion') ? project.checkstyleVersion : '10.18.2'
387+
toolVersion = project.hasProperty('checkstyleVersion') ? project.checkstyleVersion : '10.21.1'
384388
}
385389

386390
jar {
@@ -663,8 +667,7 @@ project('spring-integration-groovy') {
663667
}
664668

665669
tasks.withType(JavaForkOptions) {
666-
jvmArgs '--add-opens', 'java.base/java.lang=ALL-UNNAMED',
667-
'--add-opens', 'java.base/java.util=ALL-UNNAMED'
670+
jvmArgs '--add-opens', 'java.base/java.lang=ALL-UNNAMED'
668671
}
669672
}
670673

@@ -716,8 +719,7 @@ project('spring-integration-ip') {
716719
}
717720

718721
tasks.withType(JavaForkOptions) {
719-
jvmArgs '--add-opens', 'java.base/java.nio.channels.spi=ALL-UNNAMED',
720-
'--add-opens', 'java.base/java.util=ALL-UNNAMED'
722+
jvmArgs '--add-opens', 'java.base/java.nio.channels.spi=ALL-UNNAMED'
721723
}
722724
}
723725

@@ -822,7 +824,6 @@ project('spring-integration-r2dbc') {
822824
description = 'Spring Integration R2DBC Support'
823825
dependencies {
824826
api 'org.springframework.data:spring-data-r2dbc'
825-
api 'org.springframework:spring-r2dbc'
826827

827828
testImplementation "io.r2dbc:r2dbc-h2:$r2dbch2Version"
828829
}
@@ -831,8 +832,7 @@ project('spring-integration-r2dbc') {
831832
project('spring-integration-mqtt') {
832833
description = 'Spring Integration MQTT Support'
833834
dependencies {
834-
api "org.eclipse.paho:org.eclipse.paho.client.mqttv3:$pahoMqttClientVersion"
835-
835+
optionalApi "org.eclipse.paho:org.eclipse.paho.client.mqttv3:$pahoMqttClientVersion"
836836
optionalApi "org.eclipse.paho:org.eclipse.paho.mqttv5.client:$pahoMqttClientVersion"
837837

838838
testImplementation project(':spring-integration-jmx')
@@ -844,13 +844,10 @@ project('spring-integration-redis') {
844844
description = 'Spring Integration Redis Support'
845845
dependencies {
846846
api 'org.springframework.data:spring-data-redis'
847+
847848
testImplementation "io.lettuce:lettuce-core:$lettuceVersion"
848849
testImplementation 'com.fasterxml.jackson.core:jackson-databind'
849850
}
850-
851-
tasks.withType(JavaForkOptions) {
852-
jvmArgs '--add-opens', 'java.base/java.util=ALL-UNNAMED'
853-
}
854851
}
855852

856853
project('spring-integration-rsocket') {
@@ -876,7 +873,6 @@ project('spring-integration-scripting') {
876873
jvmArgs '--add-opens', 'java.base/sun.nio.ch=ALL-UNNAMED',
877874
'--add-opens', 'java.base/java.io=ALL-UNNAMED',
878875
'--add-opens', 'java.base/java.lang=ALL-UNNAMED',
879-
'--add-opens', 'java.base/java.util=ALL-UNNAMED',
880876
'-Dpolyglot.engine.WarnInterpreterOnly=false'
881877
}
882878
}

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version=6.4.2-SNAPSHOT
1+
version=6.5.0-SNAPSHOT
22
org.gradle.jvmargs=-Xmx2g -XX:+HeapDumpOnOutOfMemoryError -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8
33
kotlin.jvm.target.validation.mode=IGNORE
44
org.gradle.caching=true

src/reference/antora/modules/ROOT/nav.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,7 @@
255255
* xref:samples.adoc[]
256256
* xref:resources.adoc[]
257257
* xref:history.adoc[]
258+
** xref:changes-6.3-6.4.adoc[]
258259
** xref:changes-6.2-6.3.adoc[]
259260
** xref:changes-6.1-6.2.adoc[]
260261
** xref:changes-6.0-6.1.adoc[]
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
[[migration-6.3-6.4]]
2+
= Changes between 6.3 and 6.4
3+
4+
[[x6.4-new-components]]
5+
== New Components
6+
7+
A `BaseMessageBuilder` class has been extracted from the `MessageBuilder` to simplify a custom builder implementation where the most of the logic should be the same as `MessageBuilder` one.
8+
See xref:message.adoc#message-builder[`MessageBuilder`] for more information.
9+
10+
The new Control Bus interaction model is implemented in the `ControlBusCommandRegistry`.
11+
A new `ControlBusFactoryBean` class is recommended to be used instead of deprecated `ExpressionControlBusFactoryBean`.
12+
See xref:control-bus.adoc[Control Bus] for more information.
13+
14+
Also, a `ControlBusController` (together with an `@EnableControlBusController`) is introduced for managing exposed commands by the mentioned `ControlBusCommandRegistry`.
15+
See xref:http.adoc[HTTP Support] for more information.
16+
17+
The SpEL evaluation infrastructure now supports configuration for `IndexAccessor`.
18+
Also, an out-of-the-box `JsonIndexAccessor` is provided.
19+
See xref:spel.adoc[SpEL Support] for more information.
20+
21+
[[x6.4-general]]
22+
== General Changes
23+
24+
The Java DSL `SourcePollingChannelAdapterSpec` can now be configured with a custom `TaskScheduler`
25+
26+
[[x6.4-remote-files-changes]]
27+
== Remote File Adapters Changes
28+
29+
The `AbstractRemoteFileStreamingMessageSource` has now a convenient `clearFetchedCache()` API to remove references from cache for not processed remote files.
30+
The references stay in cache because polling configuration does not allow to process all the fetched in one cycle, and the target `SessionFactory` might be changed between polling cycles, e.g. via `RotatingServerAdvice`.
31+
32+
[[x6.4-jdbc-changes]]
33+
== JDBC Changes
34+
35+
The `LobHandler` (and respective API) has been deprecated for removal in Spring Framework `6.2`.
36+
Respective option on `JdbcMessageStore` (and similar) have been deprecated as well.
37+
The byte array handling for serialized message is fully deferred to JDBC driver.
38+
39+
The `LockRepository.delete()` method return the result of removing ownership of a distributed lock.
40+
And the `JdbcLockRegistry.JdbcLock.unlock()` method throws `ConcurrentModificationException` if the ownership of the lock is expired.
41+
See xref:jdbc.adoc[JDBC Support] for more information.
42+
43+
[[x6.4-zeromq-changes]]
44+
== ZeroMQ Changes
45+
46+
The outbound component `ZeroMqMessageHandler` (and respective API) can now bind a TCP port instead of connecting to a given URL.
47+
See xref:zeromq.adoc[ZeroMQ Support] for more information.
48+
49+
[[x6.4-redis-changes]]
50+
== Redis Changes
51+
52+
Instead of throwing `IllegalStateException`, the `RedisLockRegistry.RedisLock.unlock()` method throws `ConcurrentModificationException` if the ownership of the lock is expired.
53+
Add a `RedisLockRegistry.setRenewalTaskScheduler()` to periodic lock renewal.
54+
See xref:redis.adoc[Redis Support] for more information.
55+
56+
[[x6.4-groovy-changes]]
57+
== Groovy Changes
58+
59+
The `ControlBusFactoryBean` (and respective `<int-groovy:control-bus>` XML tag) has been deprecated (for removal) in favor of new introduced `ControlBusFactoryBean` based on a new model implemented in the `ControlBusCommandRegistry`.
60+
See xref:control-bus.adoc[Control Bus] for more information.
61+
62+
63+
[[x6.4-sftp-changes]]
64+
== SFTP Support Changes
65+
66+
The `DefaultSftpSessionFactory` now exposes a `Consumer<SshClient>` configurer property to further customize an internal `SshClient`.
67+
See xref:sftp/session-factory.adoc[SFTP Session Factory] for more information.
68+
69+
[[x6.4-mqtt-support-changes]]
70+
== MQTT Support Changes
71+
72+
Multiple instances of `MqttPahoMessageDrivenChannelAdapter` and `Mqttv5PahoMessageDrivenChannelAdapter` can now be added at runtime using corresponding `ClientManager` through `IntegrationFlowContext`
73+
Also a `MqttMessageNotDeliveredEvent` event has been introduced to emit when action callback reacts to the delivery failure.
74+
See xref:mqtt.adoc[MQTT Support] for more information.
75+
76+
[[x6.4-zip-support-changes]]
77+
== Zip Support Changes
78+
79+
The `ZipTransformer` now exposes a `fileNameGenerator` property to customize a target zip file (and optional zip entry) name generation.
80+
See xref:zip.adoc[Zip Support] for more information.
81+
82+
83+
[[x6.4-scripting-changes]]
84+
== Scripting Changes
85+
86+
The Python scripts evaluation is now migrated to the GraalVM Polyglot.
87+
See xref:scripting.adoc[Scripting Support] for more information.
88+
89+
[[x6.4-mail-changes]]
90+
== Mail Changes
91+
92+
The `AbstractMailReceiver` exposes an option to disable setting `Flags.Flag.FLAGGED` into a received message as fallback flag.
93+
See xref:mail.adoc[Mail Support] for more information.

0 commit comments

Comments
 (0)