2015-04-30 2 views
3

Могу ли я написать свои собственные методы определения процессора в Camel и использовать это в моем маршруте, как показано ниже?Написание пользовательских методов в Java DSL для маршрутов верблюдов apache

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

от реализуется в RouteDefinition и к реализован в ProcessorDefinition. Например, если я хочу реализовать метод setTimeOut и использовать его в java DSL, как я могу это сделать?

PS: Я не хочу передавать timeOut как параметр запроса Httpclient для HttpUri.

Может ли кто-нибудь помочь в этом?

ответ

1

Нет, вы не можете этого сделать.

Исправлены методы/eips, которые вы можете использовать в форме DSL Java. Для этого необходимо расширить RouteBuilder, что позволяет добавлять новые методы к новым методам запуска. Вы не можете добавить setTimeOut, который может работать вместе с to и т. Д.

Вам нужно будет добавить код в camel-core и перекомпилировать его, что не рекомендуется.

Однако вы можете реализовать процессор, а затем назовите его SetTimeout, а затем использовать .process

Processor setTimeout = new MySetTimeout(1000); 

from 
    .to 
    .process(setTimeout); 

И затем использовать его в качестве процессора от метода .process.

+0

Спасибо @Claus Ibsen –

Смежные вопросы