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 サポートを参照してください。
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 を参照してください。
アグリゲーターアドバイスチェーン
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()
メソッドをサポートするようになりました。チャネルインターセプターを参照してください。