Я хочу запустить простой Apache Camel пример, который копирует файлы из одного каталога в другой:
CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
public void configure () throws Exception {
from("file://c:/fromdir/").to("file://c:/todir/");
}
});
context.start();
Если я запускаю этот пример с использованием Apache Camel 2.0.0, программа завершает работу сразу после context.start();
и ничего не делает. Если я добавлю Thread.sleep(30000);
после запуска CamelContext
, фоновые потоки выполнят свою работу, и файлы будут скопированы из источника в каталог назначения в течение 30 секунд.
Однако, если я запускаю тот же код с использованием Apache Camel 1.6.2, метод start()
автоматически блокируется, и мне не нужно переводить основной поток в спящий режим, чтобы скопировать файлы. Я не нашел подсказки, что это поведение изменилось с Camel 1.x на 2.x. Это действительно предполагаемое поведение? Можно ли позволить методу start () блокировать выполнение в Camel 2.0.0?
Спасибо