public void add(final Path sourceDir) {
        LOGGER.debug("add() - sourceDir: {}", sourceDir);
        splittingQueue.add(sourceDir);
    }
<p>
This processor will split an input zip into multiple output zips, grouping entries by {@link FeedKey}
(feed and type).
It is also used to normalise an input zip that is not in the correct proxy zip format into
one that is.
</p><p>
As a result of processing, all resulting zip files will be in a known proxy file format consisting of entries of 10
numeric characters and appropriate file extensions. The entry order will also be specific with associated entries
having the order (manifest, meta, context, data).
</p><p>
Note that it is not necessary for a manifest file (.mf) to exist at all but if must be the first file if it is
present. It is also not necessary for context files (.ctx) to exist (in fact they are rarely used), but if present
they must precede the meta file (.meta). Finally all entry sets must include the actual data to be valid (.dat).
</p><p>
An example zip file will look like this:
0000000001.mf
0000000001.meta
0000000001.ctx
0000000001.dat
0000000002.meta
0000000002.ctx
0000000002.dat
0000000003.meta
0000000003.dat
...
</p><p>
Along with the final zip files there will be associated meta files written to use for forwarding.
There will also be an entries file that tells us the size of each file set. The entries file has a JSON string
for each set of files in the zip. This data allows us to understand how best to aggregate this data if required.
</p>
stroom-proxy/stroom-proxy-app/src/main/java/stroom/proxy/app/handler/ZipSplitter.java