private void process(final HeadlessFilter headlessFilter, final Path path) {
        LOGGER.info("Processing: " + FileUtil.getCanonicalPath(path));

        try (final StroomZipFile stroomZipFile = new StroomZipFile(path)) {
            final List<String> baseNames = stroomZipFile.getBaseNames();

            // Process each base file in a consistent order
            for (final String baseName : baseNames) {
                final InputStream dataStream = stroomZipFile.getInputStream(baseName, StroomZipFileType.DATA);
                final InputStream metaStream = stroomZipFile.getInputStream(baseName, StroomZipFileType.META);
                final InputStream contextStream = stroomZipFile.getInputStream(baseName, StroomZipFileType.CONTEXT);
                final HeadlessTranslationTaskHandler handler = translationTaskHandlerProvider.get();
                handler.exec(
                        IgnoreCloseInputStream.wrap(dataStream),
                        IgnoreCloseInputStream.wrap(metaStream),
                        IgnoreCloseInputStream.wrap(contextStream),
                        headlessFilter,
                        new SimpleTaskContext());
            }
        } catch (final IOException e) {
            LOGGER.error(e.getMessage(), e);
        }
    }
Command line tool to process some files from a proxy stroom.
stroom-headless/src/main/java/stroom/headless/Headless.java