250.26. すぐに使用できる機能の使用
Camel 2.14.1 以降で利用可能
Properties コンポーネントには、すぐに使用できる次の機能が含まれています
-
env
- OS 環境変数からプロパティーを検索する関数 -
sys
- Java JVM システムプロパティーからプロパティーを検索する関数 -
service
- サービス命名イディオムを使用して OS 環境変数からプロパティーを検索する関数 -
service.name
- Camel 2.16.1: ホスト名部分のみを返すサービス命名イディオムを使用して、OS 環境変数からプロパティーを検索する関数 -
service.port
- Camel 2.16.1: ポート部分のみを返すサービス命名イディオムを使用して、OS 環境変数からプロパティーを検索する関数
ご覧のとおり、これらの関数は、環境から値を簡単に検索できるようにすることを目的としています。これらはすぐに提供されるため、次のように簡単に使用できます。
<camelContext xmlns="http://camel.apache.org/schema/blueprint"> <route> <from uri="direct:start"/> <to uri="{`{env:SOMENAME}`}"/> <to uri="{`{sys:MyJvmPropertyName}`}"/> </route> </camelContext>
デフォルト値も使用できるため、プロパティーが存在しない場合は、以下に示すようにデフォルト値を定義できます。デフォルト値は log:foo
および log:bar
値です。
<camelContext xmlns="http://camel.apache.org/schema/blueprint"> <route> <from uri="direct:start"/> <to uri="{`{env:SOMENAME:log:foo}`}"/> <to uri="{`{sys:MyJvmPropertyName:log:bar}`}"/> </route> </camelContext>
service 関数は、OS 環境変数を使用して定義されたサービスをサービス命名イディオムを使用して検索し、hostname : port
を使用してサービスの場所を参照するためのものです。
- NAME_SERVICE_HOST
- NAME_SERVICE_PORT
つまり、サービスは _SERVICE_HOST
と _SERVICE_PORT
を接頭辞として使用します。したがって、サービスの名前が FOO の場合、OS 環境変数は次のように設定する必要があります。
export $FOO_SERVICE_HOST=myserver export $FOO_SERVICE_PORT=8888
たとえば、FOO サービスがリモート HTTP サービスの場合、Camel エンドポイント uri でサービスを参照し、HTTP コンポーネントを使用して HTTP 呼び出しを行うことができます。
<camelContext xmlns="http://camel.apache.org/schema/blueprint"> <route> <from uri="direct:start"/> <to uri="http://{`{service:FOO}`}/myapp"/> </route> </camelContext>
また、サービスが定義されていない場合は、デフォルト値を使用できます。たとえば、単体テストなどのために localhost でサービスを呼び出す場合などです。
<camelContext xmlns="http://camel.apache.org/schema/blueprint"> <route> <from uri="direct:start"/> <to uri="http://{`{service:FOO:localhost:8080}`}/myapp"/> </route> </camelContext>