2.10.4. ルートポリシーファクトリー
ルートポリシーファクトリーの使用
Camel 2.14 から利用可能
すべてのルートにルートポリシーを使用する場合は、org.apache.camel.spi.RoutePolicyFactory
をファクトリーとして使用して、個々のルートに RoutePolicy
インスタンスを作成することができます。これは、すべてのルートに同じ種類のルートポリシーを使用する場合に使用することができます。そうすれば、ファクトリーの設定は 1 度だけで済み、作成されたすべてのルートにポリシーが割り当てられます。
CamelContext には、以下のようなファクトリーを追加するための API が用意されています。
context.addRoutePolicyFactory(new MyRoutePolicyFactory());
XML DSL では、ファクトリーで <bean>
を定義するだけです。
<bean id="myRoutePolicyFactory" class="com.foo.MyRoutePolicyFactory"/>
ファクトリーには、ルートポリシーを作成するための createRoutePolicy メソッドが含まれます。
/** * Creates a new {@link org.apache.camel.spi.RoutePolicy} which will be assigned to the given route. * * @param camelContext the camel context * @param routeId the route id * @param route the route definition * @return the created {@link org.apache.camel.spi.RoutePolicy}, or <tt>null</tt> to not use a policy for this route */ RoutePolicy createRoutePolicy(CamelContext camelContext, String routeId, RouteDefinition route);
ルートポリシーファクトリーはいくつでも持つことができます。addRoutePolicyFactory
を再度呼び出すか、他のファクトリーを XML で <bean>
と宣言します。