163 lines
8.6 KiB
Plaintext
163 lines
8.6 KiB
Plaintext
[[migration-5.2-5.3]]
|
|
=== Changes between 5.2 and 5.3
|
|
|
|
[[x5.3-new-components]]
|
|
=== New Components
|
|
|
|
[[x5.3-integration-pattern]]
|
|
==== Integration Pattern
|
|
|
|
The `IntegrationPattern` abstraction has been introduced to indicate which enterprise integration pattern (an `IntegrationPatternType`) and category a Spring Integration component belongs to.
|
|
See its JavaDocs and <<./graph.adoc#integration-graph,Integration Graph>> for more information about this abstraction and its use-cases.
|
|
|
|
[[x5.3-reactive-message-handler]]
|
|
==== `ReactiveMessageHandler`
|
|
|
|
The `ReactiveMessageHandler` is now natively supported in the framework.
|
|
See <<./reactive-streams.adoc#reactive-message-handler,ReactiveMessageHandler>> for more information.
|
|
|
|
|
|
[[x5.3-reactive-message-source-producer]]
|
|
==== `ReactiveMessageSourceProducer`
|
|
|
|
The `ReactiveMessageSourceProducer` is a reactive implementation of the `MessageProducerSupport` to wrap a provided `MessageSource` into a `Flux` for on demand `receive()` calls.
|
|
See <<./reactive-streams.adoc#reactive-streams,Reactive Streams Support>> for more information.
|
|
|
|
[[x5.3-java-dsl-extensions]]
|
|
==== Java DSL Extensions
|
|
|
|
A new `IntegrationFlowExtension` API has been introduced to allow extension of the existing Java DSL with custom or composed EIP-operators.
|
|
This also can be used to introduce customizers for any out-of-the-box `IntegrationComponentSpec` extensions.
|
|
See <<./dsl.adoc#java-dsl-extensions,DSL Extensions>> for more information.
|
|
|
|
[[x5.3-kotlin-dsl]]
|
|
==== Kotlin DSL
|
|
|
|
The Kotlin DSL for integration flow configurations has been introduced.
|
|
See <<./kotlin-dsl.adoc#kotlin-dsl,Kotlin DSL Chapter>> for more information.
|
|
|
|
[[x5.3-reactive-request-handler-advice]]
|
|
==== ReactiveRequestHandlerAdvice
|
|
|
|
A `ReactiveRequestHandlerAdvice` is provided to customize `Mono` replies from message handlers.
|
|
See <<./handler-advice.adoc#reactive-advice,Reactive Advice>> for more information.
|
|
|
|
[[x5.3-handle-message-advice-adapter]]
|
|
==== HandleMessageAdviceAdapter
|
|
|
|
A `HandleMessageAdviceAdapter` is provided to wrap any `MethodInterceptor` for applying on the `MessageHandler.handleMessage()` instead of a default `AbstractReplyProducingMessageHandler.RequestHandler.handleRequestMessage()` behavior.
|
|
See <<./handler-advice.adoc#handle-message-advice,Handling Message Advice>> for more information.
|
|
|
|
[[x5.3-mongodb-reactive-channel-adapters]]
|
|
==== MongoDB Reactive Channel Adapters
|
|
|
|
The `spring-integration-mongodb` module now provides channel adapter implementations for the Reactive MongoDb driver support in Spring Data.
|
|
Also, a reactive implementation for MongoDb change stream support is present with the `MongoDbChangeStreamMessageProducer`.
|
|
See <<./mongodb.adoc#mongodb,MongoDB Support>> for more information.
|
|
|
|
[[x5.3-receive-message-advice]]
|
|
==== ReceiveMessageAdvice
|
|
|
|
A special `ReceiveMessageAdvice` has been introduced to proxy exactly `MessageSource.receive()` or `PollableChannel.receive()`.
|
|
See <<./polling-consumer.adoc#smart-polling,Smart Polling>> for more information.
|
|
|
|
[[x5.3-general]]
|
|
=== General Changes
|
|
|
|
The gateway proxy now doesn't proxy `default` methods by default.
|
|
See <<./gateway.adoc#gateway-calling-default-methods,Invoking `default` Methods>> for more information.
|
|
|
|
Internal components (such as `_org.springframework.integration.errorLogger`) now have a shortened name when they are represented in the integration graph.
|
|
See <<./graph.adoc#integration-graph,Integration Graph>> for more information.
|
|
|
|
In the aggregator, when the `MessageGroupProcessor` returns a `Message`, the `MessageBuilder.popSequenceDetails()` is performed on the output message if the `sequenceDetails` matches the header in the first message of the group.
|
|
See <<./aggregator.adoc#aggregator-api,Aggregator Programming Model>> for more information.
|
|
|
|
A new `publishSubscribeChannel()` operator, based on the `BroadcastCapableChannel` and `BroadcastPublishSubscribeSpec`, was added into Java DSL.
|
|
This fluent API has its advantage when we configure sub-flows as pub-sub subscribers for broker-backed channels like `SubscribableJmsChannel`, `SubscribableRedisChannel` etc.
|
|
See <<./dsl.adoc#java-dsl-subflows,Sub-flows support>> for more information.
|
|
|
|
Transactional support in Spring Integration now also includes options to configure a `ReactiveTransactionManager` if a `MessageSource` or `MessageHandler` implementation produces a reactive type for payload to send.
|
|
See `TransactionInterceptorBuilder` for more information.
|
|
See also <<./transactions.adoc#reactive-transactions,Reactive Transactions>>.
|
|
|
|
A new `intercept()` operator to register `ChannelInterceptor` instances without creating explicit channels was added into Java DSL.
|
|
See <<./dsl.adoc#java-dsl-intercept,Operator intercept()>> for more information.
|
|
|
|
The `MessageStoreSelector` has a new mechanism to compare an old and new value.
|
|
See <<./handler-advice.adoc#idempotent-receiver,Idempotent Receiver Enterprise Integration Pattern>> for more information.
|
|
|
|
The `MessageProducerSupport` base class now has a `subscribeToPublisher(Publisher<? extends Message<?>>)` API to allow implementation of message-driven producer endpoints which emit messages via reactive `Publisher`.
|
|
See <<./reactive-streams.adoc#reactive-streams,Reactive Streams Support>> for more information.
|
|
|
|
[[x5.3-amqp]]
|
|
=== AMQP Changes
|
|
|
|
The outbound channel adapter has a new property `multiSend` allowing multiple messages to be sent within the scope of one `RabbitTemplate` invocation.
|
|
See <<./amqp.adoc#amqp-outbound-channel-adapter,AMQP Outbound Channel Adapter>> for more information.
|
|
|
|
The inbound channel adapter now supports a listener container with the `consumerBatchEnabled` property set to `true`.
|
|
See <<./amqp.adoc#amqp-inbound-channel-adapter,AMQP Inbound Channel Adapter>>
|
|
|
|
[[x5.3-http]]
|
|
=== HTTP Changes
|
|
|
|
The `encodeUri` property on the `AbstractHttpRequestExecutingMessageHandler` has been deprecated in favor of newly introduced `encodingMode`.
|
|
See `DefaultUriBuilderFactory.EncodingMode` JavaDocs and <<./http.adoc#http-uri-encoding,Controlling URI Encoding>> for more information.
|
|
This also affects `WebFluxRequestExecutingMessageHandler`, respective Java DSL and XML configuration.
|
|
The same option is added into an `AbstractWebServiceOutboundGateway`.
|
|
|
|
[[x5.3-ws]]
|
|
=== Web Services Changes
|
|
|
|
Java DSL support has been added for Web Service components.
|
|
The `encodeUri` property on the `AbstractWebServiceOutboundGateway` has been deprecated in favor of newly introduced `encodingMode` - similar to HTTP changes above.
|
|
See <<./ws.adoc#ws,Web Services Support>> for more information.
|
|
|
|
[[x5.3-tcp]]
|
|
=== TCP Changes
|
|
|
|
The `FailoverClientConnectionFactory` no longer fails back, by default, until the current connection fails.
|
|
See <<./ip.adoc#failover-cf,TCP Failover Client Connection Factory>> for more information.
|
|
|
|
The `TcpOutboundGateway` now supports asynchronous request/reply.
|
|
See <<./ip.adoc#tcp-gateways,TCP Gateways>> for more information.
|
|
|
|
You can now configure client connections to perform some arbitrary test on new connections.
|
|
See <<./ip.adoc#testing-connections,Testing Connections>> for more information.
|
|
|
|
[[x5.3-rsocket]]
|
|
=== RSocket Changes
|
|
|
|
A `decodeFluxAsUnit` option has been added to the `RSocketInboundGateway` with the meaning to decode incoming `Flux` as a single unit or apply decoding for each event in it.
|
|
See <<./rsocket.adoc#rsocket-inbound,RSocket Inbound Gateway>> for more information.
|
|
|
|
[[x5.3-zookeeper]]
|
|
=== Zookeeper Changes
|
|
|
|
A `LeaderInitiatorFactoryBean` (as well as its XML `<int-zk:leader-listener>`) exposes a `candidate` option for more control over a `Candidate` configuration.
|
|
See <<./zookeeper.adoc#zk-leadership,Leadership event handling>> for more information.
|
|
|
|
[[x5.3-mqtt]]
|
|
=== MQTT Changes
|
|
|
|
The inbound channel adapter can now be configured to provide user control over when a message is acknowledged as being delivered.
|
|
See <<./mqtt.adoc#mqtt-ack-mode,Manual Acks>> for more information.
|
|
|
|
The outbound adapter now publishes a `MqttConnectionFailedEvent` when a connection can't be created, or is lost.
|
|
Previously, only the inbound adapter did so.
|
|
See <<./mqtt.adoc#mqtt-events,MQTT Events>>.
|
|
|
|
[[x5.3-sftp]]
|
|
=== (S)FTP Changes
|
|
|
|
The `FileTransferringMessageHandler` (for FTP and SFTP, for example) in addition to `File`, `byte[]`, `String` and `InputStream` now also supports an `org.springframework.core.io.Resource`.
|
|
See <<./sftp.adoc#sftp,SFTP Support>> and <<./ftp.adoc#ftp,FTP Support>> for more information.
|
|
|
|
[[x5.3-file]]
|
|
=== File Changes
|
|
|
|
The `FileSplitter` doesn't require a Jackson processor (or similar) dependency any more for the `markersJson` mode.
|
|
It uses a `SimpleJsonSerializer` for a straightforward string representation of the `FileSplitter.FileMarker` instances.
|
|
See <<./file.adoc#file-splitter,FileSplitter>> for more information.
|