在Java DSL中编写自定义方法用于apache camel路由

时间:2015-04-30 18:54:56

标签: java apache-camel dsl

我可以在Camel中编写自己的处理器定义方法,并在我的路径中使用它,如下所示吗?

from(uri)
.to("http://host:port/testData")
.**setTimeOut(long milliseconds)**

from是在RouteDefinition中实现的 to在ProcessorDefinition中实现。就像那样,如果我想实现setTimeOut方法并在java DSL中使用它,我该怎么做?

PS:我不想将timeOut作为Httpclient查询参数传递给HttpUri。

有人可以为此提供帮助吗?

1 个答案:

答案 0 :(得分:1)

不,你不能这样做。

您可以使用Java DSL的方法/ eips是固定的。要扩展这一点,需要扩展RouteBuilder,以便为新的起始方法添加新方法。您无法添加可与setTimeOut等一起使用的to

您需要将代码添加到camel-core,并重新编译它,这是不推荐的。

但是,您可以实现处理器,然后将其命名为setTimeout,然后使用.process

Processor setTimeout = new MySetTimeout(1000);

from
  .to
  .process(setTimeout);

然后将其用作.process方法的处理器。