Учитывая простой маршрут, как этотЕсть ли способ сделать выходной файл потока: file? FileName = dynamic?
route.from("direct:foo")
.split()
.tokenize("\n")
.streaming()
.to("stream:file?fileName=target/streaming${header.count}.txt&closeOnDone=true");
который я тогда триггер с этим
@Test
public void splitAndStreamToFile() {
StringBuilder builder = new StringBuilder();
for(int i = 0; i < 500; i++) {
builder.append(i);
builder.append("\n");
}
for(int i = 0; i < 10; i++) {
template.sendBodyAndHeader(builder.toString(), "count", i);
}
}
я получаю один большой файл, который содержит в 10 раз 500 строк, в которых я бы надеялся иметь 10 файлов, содержат по 500 строк.
Другими словами, кажется, что fileName в конечной точке stream: file не является динамическим. Мне интересно, возможно ли это вообще? До сих пор мой google-фу не появился.
EDIT:
С ответом Клауса, я получил его на работу, как это:
route.from("direct:foo")
.split()
.tokenize("\n")
.streaming()
.recipientList(route.simple("stream:file?fileName=target/streaming${header.count}.txt&closeOnDone=true"));
Спасибо. Я все еще новичок в Camel, поэтому я не знал, что могу заставить его работать таким образом. – Mopper