315.3. アンマーシャリング
この例では、MY_QUEUE という ActiveMQ キューから元の形式に Tar File ペイロードをアンマーシャリングし、これを UnTarpedMessageProcessor
に転送します。
from("activemq:queue:MY_QUEUE").unmarshal().tarFile().process(new UnTarpedMessageProcessor());
Tar File に複数のエントリーがある場合は、TarFileDataFormat の usingIterator オプションを true に、Splitter を使用して追加の作業を行うことができます。
TarFileDataFormat tarFile = new TarFileDataFormat(); tarFile.setUsingIterator(true); from("file:src/test/resources/org/apache/camel/dataformat/tarfile/?consumer.delay=1000&noop=true") .unmarshal(tarFile) .split(body(Iterator.class)) .streaming() .process(new UnTarpedMessageProcessor()) .end();
または、TarSplitter を、このように Splitter の式として直接使用できます。
from("file:src/test/resources/org/apache/camel/dataformat/tarfile?consumer.delay=1000&noop=true") .split(new TarSplitter()) .streaming() .process(new UnTarpedMessageProcessor()) .end();