아파치 낙타 경로 : 경로 위Apache Camel은 중첩 된 경로를 지원합니까?
from("file:/tmp/test?include=.*.csv").process(new Processor() {
public void process(Exchange exchange) throws Exception {
// set output file name
exchange.setProperty("outputFile", exchange.getIn().getHeader(Exchange.FILE_NAME, String.class) + ".tmp." + exchange.getExchangeId());
}
}).onCompletion().split().tokenize("\n", 100).process(new RequestProcessor()).to("direct:response").end().process(new Processor() {
public void process(Exchange exchange) throws Exception {
final String outputFile = exchange.getProperty("outputFile", String.class);
// add new rout to encrypt
CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
public void configure() {
from("file:/tmp/test/output?fileName=" + outputFile).marshal().pgp(keyFileName, keyUserid).to("file:/tmp/test/output?fileName=" + outputFile + ".pgp");
}
});
context.start();
Thread.sleep(5000);
context.stop();
}
});
from("direct:response").to("file:/tmp/test/output?fileName=${header.outputFile}&fileExist=Append");
은 (일괄 처리) 덩어리로 큰 파일 분할을 처리하고 결과를 출력 파일을 생성한다. 일단 내가 암호화해야 출력 파일을 생성합니다. 그래서 onCompletion 파일 분할/프로세스 경로에 프로세서 내부에 NEW 경로를 추가했습니다. 그것은 작동하지만 좋은 디자인이 아니므로 (두 개의 컨텍스트가 관련되어 있고 명시 적으로 컨텍스트를 종료해야하기 때문에)
암호화 경로를 발사하는 적절한 방법을 제안 해 줄 수 있습니까?
는 너무 베드로 감사드립니다. 큰 도움이 ... – user3332279
여전히 하나의 문제가 위의 솔루션으로 분할 크기를 기반으로 여러 파일을 만들 것입니다. 이것을 피하고 단일 파일로 암호화 할 수있는 방법은 무엇입니까? – user3332279
@ user3332279 대답을 –