После того, как вы вызвали функцию split, ваш маршрут делится на 3 пути, каждый метод или маршрут, выполняемый после этого, применяются к каждому процессу.
В каждом способе обработки метод разделения добавляет CamelSplitIndex свойство.
Так что этот код должен работать
from("timer://poll?period=10000").process(new Processor(){
public void process(Exchange exchange){
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
exchange.getIn().setBody(list, ArrayList.class);
}
}).split(body()).log(body().toString()).to("file:some/dir?fileName=${header.CamelSplitIndex}");
Это второй пример с xml-файлом и xpath.
Мы предполагаем, что вы хотите использовать xml для каждого узла order с именем элемента внутри:
<orders>
<order>
<name>Order 1</name>
</order>
<order>
<name>Order 2</name>
</order>
</order>
Мы предполагаем, что мы хотим разбить этот XML-файл на 2 файла
from("file://repo-source").split(xpath("//orders/order")).setHeader("orderName", xpath("/order/name").stringResult()).to("file://repo?fileName=${header.orderName}.xml");