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 以降で利用可能

propertyPrefixpropertySuffix 設定プロパティーは、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}}");
    }
});

システムプロパティー stagedev (メッセージは mock:result1 にルーティングされます) または test (メッセージは mock:result2 にルーティングされます) に変更することで、ターゲットエンドポイントを変更できます。