У меня есть bean-компонент, который создает объекты и отправляет их в очередь SEDA с помощью ProducerTemplate в Camel.
Отправляю тело и заголовок:
producerTemp.sendBodyAndHeader(document, "sourceSystem", sourceSys);
Здесь имя заголовка - sourceSystem
, а значение объекта заголовка - это ENUM (sourceSys
), который содержит источник объекта document
, содержащего несколько различных атрибутов.
Я хочу одновременно извлекать сообщения из очереди SEDA и отправлять их на разные конечные точки в зависимости от значения перечисления sourceSys.
Какой самый эффективный EIP в верблюде для его использования и есть ли у кого-нибудь пример использования Java DSL, я не уверен, как я могу проверить значение Enum?
Я думаю, что делаю что-то вроде этого:
from("seda:a")
.choice()
.when(header("foo").isEqualTo(SourceSysEnum.SYSTEM1))
.to("seda:b")
.when(header("foo").isEqualTo(SourceSysEnum.SYSTEM2))
.to("seda:c")
.otherwise()
.to("seda:d");
..?