あるディレクトリから別のディレクトリにファイルをコピーする単純な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 に変更されたというヒントは見つかりませんでした。これは本当に意図した動作ですか? Camel 2.0.0 で start() メソッドが実行をブロックすることは可能ですか?
ありがとう