7.2. プロパティーファイルを使用した Camel K インテグレーションの設定
実行時にコマンドラインでプロパティーファイルを指定すると、Camel K インテグレーションに複数のプロパティーを設定できます。たとえば、--p file my-integration.properties
プロパティープレースホルダーを使用してインテグレーションでプロパティーを定義する場合、{{my.items}}
のようにプロパティーファイルを使用してコマンドラインでプロパティー値を指定できます。
前提条件
手順
インテグレーションプロパティーファイルを定義します。以下は、
routing.properties
ファイルの簡単な例を示しています。# List of items for random generation items=*radiator *engine *door window # Marker to identify priority items priority-marker=*
プロパティーファイルに定義されたプロパティーを使用する Camel インテグレーションを開発します。次の
Routing.java
統合の例では、{{items}}
および{{priority-marker}}
プロパティープレースホルダーを使用しています。... from("timer:java?period=6000") .id("generator") .bean(this, "generateRandomItem({{items}})") .choice() .when().simple("${body.startsWith('{{priority-marker}}')}") .transform().body(String.class, item -> item.substring(priorityMarker.length())) .to("direct:priorityQueue") .otherwise() .to("direct:standardQueue"); ...
--property-file
オプションを指定してkamel run
コマンドを入力します。以下に例を示します。kamel run Routing.java --property-file routing.properties --dev
以下のような出力が返されます。
... [1] 2020-04-13 15:20:30.424 INFO [main] ApplicationRuntime - Listener org.apache.camel.k.listener.RoutesDumper@6e0dec4a executed in phase Started [1] 2020-04-13 15:20:31.461 INFO [Camel (camel-k) thread #1 - timer://java] priority - !!Priority item: engine [1] 2020-04-13 15:20:37.426 INFO [Camel (camel-k) thread #1 - timer://java] standard - Standard item: window [1] 2020-04-13 15:20:43.429 INFO [Camel (camel-k) thread #1 - timer://java] priority - !!Priority item: door ...