Динамический от (URI) в Camel

Я хотел бы создать from(URI) во время выполнения. Я использую twitter-компонент для получения твитов временной шкалы пользователя. Имя пользователя, которого я хотел бы получить из тела входящего сообщения.

from("direct:twitterinternal")   // body contains username as string
    .from("twitter://timeline/user?type=direct&user=" + "${body}")

Предлагает ли camel возможность создавать URI во время выполнения?


person Interfaced    schedule 17.05.2015    source источник
comment
тот же вопрос с решениями в stackoverflow.com/questions/32368961/   -  person berhauz    schedule 05.09.2016


Ответы (2)


Обычно я использую шаблон recipientList и простой язык выражений для динамических маршрутов производителей...

from("direct:twitterinternal")
    .recipientList(simple("twitter://timeline/user?type=direct&user=" + "${body}"))

в противном случае для динамического потребления у вас есть 2 варианта:

person Ben ODay    schedule 17.05.2015
comment
Спасибо за ответ!! когда я использую список получателей, как вы объяснили, компонент твиттера действует как производитель и публикует тело как твит на собственной временной шкале. - person Interfaced; 17.05.2015
comment
да, это для создания... если вы хотите, чтобы потребитель, который использует сообщение, запускал его, вам нужно будет использовать обогатитель контента - person Ben ODay; 18.05.2015
comment
в документации Content Enricher я нашел следующее утверждение: pollEnrich делает не имеет доступа к каким-либо данным из текущего Exchange, что означает, что при опросе он не может использовать ни один из существующих заголовков, которые вы могли установить на Exchange. Например, вы не можете установить имя файла в заголовке Exchange.FILE_NAME и использовать pollEnrich для использования только этого файла. Для этого вы должны указать имя файла в URI конечной точки. Насколько я понимаю, динамические URI не поддерживаются (поскольку они генерируются при компиляции кода). Я прав? - person Interfaced; 18.05.2015
comment
API rich() может использовать данные из биржи... но не для динамических URI (в любом случае, пока нет, см. issues.apache.org/jira/browse/CAMEL-4596)... Я думаю, что вы застряли с потребителем опроса (camel.apache.org/polling-consumer.html) и динамическое создание URI... - person Ben ODay; 18.05.2015
comment
в противном случае вы всегда можете программно добавлять/удалять маршруты во время выполнения на основе пользовательского ввода и т. д. - person Ben ODay; 18.05.2015

Верблюд 2.16 или выше? Попробуйте toD.

http://camel.apache.org/message-endpoint.html

person rapt    schedule 29.10.2015
comment
Разве это не для потребителя? - person Souciance Eqdam Rashti; 10.02.2016