private void processRepository(final Writer errorWriter) {
        try {
            // Loop over all of the data files in the repository.
            try {
                Files.walkFileTree(inputDir,
                        EnumSet.of(FileVisitOption.FOLLOW_LINKS),
                        Integer.MAX_VALUE,
                        new AbstractFileVisitor() {
                            @Override
                            public FileVisitResult visitFile(final Path file, final BasicFileAttributes attrs) {
                                try {
                                    if (file.toString().endsWith(".zip")) {
                                        process(errorWriter, file);
                                    }
                                } catch (final RuntimeException e) {
                                    LOGGER.error(e.getMessage(), e);
                                }
                                return super.visitFile(file, attrs);
                            }
                        });
            } catch (final IOException e) {
                LOGGER.error(e.getMessage(), e);
            }
        } catch (final RuntimeException e) {
            LOGGER.error("Unable to process repository!", e);
        }
    }
Command line tool to process some files from a proxy stroom.
stroom-headless/src/main/java/stroom/headless/Cli.java