路由器上运行java_在Java中运行时添加camel路由

小编典典

请参阅此单元测试以获取完整示例…

/ **

*根据一个或多个许可给Apache软件基金会(ASF)

*贡献者许可协议。请参阅随发布的NOTICE文件

*此项工作提供有关版权所有权的更多信息。

* ASF在Apache许可证2.0版下将此文件许可给您

*(“许可证”);除非遵守以下规定,否则您不得使用此文件

*许可证。您可以在以下位置获得许可的副本:

*

* http://www.apache.org/licenses/LICENSE-2.0

*

*除非适用法律要求或书面同意,否则软件

*根据许可协议分发的内容是按“原样”分发的,

*不作任何明示或暗示的保证或条件。

*有关特定语言的管理权限,请参阅许可证

*许可中的限制。

* /

包org.apache.camel.builder;

导入org.apache.camel.CamelContext;

导入org.apache.camel.ContextTestSupport;

/ **

*测试如何使用RouteBuilder在运行时添加路由

*

* @版本

* /

public class AddRoutesAtRuntimeTest extends ContextTestSupport {

public void testAddRoutesAtRuntime() throws Exception {

getMockEndpoint("mock:start").expectedMessageCount(1);

template.sendBody("direct:start", "Hello World");

assertMockEndpointsSatisfied();

assertEquals(1, context.getRoutes().size());

getMockEndpoint("mock:foo").expectedMessageCount(1);

context.addRoutes(new MyDynamcRouteBuilder(context, "direct:foo", "mock:foo"));

template.sendBody("direct:foo", "Bye Camel");

assertMockEndpointsSatisfied();

assertEquals(2, context.getRoutes().size());

getMockEndpoint("mock:bar").expectedMessageCount(1);

context.addRoutes(new MyDynamcRouteBuilder(context, "direct:bar", "mock:bar"));

template.sendBody("direct:bar", "Hi Camel");

assertMockEndpointsSatisfied();

assertEquals(3, context.getRoutes().size());

}

@Override

protected RouteBuilder createRouteBuilder() throws Exception {

return new RouteBuilder() {

@Override

public void configure() throws Exception {

// here is an existing route

from("direct:start").to("mock:start");

}

};

}

/**

* This route builder is a skeleton to add new routes at runtime

*/

private static final class MyDynamcRouteBuilder extends RouteBuilder {

private final String from;

private final String to;

private MyDynamcRouteBuilder(CamelContext context, String from, String to) {

super(context);

this.from = from;

this.to = to;

}

@Override

public void configure() throws Exception {

from(from).to(to);

}

}

}

2020-04-18

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值