263.7. ロケーションでのシステム変数と環境変数の使用
Camel 2.7 以降で利用可能
このロケーションでは、JVM システムプロパティーと OS 環境変数のプレースホルダーの使用がサポートされるようになりました。
以下に例を示します。
location=file:${karaf.home}/etc/foo.properties
上記のロケーションでは、キー karaf.home
を持つ JVM システムプロパティーを使用するファイルスキームを使用してロケーションを定義しました。
代わりに OS 環境変数を使用するには、env を接頭辞として付ける必要があります。
location=file:${env:APP_HOME}/etc/foo.properties
APP_HOME は
OS 環境です。
次のように、複数のプレースホルダーを同じロケーションに配置できます。
location=file:${env:APP_HOME}/etc/${prop.name}.properties
#=== システム変数と環境変数を使用してプロパティーの接頭辞と接尾辞を設定する
Camel 2.12.5、2.13.3、2.14.0 以降で利用可能
propertyPrefix
、propertySuffix
設定プロパティーは、JVM システムプロパティーおよび OS 環境変数のプレースホルダーの使用をサポートします。
たとえば、PropertiesComponent
が次のプロパティーファイルで設定されている場合:
dev.endpoint = result1 test.endpoint = result2
次に、次のルート定義を使用します。
PropertiesComponent pc = context.getComponent("properties", PropertiesComponent.class); pc.setPropertyPrefix("${stage}."); // ... context.addRoutes(new RouteBuilder() { @Override public void configure() throws Exception { from("direct:start").to("properties:mock:{{endpoint}}"); } });
システムプロパティー stage
を dev
(メッセージは mock:result1
にルーティングされます) または test
(メッセージは mock:result2
にルーティングされます) に変更することで、ターゲットエンドポイントを変更できます。