JBoss.org Community Documentation

- Prev
- Next

## Chapter 24. ZIP File Sequencer

The ZIP file sequencer is included in ModeShape and extracts the files and folders contained in the ZIP archive file, extracting the files and folders into the repository using JCR's `nt:file` and `nt:folder` built-in node types. The structure of the output thus matches the logical structure of the contents of the ZIP file.

## 24.1. Example

This sequencer generates a graph structure that maps to the files and folders in the ZIP file. An example (listed in the JCR document view) from sequencing a ZIP file written into /a/foo and containing one file, /x/y/z.txt is provided below:

    <foo jcr:primaryType="zip:file"

         jcr:mixinTypes="mode:derived"

         mode:derivedAt="2011-05-13T13:12:03.925Z"

         mode:derivedFrom="/files/docForReferenceGuide.xml" >

      <x jcr:primaryType="nt:folder"

         jcr:created="2011-05-12T20:07Z"

         jcr:createdBy="currentJcrUser">

        <y jcr:primaryType="nt:folder"

           jcr:created="2011-05-12T20:09Z"

           jcr:createdBy="currentJcrUser">

          <z.txt jcr:primaryType="nt:file">

            <jcr:content jcr:primaryType="nt:resource"

                         jcr:data="This is the file content"

                         jcr:lastModified="2011-05-12T20:12Z"

                         jcr:lastModifiedBy="currentJcrUser"

                         jcr:mimeType="text/plain" />

          </z.txt>

        </y>

      </x>

    </foo>

The CND for the zip:file node type is listed below.

    [zip:file] > nt:folder, mix:mimeType

To use this sequencer, simply include the `modeshape-sequencer-zip` JAR in your application and configure the `JcrConfiguration` to use this sequencer using something similar to:

    JcrConfiguration config = ...

    config.sequencer("ZIP Sequencer")

          .usingClass("org.modeshape.sequencer.zip.ZipSequencer")

          .loadedFromClasspath()

          .setDescription("Sequences compressed files to extract the internal file and folder structure")

          .sequencingFrom("//(*.(zip|gz|jar|war|ear)[*])/jcr:content[@jcr:data]")

          .andOutputtingTo("/zips/$1");

- PrevChapter 23. Web Service Definition Language (WSDL...
- Top of page
- Front page
- NextChapter 25. Microsoft Office Document Sequencer