Параметр «Подавить разделитель» в списке получателей Camel

У нас есть собственный процессор верблюда, который необходимо вызывать, а также динамически параметризовать из полезной нагрузки входящего запроса xpath, но URI процессора содержит «ЗАПЯТАЯ», поскольку он выполняет внутренний SQL-запрос.

<context id="mycontext">
   <from uri="timer://com.arpit.timer?period=1000&amp;delay=1000&amp;repeatCount=5&amp;fixedRate=false&amp;daemon=false"/>
    <setBody>
        <simple> "here goes sample XML payload "</simple>
    </setBody>
    <setheader headerName="val1">
        <xpath resultType="java.lang.String"> "here goes my xpath" </xpath>
    </setheader>
 <!-- Now I call my custom processor with URI containing comma -->
    <recipientList delimiter="%">
        <simple>Select col1, col2, col3 from tablex where id = '${header.val1}'</simple>
    </recipientList>
</context>

Теперь сценарий работает только тогда, когда мы указываем delimiter="%", в противном случае происходит сбой с ошибкой о невозможности найти конечную точку col2.

Есть ли способ подавить разделитель в СПИСОК ПОЛУЧАТЕЛЕЙ?

С уважением, Арпит.


person Robin    schedule 23.08.2013    source источник
comment
Прошел через класс org.apache.camel.processor.RecipientList и следующая строка кода в классе делает вид, что действительно не может быть этого подавления? public boolean sendToRecipientList(Exchange exchange, Object recipientList, AsyncCallback callback) { Iterator<Object> iter = ObjectHelper.createIterator(recipientList, delimiter); .......} Кто-нибудь может подтвердить правильность моего понимания?   -  person Robin    schedule 24.08.2013


Ответы (1)


Нет, вы не можете подавить разделитель. Хотя вы можете установить значение, которое не будет совпадать, например, такое как XXXXXXXXXXX или что-то еще.

Я зарегистрировал билет, чтобы разрешить это в будущем выпуске Camel: https://issues.apache.org/jira/browse/CAMEL-6665

person Claus Ibsen    schedule 24.08.2013