static Set<Path> getAllFiles(Set<Path> paths) throws IOException {
    Set<Path> expanded = new HashSet<>();
    for (Path path : paths) {
      if (Files.isRegularFile(path)) {
        expanded.add(path);
      } else if (Files.isDirectory(path)) {
        try (Stream<Path> dirWalk = Files.walk(path)) {
          dirWalk.filter(Files::isRegularFile).forEach(expanded::add);
        }
      }
    }
    return expanded;
  }
@Test
  public void getAllFiles_doesntBreakForNonExistentFiles() throws IOException {
    Path testPath = Paths.get("/a/file/that/doesnt/exist");
    assertThat(Files.exists(testPath)).isFalse();
    assertThat(PluginConfigurationProcessor.getAllFiles(ImmutableSet.of(testPath))).isEmpty();
  }