Start version 6.2.0
* Add Christian Tzolov to author name in the doc * Move `whats-new.adoc` content to new `changes-6.0-6.1.adoc` * Upgrade to Gradle `8.1.1` * Upgrade to Spring Framework `6.1` * Fix `StompSessionManagerTests` for deprecated `ConcurrentTaskScheduler` ctor * Fix XML configs for Kafka to use types for ctor args instead of their names. Apparently SF doesn't do a discovery by names anymore.
This commit is contained in:
@@ -108,7 +108,7 @@ ext {
|
||||
springKafkaVersion = '3.0.7'
|
||||
springRetryVersion = '2.0.1'
|
||||
springSecurityVersion = '6.1.0'
|
||||
springVersion = '6.0.9'
|
||||
springVersion = '6.1.0-SNAPSHOT'
|
||||
springWsVersion = '4.0.4'
|
||||
testcontainersVersion = '1.18.1'
|
||||
tomcatVersion = '10.1.8'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
version=6.1.1-SNAPSHOT
|
||||
version=6.2.0-SNAPSHOT
|
||||
org.gradle.jvmargs=-Xmx1536M -Dfile.encoding=UTF-8
|
||||
kotlin.jvm.target.validation.mode=IGNORE
|
||||
org.gradle.caching=true
|
||||
|
||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,7 +1,7 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionSha256Sum=ff7bf6a86f09b9b2c40bb8f48b25fc19cf2b2664fd1d220cd7ab833ec758d0d7
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip
|
||||
distributionSha256Sum=e111cb9948407e26351227dabce49822fb88c37ee72f1d1582a69c68af2e702f
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
|
||||
networkTimeout=10000
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
7
gradlew
vendored
7
gradlew
vendored
@@ -85,9 +85,6 @@ done
|
||||
APP_BASE_NAME=${0##*/}
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
|
||||
@@ -197,6 +194,10 @@ if "$cygwin" || "$msys" ; then
|
||||
done
|
||||
fi
|
||||
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Collect all arguments for the java command;
|
||||
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
|
||||
# shell script including quotes and variable substitutions, so put them in
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
http://www.springframework.org/schema/integration https://www.springframework.org/schema/integration/spring-integration.xsd
|
||||
http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
|
||||
|
||||
<context:property-placeholder />
|
||||
<context:property-placeholder/>
|
||||
|
||||
<bean id="cf" class="org.springframework.kafka.core.DefaultKafkaConsumerFactory">
|
||||
<constructor-arg>
|
||||
@@ -34,7 +34,7 @@
|
||||
</bean>
|
||||
|
||||
<bean id="cp" class="org.springframework.kafka.listener.ConsumerProperties">
|
||||
<constructor-arg name="topics" value="one"/>
|
||||
<constructor-arg type="java.lang.String[]" value="one"/>
|
||||
<property name="groupId" value="groupForTopic1"/>
|
||||
</bean>
|
||||
|
||||
@@ -58,8 +58,7 @@
|
||||
|
||||
<int:chain input-channel="fromTwo" output-channel="lastChannel">
|
||||
<int:transformer expression="payload + headers['kafka_receivedTopic']"/>
|
||||
<int-kafka:outbound-gateway
|
||||
kafka-template="replyingTemplate"/>
|
||||
<int-kafka:outbound-gateway kafka-template="replyingTemplate"/>
|
||||
<int:transformer expression="payload + headers['kafka_receivedTopic']"/>
|
||||
</int:chain>
|
||||
|
||||
@@ -72,8 +71,7 @@
|
||||
kafka-template="replyingTemplate"
|
||||
request-channel="fromThree"/>
|
||||
|
||||
<int:transformer input-channel="fromThree"
|
||||
expression="payload + headers['kafka_receivedTopic']"/>
|
||||
<int:transformer input-channel="fromThree" expression="payload + headers['kafka_receivedTopic']"/>
|
||||
|
||||
<bean id="template" class="org.springframework.kafka.core.KafkaTemplate">
|
||||
<constructor-arg ref="pf"/>
|
||||
@@ -83,7 +81,7 @@
|
||||
<constructor-arg ref="cf"/>
|
||||
<constructor-arg>
|
||||
<bean class="org.springframework.kafka.listener.ContainerProperties">
|
||||
<constructor-arg name="topics" value="two"/>
|
||||
<constructor-arg type="java.lang.String[]" value="two"/>
|
||||
<property name="groupId" value="container1"/>
|
||||
</bean>
|
||||
</constructor-arg>
|
||||
@@ -93,7 +91,7 @@
|
||||
<constructor-arg ref="cf"/>
|
||||
<constructor-arg>
|
||||
<bean class="org.springframework.kafka.listener.ContainerProperties">
|
||||
<constructor-arg name="topics" value="three"/>
|
||||
<constructor-arg type="java.lang.String[]" value="three"/>
|
||||
<property name="groupId" value="container3"/>
|
||||
</bean>
|
||||
</constructor-arg>
|
||||
@@ -109,7 +107,7 @@
|
||||
<constructor-arg ref="cf"/>
|
||||
<constructor-arg>
|
||||
<bean class="org.springframework.kafka.listener.ContainerProperties">
|
||||
<constructor-arg name="topics" value="four"/>
|
||||
<constructor-arg type="java.lang.String[]" value="four"/>
|
||||
<property name="groupId" value="container4"/>
|
||||
</bean>
|
||||
</constructor-arg>
|
||||
|
||||
@@ -39,14 +39,14 @@
|
||||
</bean>
|
||||
|
||||
<bean id="consumerProperties1" class="org.springframework.kafka.listener.ConsumerProperties">
|
||||
<constructor-arg name="topics" value="topic1"/>
|
||||
<constructor-arg value="topic1" type="java.lang.String[]"/>
|
||||
<property name="groupId" value="group"/>
|
||||
<property name="clientId" value="client"/>
|
||||
<property name="consumerRebalanceListener" ref="rebal"/>
|
||||
</bean>
|
||||
|
||||
<bean id="consumerProperties2" class="org.springframework.kafka.listener.ConsumerProperties">
|
||||
<constructor-arg name="topics" value="topic1, topic2"/>
|
||||
<constructor-arg value="topic1, topic2" type="java.lang.String[]"/>
|
||||
<property name="groupId" value="group"/>
|
||||
</bean>
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2016-2022 the original author or authors.
|
||||
* Copyright 2016-2023 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -17,6 +17,7 @@
|
||||
package org.springframework.integration.stomp;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
@@ -42,7 +43,7 @@ public class StompSessionManagerTests {
|
||||
@Test
|
||||
public void testDoConnectFailure() throws Exception {
|
||||
StompClientSupport stompClient = mock(StompClientSupport.class);
|
||||
stompClient.setTaskScheduler(new ConcurrentTaskScheduler());
|
||||
stompClient.setTaskScheduler(new ConcurrentTaskScheduler(Executors.newSingleThreadScheduledExecutor()));
|
||||
AbstractStompSessionManager sessionManager = new AbstractStompSessionManager(stompClient) {
|
||||
|
||||
private final AtomicBoolean thrown = new AtomicBoolean();
|
||||
|
||||
84
src/reference/asciidoc/changes-6.0-6.1.adoc
Normal file
84
src/reference/asciidoc/changes-6.0-6.1.adoc
Normal file
@@ -0,0 +1,84 @@
|
||||
[[migration-6.0-6.1]]
|
||||
=== Changes between 6.0 and 6.1
|
||||
|
||||
[[x6.1-new-components]]
|
||||
=== New Components
|
||||
|
||||
[[x6.1-zip]]
|
||||
==== Zip Support
|
||||
|
||||
The Zip Spring Integration Extension project has been migrated as the `spring-integration-zip` module.
|
||||
See <<./zip.adoc#zip,Zip Support>> for more information.
|
||||
|
||||
[[x6.1-context-holder-advice]]
|
||||
==== `ContextHolderRequestHandlerAdvice`
|
||||
|
||||
The `ContextHolderRequestHandlerAdvice` allows to store a value from a request message into some context around `MessageHandler` execution.
|
||||
See <<./handler-advice.adoc#context-holder-advice, Context Holder Advice>> for more information.
|
||||
|
||||
[[x6.1-handle-reactive]]
|
||||
==== The `handleReactive()` operator for Java DSL
|
||||
The `IntegrationFlow` can now end with a convenient `handleReactive(ReactiveMessageHandler)` operator.
|
||||
See <<./reactive-streams.adoc#reactive-message-handler, `ReactiveMessageHandler`>> for more information.
|
||||
|
||||
[[x6.1-partitioned-channel]]
|
||||
==== `PartitionedChannel`
|
||||
A new `PartitionedChannel` has been introduced to process messages with the same partition key in the same thread.
|
||||
See <<./channel.adoc#partitioned-channel, `PartitionedChannel`>> for more information.
|
||||
|
||||
[[x6.1-general]]
|
||||
=== General Changes
|
||||
|
||||
- Added support for transforming to/from Protocol Buffers.
|
||||
See <<./transformer.adoc#Protobuf-transformers, Protocol Buffers Transformers>> for more information.
|
||||
|
||||
- The `MessageFilter` now emits a warning into logs when message is silently discarded and dropped.
|
||||
See <<./filter.adoc#filter, Filter>> for more information.
|
||||
|
||||
- The default timeout for send and receive operations in gateways and replying channel adapters has been changed from infinity to `30` seconds.
|
||||
Only one left as a `1` second is a `receiveTimeout` for `PollingConsumer` to not block a scheduler thread too long and let other queued tasks to be performed with the `TaskScheduler`.
|
||||
|
||||
- The `IntegrationComponentSpec.get()` method has been deprecated with removal planned for the next version.
|
||||
Since `IntegrationComponentSpec` is a `FactoryBean`, its bean definition must stay as is without any target object resolutions.
|
||||
The Java DSL and the framework by itself will manage the `IntegrationComponentSpec` lifecycle.
|
||||
See <<./dsl.adoc#java-dsl, Java DSL>> for more information.
|
||||
|
||||
- The `AbstractMessageProducingHandler` is marked as an `async` by default if its output channel is configured to a `ReactiveStreamsSubscribableChannel`.
|
||||
See <<./service-activator.adoc#async-service-activator,Asynchronous Service Activator>> for more information.
|
||||
|
||||
[[x6.1-web-sockets]]
|
||||
=== Web Sockets Changes
|
||||
|
||||
A `ClientWebSocketContainer` can now be configured with a predefined `URI` instead of a combination of `uriTemplate` and `uriVariables`.
|
||||
See <<./web-sockets.adoc#web-socket-overview, WebSocket Overview>> for more information.
|
||||
|
||||
[[x6.1-jms]]
|
||||
=== JMS Changes
|
||||
|
||||
The `JmsInboundGateway`, via its `ChannelPublishingJmsMessageListener`, can now be configured with a `replyToExpression` to resolve a reply destination against the request message at runtime.
|
||||
See <<./jms.adoc#jms-inbound-gateway, JMS Inbound Gateway>> for more information.
|
||||
|
||||
[[x6.1-mail]]
|
||||
=== Mail Changes
|
||||
|
||||
The (previously deprecated) `ImapIdleChannelAdapter.sendingTaskExecutor` property has been removed in favor of an asynchronous message process downstream in the flow.
|
||||
See <<./mail.adoc#mail-inbound, Mail-receiving Channel Adapter>> for more information.
|
||||
|
||||
[[x6.1-file]]
|
||||
=== Files Changes
|
||||
|
||||
The `FileReadingMessageSource` now exposes `watchMaxDepth` and `watchDirPredicate` options for the `WatchService`.
|
||||
See <<./file.adoc#watch-service-directory-scanner, `WatchServiceDirectoryScanner`>> for more information.
|
||||
|
||||
[[x6.1-amqp]]
|
||||
=== AMQP Changes
|
||||
|
||||
The Java DSL API for Rabbit Streams (the `RabbitStream` factory) exposes additional properties for simple configurations.
|
||||
See <<./amqp.adoc#rmq-streams, `RabbitMQ Stream Queue Support`>> for more information.
|
||||
|
||||
|
||||
[[x6.1-jdbc]]
|
||||
=== JDBC Changes
|
||||
|
||||
The `DefaultLockRepository` now exposes setters for `insert`, `update` and `renew` queries.
|
||||
See <<./jdbc.adoc#jdbc-lock-registry, JDBC Lock Registry>> for more information.
|
||||
@@ -2,6 +2,8 @@
|
||||
== Change History
|
||||
|
||||
// BE SURE TO PRECEDE ALL include:: with a blank line - see https://github.com/asciidoctor/asciidoctor/issues/1297
|
||||
include::./changes-6.0-6.1.adoc[]
|
||||
|
||||
include::./changes-5.5-6.0.adoc[]
|
||||
|
||||
include::./changes-5.4-5.5.adoc[]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[[spring-integration-reference]]
|
||||
= Spring Integration Reference Guide
|
||||
Mark Fisher; Marius Bogoevici; Iwein Fuld; Jonas Partner; Oleg Zhurakousky; Gary Russell; Dave Syer; Josh Long; David Turanski; Gunnar Hillert; Artem Bilan; Amol Nayak; Jay Bryant
|
||||
Mark Fisher; Marius Bogoevici; Iwein Fuld; Jonas Partner; Oleg Zhurakousky; Gary Russell; Dave Syer; Josh Long; David Turanski; Gunnar Hillert; Artem Bilan; Amol Nayak; Jay Bryant; Christian Tzolov
|
||||
|
||||
(C) 2009 - 2023 VMware, Inc.
|
||||
All rights reserved.
|
||||
|
||||
@@ -2,96 +2,20 @@
|
||||
= What's New?
|
||||
|
||||
[[spring-integration-intro-new]]
|
||||
For those who are already familiar with Spring Integration, this chapter provides a brief overview of the new features of version 6.1.
|
||||
For those who are already familiar with Spring Integration, this chapter provides a brief overview of the new features of version 6.2.
|
||||
|
||||
If you are interested in the changes and features that were introduced in earlier versions, see the <<./history.adoc#history,Change History>>.
|
||||
|
||||
[[whats-new]]
|
||||
|
||||
== What's New in Spring Integration 6.1?
|
||||
== What's New in Spring Integration 6.2?
|
||||
|
||||
If you are interested in more details, see the Issue Tracker tickets that were resolved as part of the 6.1 development process.
|
||||
If you are interested in more details, see the Issue Tracker tickets that were resolved as part of the 6.2 development process.
|
||||
|
||||
In general the project has been moved to the latest dependency versions.
|
||||
|
||||
[[x6.1-new-components]]
|
||||
[[x6.2-new-components]]
|
||||
=== New Components
|
||||
|
||||
[[x6.1-zip]]
|
||||
==== Zip Support
|
||||
|
||||
The Zip Spring Integration Extension project has been migrated as the `spring-integration-zip` module.
|
||||
See <<./zip.adoc#zip,Zip Support>> for more information.
|
||||
|
||||
[[x6.1-context-holder-advice]]
|
||||
==== `ContextHolderRequestHandlerAdvice`
|
||||
|
||||
The `ContextHolderRequestHandlerAdvice` allows to store a value from a request message into some context around `MessageHandler` execution.
|
||||
See <<./handler-advice.adoc#context-holder-advice, Context Holder Advice>> for more information.
|
||||
|
||||
[[x6.1-handle-reactive]]
|
||||
==== The `handleReactive()` operator for Java DSL
|
||||
The `IntegrationFlow` can now end with a convenient `handleReactive(ReactiveMessageHandler)` operator.
|
||||
See <<./reactive-streams.adoc#reactive-message-handler, `ReactiveMessageHandler`>> for more information.
|
||||
|
||||
[[x6.1-partitioned-channel]]
|
||||
==== `PartitionedChannel`
|
||||
A new `PartitionedChannel` has been introduced to process messages with the same partition key in the same thread.
|
||||
See <<./channel.adoc#partitioned-channel, `PartitionedChannel`>> for more information.
|
||||
|
||||
[[x6.1-general]]
|
||||
[[x6.2-general]]
|
||||
=== General Changes
|
||||
|
||||
- Added support for transforming to/from Protocol Buffers.
|
||||
See <<./transformer.adoc#Protobuf-transformers, Protocol Buffers Transformers>> for more information.
|
||||
|
||||
- The `MessageFilter` now emits a warning into logs when message is silently discarded and dropped.
|
||||
See <<./filter.adoc#filter, Filter>> for more information.
|
||||
|
||||
- The default timeout for send and receive operations in gateways and replying channel adapters has been changed from infinity to `30` seconds.
|
||||
Only one left as a `1` second is a `receiveTimeout` for `PollingConsumer` to not block a scheduler thread too long and let other queued tasks to be performed with the `TaskScheduler`.
|
||||
|
||||
- The `IntegrationComponentSpec.get()` method has been deprecated with removal planned for the next version.
|
||||
Since `IntegrationComponentSpec` is a `FactoryBean`, its bean definition must stay as is without any target object resolutions.
|
||||
The Java DSL and the framework by itself will manage the `IntegrationComponentSpec` lifecycle.
|
||||
See <<./dsl.adoc#java-dsl, Java DSL>> for more information.
|
||||
|
||||
- The `AbstractMessageProducingHandler` is marked as an `async` by default if its output channel is configured to a `ReactiveStreamsSubscribableChannel`.
|
||||
See <<./service-activator.adoc#async-service-activator,Asynchronous Service Activator>> for more information.
|
||||
|
||||
[[x6.1-web-sockets]]
|
||||
=== Web Sockets Changes
|
||||
|
||||
A `ClientWebSocketContainer` can now be configured with a predefined `URI` instead of a combination of `uriTemplate` and `uriVariables`.
|
||||
See <<./web-sockets.adoc#web-socket-overview, WebSocket Overview>> for more information.
|
||||
|
||||
[[x6.1-jms]]
|
||||
=== JMS Changes
|
||||
|
||||
The `JmsInboundGateway`, via its `ChannelPublishingJmsMessageListener`, can now be configured with a `replyToExpression` to resolve a reply destination against the request message at runtime.
|
||||
See <<./jms.adoc#jms-inbound-gateway, JMS Inbound Gateway>> for more information.
|
||||
|
||||
[[x6.1-mail]]
|
||||
=== Mail Changes
|
||||
|
||||
The (previously deprecated) `ImapIdleChannelAdapter.sendingTaskExecutor` property has been removed in favor of an asynchronous message process downstream in the flow.
|
||||
See <<./mail.adoc#mail-inbound, Mail-receiving Channel Adapter>> for more information.
|
||||
|
||||
[[x6.1-file]]
|
||||
=== Files Changes
|
||||
|
||||
The `FileReadingMessageSource` now exposes `watchMaxDepth` and `watchDirPredicate` options for the `WatchService`.
|
||||
See <<./file.adoc#watch-service-directory-scanner, `WatchServiceDirectoryScanner`>> for more information.
|
||||
|
||||
[[x6.1-amqp]]
|
||||
=== AMQP Changes
|
||||
|
||||
The Java DSL API for Rabbit Streams (the `RabbitStream` factory) exposes additional properties for simple configurations.
|
||||
See <<./amqp.adoc#rmq-streams, `RabbitMQ Stream Queue Support`>> for more information.
|
||||
|
||||
|
||||
[[x6.1-jdbc]]
|
||||
=== JDBC Changes
|
||||
|
||||
The `DefaultLockRepository` now exposes setters for `insert`, `update` and `renew` queries.
|
||||
See <<./jdbc.adoc#jdbc-lock-registry, JDBC Lock Registry>> for more information.
|
||||
|
||||
Reference in New Issue
Block a user