4.0 および 4.1 間の変更

アプリケーションに影響する可能性のある重要な変更については、移行ガイド [GitHub] (英語) を参照してください。wiki [GitHub] (英語) で 2.1 に戻るすべてのバージョンの移行ガイドを見つけることができます。

新規コンポーネント

バージョン 4.1 は、多くの新しいコンポーネントを追加しました。

Promise < ? > ゲートウェイ

メッセージングゲートウェイメソッドは、Reactor Promise 戻り型をサポートするようになりました。非同期ゲートウェイを参照してください。

WebSocket サポート

WebSocket モジュールが利用可能になりました。Spring WebSocket および Spring メッセージングモジュールに完全に基づいており、<inbound-channel-adapter> および <outbound-channel-adapter> を提供します。詳細については、WebSockets サポートを参照してください。

Scatter-Gather Enterprise Integration パターン

分散収集エンタープライズ統合パターンを実装しました。詳細については、スキャッターギャザーを参照してください。

ルーティングスリップパターン

ルーティングスリップ EIP パターンの実装を追加しました。詳細については、ルーティングスリップを参照してください。

べき等レシーバーパターン

XML の <idempotent-receiver> コンポーネントまたは Java 構成用の IdempotentReceiverInterceptor および IdempotentReceiver アノテーションを追加することにより、べき等レシーバーエンタープライズ統合パターンの実装を追加しました。詳細については、べき等レシーバーエンタープライズ統合パターンおよび Javadoc を参照してください。

ブーン JsonObjectMapper

JSON トランスフォーマーに Boon JsonObjectMapper を追加しました。詳細については、Transformer を参照してください。

Redis キューゲートウェイ

<redis-queue-inbound-gateway> および <redis-queue-outbound-gateway> コンポーネントを追加しました。Redis キュー受信ゲートウェイおよび Redis キュー送信ゲートウェイを参照してください。

PollSkipAdvice

PollSkipAdvice を追加しました。PollSkipAdvice は、<poller> の <advice-chain> 内で使用して、PollSkipStrategy で実装する何らかの条件によって現在のポーリングを抑制する(スキップする)かどうかを決定できます。詳細については、ポーラーを参照してください。

一般的な変更

このセクションでは、バージョン 4.0 からバージョン 4.1 への一般的な変更について説明します。

AMQP 受信エンドポイント、チャネル

メッセージリスナコンテナー(受信エンドポイントとチャネル)を使用する要素は、missing-queues-fatal 属性をサポートするようになりました。詳細については、AMQP サポートを参照してください。

AMQP 送信エンドポイント

AMQP 送信エンドポイントは、lazy-connect と呼ばれる新しいプロパティをサポートします(デフォルト: true)。true の場合、ブローカーへの接続は最初のメッセージが到着するまで確立されません(受信エンドポイントがなく、起動時に常に接続を確立しようとします)。false に設定すると、アプリケーションの起動時に接続の確立が試行されます。詳細については、AMQP サポートを参照してください。

SimpleMessageStore

SimpleMessageStore は、getMessageGroup() を呼び出すときにグループのコピーを作成しなくなりました。詳細については、"xref:message-store.adoc#sms-caution " を参照してください。

Web サービス送信ゲートウェイ: encode-uri

<ws:outbound-gateway/> は、リクエストを送信する前に URI オブジェクトのエンコードを無効にできる encode-uri 属性を提供するようになりました。

HTTP 受信チャネルアダプターとステータスコード

<http:inbound-channel-adapter> を status-code-expression で構成して、デフォルトの 200 OK ステータスを上書きできるようになりました。詳細については、HTTP 名前空間のサポートを参照してください。

MQTT アダプターの変更

複数のサーバーに接続するように MQTT チャネルアダプターを構成できるようになりました。たとえば、高可用性(HA)をサポートするためです。詳細については、MQTT サポートを参照してください。

MQTT メッセージ駆動型チャネルアダプターは、各サブスクリプションの QoS 設定の指定をサポートするようになりました。詳細については、受信(メッセージ駆動型)チャネルアダプターを参照してください。

MQTT 送信チャネルアダプターは非同期送信をサポートするようになり、配信が確認されるまでブロックされなくなりました。詳細については、送信チャネルアダプターを参照してください。

実行時にプログラムでトピックをサブスクライブおよびサブスクライブ解除できるようになりました。詳細については、受信(メッセージ駆動型)チャネルアダプターを参照してください。

FTP および SFTP アダプターの変更

FTP および SFTP 送信チャネルアダプターは、リモートファイルへの追加と、リモートファイルがすでに存在する場合の特定のアクションの実行をサポートするようになりました。リモートファイルテンプレートは、これと rmdir() および exists() もサポートするようになりました。さらに、リモートファイルテンプレートは、基礎となるクライアントオブジェクトへのアクセスを提供し、低レベル API へのアクセスを可能にします。

詳細については、FTP/FTPS アダプターおよび SFTP アダプターを参照してください。

スプリッターとイテレーター

Splitter コンポーネントは、出力メッセージを生成するための結果オブジェクトとして Iterator をサポートするようになりました。詳細については、スプリッターを参照してください。

アグリゲーター

Aggregator インスタンスは、新しい属性 expire-groups-upon-timeout をサポートするようになりました。詳細については、アグリゲーターを参照してください。

コンテンツエンリッチャーの改善

null-result-expression 属性を追加しました。これは、<enricher> が null を返す場合に評価されて返されます。<header> および <property> に追加できます。詳細については、コンテンツエンリッチャーを参照してください。

error-channel 属性を追加しました。これは、Exception が request-channel の下流で発生した場合にエラーフローを処理するために使用されます。これにより、濃縮に使用する代替オブジェクトを返すことができます。詳細については、コンテンツエンリッチャーを参照してください。

ヘッダーチャネルレジストリ

<header-enricher/> 要素の <header-channels-to-string/> 子要素は、チャネルマッピングを保持するヘッダーチャネルレジストリのデフォルト時間をオーバーライドできるようになりました。詳細については、ヘッダーチャネルレジストリを参照してください。

正常なシャットダウン

正常なシャットダウンアルゴリズムを改善しました。詳細については、正常なシャットダウンを参照してください。

RecipientListRouter の管理

RecipientListRouter は、実行時に受信者を構成するためのいくつかの管理操作を提供するようになりました。これにより、最初から <recipient> なしで <recipient-list-router> を構成できます。詳細については、RecipientListRouterManagement を参照してください。

AbstractHeaderMapper: NON_STANDARD_HEADERS トークン

AbstractHeaderMapper 実装は、デフォルトではマッピングされないユーザー定義ヘッダーをマッピングするために、追加の NON_STANDARD_HEADERS トークンを提供するようになりました。詳細については、AMQP メッセージヘッダーを参照してください。

AMQP チャネル: template-channel-transacted

AMQP MessageChannel インスタンスに template-channel-transacted 属性を導入しました。詳細については、AMQP-backed メッセージチャネルを参照してください。

syslog アダプター

デフォルトの syslog メッセージコンバーターには、ヘッダーを設定しながら、ペイロードに元のメッセージを保持するオプションがあります。詳細については、Syslog Inbound Channel Adapter を参照してください。

非同期ゲートウェイ

前述の Promise 戻り型に加えて、ゲートウェイメソッドは Spring Framework 4.0 で導入された ListenableFuture を返すようになりました。ゲートウェイで非同期処理を無効にして、ダウンストリームフローが Future を直接返すようにすることもできます。非同期ゲートウェイを参照してください。

アグリゲーターアドバイスチェーン

Aggregator および Resequencer は、<expire-advice-chain/> および <expire-transactional/> の子要素をサポートするようになり、forceComplete の操作を通知します。詳細については、XML を使用したアグリゲーターの構成を参照してください。

送信チャネルアダプターとスクリプト

<int:outbound-channel-adapter/> は、<script/> 子要素をサポートするようになりました。基礎となるスクリプトは、void 戻り値型または null を返す必要があります。Groovy サポートおよびスクリプトのサポートを参照してください。

リシーケンサーの変更

リシーケンサ内のメッセージグループがタイムアウトになった場合(group-timeout または MessageGroupStoreReaper を使用)、遅延到着メッセージはデフォルトですぐに破棄されるようになりました。リシーケンサーを参照してください。

オプションの POJO メソッドパラメーター

Spring Integration は Java 8 の Optional 型を一貫して処理するようになりました。Service Activator の構成を参照してください。

QueueChannel バックアップキュー型

QueueChannel がサポートする Queue type は、BlockingQueue からより一般的な Queue に変更されました。この変更により、外部 Queue 実装(たとえば、Reactor の PersistentQueue)を使用できます。QueueChannel の構成を参照してください。

ChannelInterceptor の変更

ChannelInterceptor は、追加の afterSendCompletion() および afterReceiveCompletion() メソッドをサポートするようになりました。チャネルインターセプターを参照してください。

IMAP PEEK

バージョン 4.1.1 以降、mail.[protocol].peek JavaMail プロパティを false ([protocol] は imap または imaps) に明示的に設定した場合の動作が変更されます。xref:changes-4.0-4.1.adoc#x4.1-mail-peek を参照してください。