340.3. Unmarshal

この例では、MY_QUEUE という ActiveMQ キューから Tar ファイルペイロードを元の形式にアンマーシャリングして UnTarpedMessageProcessor に転送し、処理します。

from("activemq:queue:MY_QUEUE").unmarshal().tarFile().process(new UnTarpedMessageProcessor()); 

Tar ファイルに複数のエントリーがある場合には、TarFileDataFormat の usingIterator オプションを true にすると、スプリッターを使用してさらに作業を行うことができます。

  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 をスプリッターの式として直接使用できます

   from("file:src/test/resources/org/apache/camel/dataformat/tarfile?consumer.delay=1000&noop=true")
     .split(new TarSplitter())
        .streaming()
        .process(new UnTarpedMessageProcessor())
     .end();