В настоящее время я пытаюсь использовать Apache Camel для расшифровки зашифрованного PGP-файла, который был загружен в InputStream. Текущая проблема, с которой я сталкиваюсь, заключается в том, что CamelContext, кажется, зависает после запуска, как будто он непрерывно читает из direct:is
после исчерпания потока. Я следовал за Apache Camel - как использовать InputStream в качестве источника? , чтобы достичь точки возможной загрузки данного InputStream во входной канал.
CamelContext context = new DefaultCamelContext();
CountDownLatch latch = new CountDownLatch(1);
context.addRoutes(new RouteBuilder() {
public void configure() {
from("direct:is")
.unmarshal().pgp(secretKeyFileName, keyUserId, keyPassword)
.to("direct:os")
.process(exchange -> latch.countDown());
}
});
DefaultFluentProducerTemplate.on(context).withBody(inputStream).to("direct:is");
DefaultFluentProducerTemplate.on(context).withBody(outputStream);
context.start();
latch.await();
context.stop();