2.6. メッセージコンテンツの変換
概要
Apache Camel は、メッセージコンテンツを変換するためのさまざまなアプローチをサポートしています。Apache Camel は、メッセージコンテンツを変更するためのシンプルなネイティブ API に加えて、いくつかの異なるサードパーティーライブラリーや変換のための標準とのインテグレーションをサポートしています。
2.6.1. シンプルなメッセージ変換
概要
Java DSL にはビルトインの API があり、送受信メッセージのシンプルな変換を実行できます。たとえば、例2.1「受信メッセージのシンプルな変換」 に示すルールは、受信メッセージのボディー部の末尾にテキスト World!
を追加します。
例2.1 受信メッセージのシンプルな変換
from("SourceURL").setBody(body().append(" World!")).to("TargetURL");
ここで、setBody()
コマンドは受信メッセージボディーのコンテンツを置き換えます。
シンプルな変換の API
以下の API クラスを使用して、ルーターのルールによってメッセージコンテンツのシンプルな変換を実行できます。
-
org.apache.camel.model.ProcessorDefinition
-
org.apache.camel.builder.Builder
-
org.apache.camel.builder.ValueBuilder
ProcessorDefinition クラス
org.apache.camel.model.ProcessorDefinition
クラスは、ルーターのルールに直接挿入できる DSL コマンドを定義しています (例: 例2.1「受信メッセージのシンプルな変換」 の setBody()
コマンド)。表2.5「ProcessorDefinition クラスの変換メソッド」 は、メッセージコンテンツの変換に関係のある ProcessorDefinition
のメソッドを示しています。
メソッド | 説明 |
---|---|
| IN メッセージのボディーを指定の型に変換します。 |
| FAULT メッセージのヘッダーを削除するプロセッサーを追加します。 |
| IN メッセージ上のヘッダーを削除するプロセッサーを追加します。 |
| エクスチェンジプロパティーを削除するプロセッサーを追加します。 |
| IN メッセージのボディーをセットするプロセッサーを追加します。 |
| FAULT メッセージのボディーをセットするプロセッサーを追加します。 |
| FAULT メッセージにヘッダーをセットするプロセッサーを追加します。 |
| IN メッセージにヘッダーをセットするプロセッサーを追加します。 |
| IN メッセージにヘッダーをセットするプロセッサーを追加します。 |
| OUT メッセージにヘッダーをセットするプロセッサーを追加します。 |
| OUT メッセージにヘッダーをセットするプロセッサーを追加します。 |
| エクスチェンジプロパティーをセットするプロセッサーを追加します。 |
| エクスチェンジプロパティーをセットするプロセッサーを追加します。 |
| OUT メッセージのボディーをセットするプロセッサーを追加します。 |
| OUT メッセージのボディーをセットするプロセッサーを追加します。 |
Builder クラス
org.apache.camel.builder.Builder
クラスは、式または述語が想定される文脈でのメッセージコンテンツへのアクセスを提供します。つまり、Builder
のメソッドは通常 DSL コマンドの 引数 の中で呼び出されます (例: 例2.1「受信メッセージのシンプルな変換」 の body()
コマンド)。表2.6「Builder クラスのメソッド」 では、Builder
クラスで利用可能な static メソッドをまとめています。
メソッド | 説明 |
---|---|
| エクスチェンジのインバウンドボディーに対する述語および値ビルダーを返します。 |
| インバウンドメッセージのボディーを特定の型として、それに対する述語および値ビルダーを返します。 |
| 定数式を返します。 |
| エクスチェンジのフォールトボディーに対する述語および値ビルダーを返します。 |
| フォールトメッセージのボディーを特定の型として、それに対する述語および値ビルダーを返します。 |
| エクスチェンジのヘッダーに対する述語および値ビルダーを返します。 |
| エクスチェンジのアウトバウンドボディーに対する述語および値ビルダーを返します。 |
| アウトバウンドメッセージのボディーを特定の型として、それに対する述語および値ビルダーを返します。 |
| エクスチェンジのプロパティーに対する述語および値ビルダーを返します。 |
| 正規表現のすべての出現箇所を、指定した置換文字列で置き換える式を返します。 |
| 正規表現のすべての出現箇所を、指定した置換文字列で置き換える式を返します。 |
| 指定したエンドポイント URI にエクスチェンジを送信する式を返します。 |
| 指定のシステムプロパティーの式を返します。 |
| 指定のシステムプロパティーの式を返します。 |
ValueBuilder クラス
org.apache.camel.builder.ValueBuilder
クラスを使用すると、Builder
メソッドによって返される値を変更できます。つまり、 ValueBuilder
のメソッドは、メッセージコンテンツを変更するシンプルな方法を提供します。表2.7「ValueBuilder クラスの変更メソッド」 では、ValueBuilder
クラスで利用可能なメソッドをまとめています。この表では、呼び出された値を変更するために使用されるメソッドのみが示されています (詳細は API Reference ドキュメントを参照してください) 。
メソッド | 説明 |
---|---|
| 指定された値をこの式の文字列評価に追加します。 |
| 左辺の式に右辺の式の値が含まれた述語を作成します。 |
| 登録された型コンバーターを使用して、現在の値を指定の型に変換します。 |
| 登録された型コンバーターを使用して、現在の値を String に変換します。 |
| |
| |
| |
| |
|
現在の値が指定の |
|
現在の値が指定の |
|
現在の値が指定の |
| 現在の値が指定の型のインスタンスである場合、true を返します。 |
|
現在の値が指定の |
|
現在の値が指定の |
|
現在の値が指定の |
|
現在の値が |
|
現在の値が |
| |
| 述語の引数を否定にします。 |
| この式の文字列評価を指定された値に追加します。 |
| |
| 正規表現のすべての出現箇所を、指定した置換文字列で置き換えます。 |
| 正規表現のすべての出現箇所を、指定した置換文字列で置き換えます。 |
| 指定の正規表現を使用してこの式の文字列変換をトークン化します。 |
| 指定されたコンパレーターを使用して現在の値をソートします。 |
|
現在の値が |
| コンマのトークン区切り文字を使用してこの式の文字列変換をトークン化します。 |
| 指定のトークン区切り文字を使用してこの式の文字列変換をトークン化します。 |