2.6. グローバルエンドポイント、データ形式、Bean の追加
概要
一部のルートは、グローバルエンドポイント、グローバルデータ形式、またはグローバル Bean によって提供される共有設定に依存しています。ルートエディターの Configurations タブを使用して、プロジェクトのルーティングコンテキストファイルにグローバル要素を追加できます。
ルーティングコンテキストファイルにグローバル要素を追加するには、以下を実行します。
- ルートエディターでルーティングコンテキストファイルを開きます。
グローバル設定がある場合は、ルートエディターの下部にある Configurations タブをクリックしてそれを表示します。
Add をクリックして、Create a new global element ダイアログボックスを開きます。
オプションは次のとおりです。
- エンドポイント: 「グローバルエンドポイントの追加」 を参照してください。
- データ形式: 「グローバルデータ形式の追加」 を参照してください。
- Bean: 「グローバル Bean の追加」 を参照してください。
グローバルエンドポイントの追加
Create a new global element ダイアログボックスで Endpoint を選択し、OK をクリックして Select component ダイアログボックスを開きます。
注記デフォルトでは、Select component ダイアログボックスが開き、Show only palette components オプションが有効になっています。使用可能なすべてのコンポーネントを表示するには、このオプションのチェックを外します。
注記Grouped by categories オプションは、コンポーネントをタイプ別にグループ化します。
Select component ダイアログで Camel コンポーネントのリストをスクロールして、コンテキストファイルに追加するコンポーネントを見つけて選択し、次に Id フィールドにその ID を入力します。
この例では、JMS コンポーネントが選択され、
myJMS
が Id の値になります。Finish をクリックします。
これで、必要に応じて Properties ビューでプロパティーを設定できるようになりました。
ツールによって、[globalEndptSelect]でコンポーネントの
Id
フィールドに入力した値が Id に自動入力されます。この例では、Camel はコンポーネントのスキーマ (ここではjms:
) で始まるuri
(必須フィールド) を構築しますが、destinationName と destinationType を指定してコンポーネントの uri を完了する必要があります。注記JMS コンポーネントの場合、宛先のタイプはデフォルトで
queue
に設定されます。このデフォルト値は、Destination Name (必須フィールド) に値を入力するまで、Details ページのuri
フィールドに表示されません。- コンポーネントの URI を完了するには、Advanced をクリックします。
Destination Name フィールドに、宛先エンドポイントの名前を入力します (例:
FOO.BAR
)。Destination Type フィールドにエンドポイント宛先のタイプを入力します (例:queue
、topic
、temp:queue
、またはtemp:topic
)。Properties ビューの Details タブと Advanced タブから、特定のコンポーネントの設定に使用できるすべてのプロパティーにアクセスできます。
Consumer (advanced) タブをクリックします。
プロパティーの Eager Loading Of Properties と Expose Listener Session を有効にします。
ルートエディターで Source タブに切り替えて、最初のルート要素の前にツールがコンテキストファイル (この例では、設定された JMS エンドポイント) に追加したコードを確認します。
-
完了したら、メニューバーで File
Save を選択して変更を保存します。
グローバルデータ形式の追加
Create a new global element ダイアログボックスで、Data Format を選択し、OK をクリックして Create a global Data Format ダイアログボックスを開きます。
データフォーマットのデフォルトは、利用可能なフォーマットリストの一番上の
avro
です。-
Data Format ドロップダウンメニューを開き、
xmljson
などの形式を選択します。 Id フィールドに、フォーマットの名前を入力します (例: myDataFormat)。
Finish をクリックします。
Properties ビューで、プロジェクトに応じてプロパティー値を設定します。以下はその例です。
ルートエディターで、Source タブをクリックして、ツールがコンテキストファイルに追加したコードを確認します。この例では、設定された xmljson データ形式は最初のルート要素の前にあります。
-
完了したら、メニューバーで File
Save を選択して変更を保存します。
グローバル Bean の追加
グローバル Bean は、ルート内のどこからでも参照できるルート外の Bean 定義を有効にします。Bean コンポーネントをパレットからルートにコピーすると、Properties ビューの Ref ドロップダウンで定義済みのグローバル Bean を見つけることができます。Bean コンポーネントが参照するグローバル Bean を選択します。
グローバル Bean 要素を追加するには、以下を実行します。
Create a new global element ウィンドウで、Bean を選択し、OK をクリックして Bean Definition ダイアログボックスを開きます。
- Id フィールドに、グローバル Bean の ID (例: TransformBean) を入力します。ID は、設定内で一意である必要があります。
Bean クラスまたはファクトリー Bean を識別します。
ファクトリー Bean を指定するには、ファクトリークラスが指定された別のグローバル Bean をすでに追加している必要があります。次に、そのグローバル Bean を選択して、グローバル Bean ファクトリーとして宣言できます。Bean ファクトリークラスの 1 つのインスタンスがランタイムにあります。他のグローバル Bean は、そのクラスのファクトリーメソッドを呼び出して、他のクラスの独自のインスタンスを作成できます。
Class フィールドに入力するには、次のいずれかを実行します。
- プロジェクトまたは参照プロジェクトにあるクラスの名前を入力します。
- … をクリックして、プロジェクトまたは参照されるプロジェクトのクラスに移動し、選択する。
- + をクリックして新しい Bean クラスを定義し、それをグローバル Bean として追加します。
追加する Bean で 1 つ以上の引数が必要な場合、Constructor Arguments セクションで各因数に対して以下を実行します。
- Add をクリックします。
-
必要に応じて、Type フィールドに引数のタイプを入力します。デフォルトは
java.lang.String
です。 - Value フィールドに、引数の値を入力します。
- OK をクリックします。
オプションで、グローバル Bean にアクセス可能な 1 つ以上のプロパティーを指定します。Bean Properties セクションで、プロパティーごとに以下を実行します。
- Add をクリックします。
- Name フィールドにプロパティー名を入力します。
- Value フィールドに、プロパティーの値を入力します。
- OK をクリックします。
Finish をクリックして、グローバル Bean を設定に追加します。指定したグローバル Bean ID は、次のように Configurations タブに表示されます。
Source タブに移動し、ツールがコンテキストファイルに追加した
bean
要素を表示します。以下に例を示します。Configurations タブをクリックしてグローバル要素のリストに戻り、グローバル Bean を選択して、その標準プロパティーを Properties 次に例を示します。
注記グローバル Bean を追加したときに指定したプロパティーを表示または編集するには、Configurations タブで Bean を選択し、Edit をクリックします。
必要に応じてグローバル Bean プロパティーを設定します。
-
Depends-on は、このグローバル Bean の前に作成する必要がある Bean を識別するために使用できる文字列です。依存 Bean の ID (名前) を指定します。たとえば、
TransformBean
を追加し、Depends-on をChangeCaseBean
に設定すると、ChangeCaseBean
を作成する必要があり、TransformBean
を作成できます。Bean が破棄されると、TransformBean
が最初に破棄されます。 - Factory-method は、グローバル Bean がファクトリークラスである場合にのみ役立ちます。この状況では、Bean が参照されるときに呼び出される静的ファクトリーメソッドを指定または選択します。
-
スコープは
singleton
またはprototype
です。デフォルトはsingleton
で、Bean が呼び出されるたびに Camel が同じ Bean のインスタンスを使用することを示します。Bean が呼び出されるたびに Camel が Bean の新規インスタンスを作成するようにするには、prototype
を指定します。 -
init-method: Bean の参照時に呼び出す Bean の
init()
メソッドを指定または選択できます。 - Destroy-method を使用すると、Bean によって実行される処理が完了したときに呼び出す Bean の破棄メソッドを指定または選択できます。
-
Depends-on は、このグローバル Bean の前に作成する必要がある Bean を識別するために使用できる文字列です。依存 Bean の ID (名前) を指定します。たとえば、
-
完了したら、メニューバーで File
Save を選択して変更を保存します。
グローバル要素の削除
以前にルーティングコンテキストに追加されたエンドポイント、データ形式、または Bean を削除する場合でも、手順は同じです。
グローバル要素の削除を元に戻す操作は実行できません。設定に保持したいグローバル要素を誤って削除した場合、保存せずにコンテキストファイルを閉じることで削除を元に戻すことができる場合があります。これが不可能な場合は、誤って削除したグローバル要素を再度追加してください。
Configurations タブで、削除するグローバル要素を選択します。
たとえば、「グローバルデータ形式の追加」で追加したデータフォーマット
myDataFormat
を削除する場合は、以下のようになります。Delete をクリックします。
グローバル要素
myDataFormat
は Configurations タブから消えます。Source タブに切り替えて、ツールがルーティングコンテキストから XML コードを削除したことを確認します。
-
完了したら、メニューバーで File
Save を選択して変更を保存します。
グローバル要素の編集
手順は、ルーティングコンテキストに追加したエンドポイント、データ形式、または Bean のプロパティーを変更する場合でも同じです。
通常、グローバル要素の ID は変更しません。グローバル要素が実行中のルートですでに使用されている場合、ID を変更すると、グローバル要素への参照が壊れることがあります。
Configurations タブで、編集するグローバル要素を選択します。
たとえば、「グローバルエンドポイントの追加」で追加したエンドポイント
myJMS
を編集するには、以下のように選択します。Edit をクリックします。
Properties ビューで、必要に応じて要素のプロパティーを変更します。
たとえば、Advanced
Consumer タブを開き、Concurrent Consumers の値を 2
に変更します。ルートエディターで、Source タブをクリックして、ツールがプロパティー
concurrentConsumers=2
をルーティングコンテキストに追加したことを確認します。-
完了したら、メニューバーで File
Save を選択して変更を保存します。