5.1 および 5.2 間の変更

パッケージとクラスの変更

Pausable は o.s.i.endpoint から o.s.i.core に移動されました。

動作の変更

このバージョンの動作の変更については、移行ガイド [GitHub] (英語) を参照してください。

新規コンポーネント

RSocket サポート

spring-integration-rsocket モジュールは、RSocket プロトコルをサポートするチャネルアダプター実装で利用可能になりました。詳細については、RSocket サポートを参照してください。

レート制限アドバイスのサポート

RateLimiterRequestHandlerAdvice は、ハンドラーのリクエストレートを制限するために利用可能になりました。詳細については、レートリミッターのアドバイスを参照してください。

キャッシングアドバイスのサポート

CacheRequestHandlerAdvice は、ハンドラーでリクエスト結果をキャッシュするために使用できるようになりました。詳細については、キャッシングのアドバイスを参照してください。

Kotlin スクリプトのサポート

JSR223 スクリプトモジュールに Kotlin スクリプトのサポートが含まれるようになりました。詳細については、スクリプトのサポートを参照してください。

Flux Aggregator サポート

FluxAggregatorMessageHandler は、Project Reactor Flux 演算子に基づいたメッセージロジックのグループ化とウィンドウ化に使用できるようになりました。詳細については、Flux Aggregator を参照してください。

FTP/SFTP イベントパブリッシャー

FTP および SFTP モジュールは、特定の Apache Mina FTP/SFTP サーバーイベントのイベントリスナーを提供するようになりました。詳細については、Apache Mina FTP サーバーイベントおよび Apache Mina SFTP サーバーイベントを参照してください。

Avro Transformers

シンプルな Apache Avro トランスが提供されるようになりました。詳細については、Avro Transformers を参照してください。

一般的な変更

JsonToObjectTransformer は、逆直列化するターゲットオブジェクトのジェネリクスをサポートするようになりました。詳細については、JSONTransformers を参照してください。

splitter は、discardChannel 構成オプションをサポートするようになりました。詳細については、スプリッターを参照してください。

コントロールバスは Pausable (Lifecycle の拡張)操作を処理できるようになりました。詳細については、制御バスを参照してください。

出力メッセージのヘッダーをマージおよび計算するために、アグリゲーターコンポーネントに Function<MessageGroup, Map<String, Object>> 戦略が導入されました。詳細については、アグリゲータープログラミングモデルを参照してください。

フレームワークでスローされるすべての MessageHandlingException には、エンドユーザーコードが関与しない場合に構成パーツをバックトラッキングするための Bean リソースとソースが含まれています。詳細については、エラー処理を参照してください。

エンドユーザーエクスペリエンスを向上させるために、Java DSL は、ゲートウェイインターフェースでフローを開始するためのコンフィグレーターバリアントを提供するようになりました。詳細については、IntegrationFlows.from(Class<?> serviceInterface, Consumer<GatewayProxySpec> endpointConfigurer) JavaDocs を参照してください。また、MethodArgsHolder は、GatewayProxyFactoryBean のすべての式の評価コンテキストのルートオブジェクトになりました。#args および #method 評価コンテキスト変数は廃止されました。詳細については、メッセージングゲートウェイを参照してください。

AMQP の変更

タイムアウト内にパブリッシャーの確認が受信されない場合、"nack" を合成するように送信エンドポイントを構成できるようになりました。詳細については、送信チャネルアダプターを参照してください。

受信チャネルアダプターは、バッチフラグメントごとに個別のメッセージを受信する代わりに、List<?> ペイロードとしてバッチメッセージを受信できるようになりました。詳細については、バッチメッセージを参照してください。

発信者の確認(確認)が受信されるまで、呼び出し元のスレッドをブロックするように送信チャネルアダプターを構成できるようになりました。詳細については、送信チャネルアダプターを参照してください。

ファイルの変更

リモートファイルのフィルタリングに対するいくつかの改善が行われました。詳細については、リモート永続ファイルリストフィルターを参照してください。

TCP の変更

ByteArrayLengthHeaderSerializer で使用される長さヘッダーには、ペイロードに加えてヘッダーの長さを含めることができます。詳細については、メッセージ境界 (シリアライザーとデシリアライザー) を参照してください。

TcpNioServerConnectionFactory を使用する場合、既存の接続からの読み取りよりも新しい接続の受け入れが優先されますが、構成は可能です。詳細については、ノンブロッキング I/O について (NIO) を参照してください。

送信ゲートウェイには、新しいプロパティ closeStreamAfterSend があります。リクエスト / 応答ごとに新しい接続を使用すると、接続を閉じずに EOF がサーバーに通知されます。これは、データの区切り文字の代わりに EOF を使用してメッセージの終わりを通知するサーバーに役立ちます。詳細については、TCP ゲートウェイを参照してください。

クライアント接続ファクトリは、connectTimeout をサポートするようになりました。これにより、その時間に接続が確立されなかった場合に例外がスローされます。詳細については、 TCP 接続ファクトリを参照してください。

SoftEndOfStreamException は、IOException を継承する代わりに RuntimeException になりました。

メールの変更

AbstractMailReceiver には autoCloseFolder オプション(デフォルトでは true)があり、フェッチ後の自動フォルダークローズを無効にしますが、ダウンストリームインタラクションの代わりに IntegrationMessageHeaderAccessor.CLOSEABLE_RESOURCE ヘッダーを設定します。詳細については、メール受信チャネルアダプターを参照してください。

HTTP の変更

HTTP 受信エンドポイントは、リクエストペイロードの検証をサポートするようになりました。詳細については、HTTP サポートを参照してください。

WebFlux の変更

WebFluxRequestExecutingMessageHandler は、リクエストメッセージ payload として PublisherResourceMultiValueMap をサポートするようになりました。WebFluxInboundEndpoint は、リクエストペイロードの検証をサポートするようになりました。詳細については、WebFlux サポートを参照してください。

MongoDb の変更

MongoDbMessageStore をカスタムコンバーターで構成できるようになりました。詳細については、MongoDB サポートを参照してください。

ルーターの変更

チャンネル Bean 名としてチャンネルキーへのフォールバックを無効にできるようになりました。詳細については、動的ルーターを参照してください。

FTP/SFTP の変更

RotatingServerAdvice は、RotationPolicy とその StandardRotationPolicy から切り離されました。

ホスト / ポートおよびディレクトリを含むリモートファイル情報は、AbstractInboundFileSynchronizingMessageSource および AbstractRemoteFileStreamingMessageSource 実装のメッセージヘッダーに含まれるようになりました。また、この情報は、AbstractRemoteFileOutboundGateway 実装の読み取り操作結果のヘッダーに含まれます。FTP 送信エンドポイントは、アップロードされたファイルの権限を変更するために chmod をサポートするようになりました。(バージョン 4.3 以降、SFTP はすでにサポートしています)。詳細については、FTP(S) サポートおよび SFTP サポートを参照してください。