Я только начал работать с приложением, использующим Apache Camel 2.15.3. Я новичок в Camel и пытаюсь понять, как отправляется сообщение и как оно выглядит между компонентами маршрута.
Маршруты в приложении настраиваются с помощью расширения spring xml. Вот пример того, как может выглядеть один из маршрутов.
<route id="register">
<from uri="{{in.queue}}"/>
<enrich uri="direct:getSequenceNumber" strategyRef="sequenceNumb"/>
<to uri="bean:extractor"/>
<to uri="bean:mover"/>
<to uri="bean:normalizer"/>
<to uri="bean:logger"/>
<to uri="bean:packager"/>
<split parallelProcessing="true">
<simple>${body}</simple>
<to uri="{{out.queue}}"/>
</split>
</route>
Сначала небольшой терминологический вопрос: как называются промежуточные компоненты в этих примерах? Конечные точки? Компоненты? Или что-то другое? Прямо сейчас я называю их компонентами.
Моя основная путаница сейчас заключается в том, чтобы понять, что получает ввод и что передается от одного компонента к другому. В этом случае все компоненты являются javabeans с одним общедоступным методом. Иногда метод имеет возвращаемый тип void, а иногда возвращает некоторый объект. Например, String, List, верблюжий объект-сообщение, пользовательский объект проекта, который не реализует какой-либо верблюжий интерфейс. Иногда возвращаемый класс соответствует аргументу следующего bean-компонента, а иногда нет.
Я не хочу понимать, каковы ограничения на то, что возвращается и вводится в компоненты, и иметь возможность читать и предсказывать, как будет выглядеть сообщение внутри bean-компонента.
Я прочитал часть документации на веб-сайте Camel, и мой гуглинг не дал ничего полезного.
Есть ли у кого-нибудь объяснение или подсказки о том, что искать, или ссылка на какое-то место, объясняющее, что происходит?