2.6. グローバルエンドポイント、データ形式、Bean の追加

概要

一部のルートは、グローバルエンドポイント、グローバルデータ形式、またはグローバル Bean によって提供される共有設定に依存しています。ルートエディターの Configurations タブを使用して、プロジェクトのルーティングコンテキストファイルにグローバル要素を追加できます。

ルーティングコンテキストファイルにグローバル要素を追加するには、以下を実行します。

  1. ルートエディターでルーティングコンテキストファイルを開きます。
  2. グローバル設定がある場合は、ルートエディターの下部にある Configurations タブをクリックしてそれを表示します。

    ConfigurationsView
  3. Add をクリックして、Create a new global element ダイアログボックスを開きます。

    CnfigsVAddButton

    オプションは次のとおりです。

グローバルエンドポイントの追加

  1. Create a new global element ダイアログボックスで Endpoint を選択し、OK をクリックして Select component ダイアログボックスを開きます。

    CnfigsVSelectCamComponent1
    注記

    デフォルトでは、Select component ダイアログボックスが開き、Show only palette components オプションが有効になっています。使用可能なすべてのコンポーネントを表示するには、このオプションのチェックを外します。

    注記

    Grouped by categories オプションは、コンポーネントをタイプ別にグループ化します。

    CnfigsVSelectCamComponentGrouped
  2. Select component ダイアログで Camel コンポーネントのリストをスクロールして、コンテキストファイルに追加するコンポーネントを見つけて選択し、次に Id フィールドにその ID を入力します。

    CnfigsVCamComponentSelected

    この例では、JMS コンポーネントが選択され、myJMSId の値になります。

  3. Finish をクリックします。

    CnfigsVmyEndptAdded2

    これで、必要に応じて Properties ビューでプロパティーを設定できるようになりました。

    ツールによって、[globalEndptSelect]でコンポーネントの Id フィールドに入力した値が Id に自動入力されます。この例では、Camel はコンポーネントのスキーマ (ここでは jms:) で始まる uri (必須フィールド) を構築しますが、destinationNamedestinationType を指定してコンポーネントの uri を完了する必要があります。

    注記

    JMS コンポーネントの場合、宛先のタイプはデフォルトで queue に設定されます。このデフォルト値は、Destination Name (必須フィールド) に値を入力するまで、Details ページの uri フィールドに表示されません。

  4. コンポーネントの URI を完了するには、Advanced をクリックします。
  5. Destination Name フィールドに、宛先エンドポイントの名前を入力します (例: FOO.BAR)。Destination Type フィールドにエンドポイント宛先のタイプを入力します (例: queuetopictemp:queue、または temp:topic)。

    JMSCompAdvanPathProp

    Properties ビューの Details タブと Advanced タブから、特定のコンポーネントの設定に使用できるすべてのプロパティーにアクセスできます。

  6. Consumer (advanced) タブをクリックします。

    JMSCompConsumerAdvanProps2

    プロパティーの Eager Loading Of PropertiesExpose Listener Session を有効にします。

  7. ルートエディターで Source タブに切り替えて、最初のルート要素の前にツールがコンテキストファイル (この例では、設定された JMS エンドポイント) に追加したコードを確認します。

    CnfigsEndptSourceView
  8. 完了したら、メニューバーで FileSave を選択して変更を保存します。

グローバルデータ形式の追加

  1. Create a new global element ダイアログボックスで、Data Format を選択し、OK をクリックして Create a global Data Format ダイアログボックスを開きます。

    CnfigsVCreateGlobalDF1

    データフォーマットのデフォルトは、利用可能なフォーマットリストの一番上の avro です。

  2. Data Format ドロップダウンメニューを開き、xmljson などの形式を選択します。
  3. Id フィールドに、フォーマットの名前を入力します (例: myDataFormat)。

    CnfigsVCreateGlobalDF2
  4. Finish をクリックします。

    CnfigsVEditGlobalDFprops1
  5. Properties ビューで、プロジェクトに応じてプロパティー値を設定します。以下はその例です。

    CnfigsVEditGlobalDFprops2
  6. ルートエディターで、Source タブをクリックして、ツールがコンテキストファイルに追加したコードを確認します。この例では、設定された xmljson データ形式は最初のルート要素の前にあります。

    CnfigsVGlobalDFSourceV
  7. 完了したら、メニューバーで FileSave を選択して変更を保存します。

グローバル Bean の追加

グローバル Bean は、ルート内のどこからでも参照できるルート外の Bean 定義を有効にします。Bean コンポーネントをパレットからルートにコピーすると、Properties ビューの Ref ドロップダウンで定義済みのグローバル Bean を見つけることができます。Bean コンポーネントが参照するグローバル Bean を選択します。

グローバル Bean 要素を追加するには、以下を実行します。

  1. Create a new global element ウィンドウで、Bean を選択し、OK をクリックして Bean Definition ダイアログボックスを開きます。

    CnfigsVCreateGlobalBean1
  2. Id フィールドに、グローバル Bean の ID (例: TransformBean) を入力します。ID は、設定内で一意である必要があります。
  3. Bean クラスまたはファクトリー Bean を識別します。

    ファクトリー Bean を指定するには、ファクトリークラスが指定された別のグローバル Bean をすでに追加している必要があります。次に、そのグローバル Bean を選択して、グローバル Bean ファクトリーとして宣言できます。Bean ファクトリークラスの 1 つのインスタンスがランタイムにあります。他のグローバル Bean は、そのクラスのファクトリーメソッドを呼び出して、他のクラスの独自のインスタンスを作成できます。

    Class フィールドに入力するには、次のいずれかを実行します。

    • プロジェクトまたは参照プロジェクトにあるクラスの名前を入力します。
    • をクリックして、プロジェクトまたは参照されるプロジェクトのクラスに移動し、選択する。
    • + をクリックして新しい Bean クラスを定義し、それをグローバル Bean として追加します。
  4. 追加する Bean で 1 つ以上の引数が必要な場合、Constructor Arguments セクションで各因数に対して以下を実行します。

    1. Add をクリックします。
    2. 必要に応じて、Type フィールドに引数のタイプを入力します。デフォルトは java.lang.String です。
    3. Value フィールドに、引数の値を入力します。
    4. OK をクリックします。
  5. オプションで、グローバル Bean にアクセス可能な 1 つ以上のプロパティーを指定します。Bean Properties セクションで、プロパティーごとに以下を実行します。

    1. Add をクリックします。
    2. Name フィールドにプロパティー名を入力します。
    3. Value フィールドに、プロパティーの値を入力します。
    4. OK をクリックします。
  6. Finish をクリックして、グローバル Bean を設定に追加します。指定したグローバル Bean ID は、次のように Configurations タブに表示されます。

    CnfigsBeanInList
  7. Source タブに移動し、ツールがコンテキストファイルに追加した bean 要素を表示します。以下に例を示します。

    CnfigsBeanSourceV
  8. Configurations タブをクリックしてグローバル要素のリストに戻り、グローバル Bean を選択して、その標準プロパティーを Properties 次に例を示します。

    CnfigsBeanProperties
    注記

    グローバル Bean を追加したときに指定したプロパティーを表示または編集するには、Configurations タブで Bean を選択し、Edit をクリックします。

  9. 必要に応じてグローバル Bean プロパティーを設定します。

    • Depends-on は、このグローバル Bean の前に作成する必要がある Bean を識別するために使用できる文字列です。依存 Bean の ID (名前) を指定します。たとえば、TransformBean を追加し、Depends-onChangeCaseBean に設定すると、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 の破棄メソッドを指定または選択できます。
  10. 完了したら、メニューバーで FileSave を選択して変更を保存します。

グローバル要素の削除

以前にルーティングコンテキストに追加されたエンドポイント、データ形式、または Bean を削除する場合でも、手順は同じです。

注記

グローバル要素の削除を元に戻す操作は実行できません。設定に保持したいグローバル要素を誤って削除した場合、保存せずにコンテキストファイルを閉じることで削除を元に戻すことができる場合があります。これが不可能な場合は、誤って削除したグローバル要素を再度追加してください。

  1. Configurations タブで、削除するグローバル要素を選択します。

    たとえば、「グローバルデータ形式の追加」で追加したデータフォーマット myDataFormat を削除する場合は、以下のようになります。

    CnfigsVDFSelectDelete
  2. Delete をクリックします。

    グローバル要素 myDataFormatConfigurations タブから消えます。

  3. Source タブに切り替えて、ツールがルーティングコンテキストから XML コードを削除したことを確認します。

    CnfigsDelDFSourceV
  4. 完了したら、メニューバーで FileSave を選択して変更を保存します。

グローバル要素の編集

手順は、ルーティングコンテキストに追加したエンドポイント、データ形式、または Bean のプロパティーを変更する場合でも同じです。

通常、グローバル要素の ID は変更しません。グローバル要素が実行中のルートですでに使用されている場合、ID を変更すると、グローバル要素への参照が壊れることがあります。

  1. Configurations タブで、編集するグローバル要素を選択します。

    たとえば、「グローバルエンドポイントの追加」で追加したエンドポイント myJMS を編集するには、以下のように選択します。

    CnfigsVEndptEditSelect
  2. Edit をクリックします。

    CnfigsVEndptClickEdit

    Properties ビューで、必要に応じて要素のプロパティーを変更します。

  3. たとえば、AdvancedConsumer タブを開き、Concurrent Consumers の値を 2 に変更します。

    CnfigsEditEndpntConcurConsume2
  4. ルートエディターで、Source タブをクリックして、ツールがプロパティー concurrentConsumers=2 をルーティングコンテキストに追加したことを確認します。

    CnfigsVEndptEditSourceV
  5. 完了したら、メニューバーで FileSave を選択して変更を保存します。