public void execute()

in src/main/java/com/spotify/fmt/AbstractFMT.java [112:182]


  public void execute() throws MojoFailureException {
    if (skip) {
      getLog().info("Skipping format check");
      return;
    }
    if ("pom".equals(packaging)) {
      getLog().info("Skipping format check: project uses 'pom' packaging");
      return;
    }
    if (skipSortingImports) {
      getLog().info("Skipping sorting imports");
    }
    List<File> directoriesToFormat = new ArrayList<>();
    if (sourceDirectory.exists() && !skipSourceDirectory) {
      directoriesToFormat.add(sourceDirectory);
    } else {
      handleMissingDirectory("Source", sourceDirectory);
    }
    if (testSourceDirectory.exists() && !skipTestSourceDirectory) {
      directoriesToFormat.add(testSourceDirectory);
    } else {
      handleMissingDirectory("Test source", testSourceDirectory);
    }

    for (File additionalSourceDirectory : additionalSourceDirectories) {
      if (additionalSourceDirectory.exists()) {
        directoriesToFormat.add(additionalSourceDirectory);
      } else {
        handleMissingDirectory("Additional source", additionalSourceDirectory);
      }
    }

    FormattingConfiguration configuration =
        FormattingConfiguration.builder()
            .debug(getLog().isDebugEnabled())
            .directoriesToFormat(directoriesToFormat)
            .style(style)
            .filesNamePattern(filesNamePattern)
            .filesPathPattern(filesPathPattern)
            .verbose(verbose)
            .skipSortingImports(skipSortingImports)
            .writeReformattedFiles(shouldWriteReformattedFiles())
            .processingLabel(getProcessingLabel())
            .build();

    FormattingCallable formattingCallable = new FormattingCallable(configuration);

    try {
      if (shouldFork()) {
        final List<String> classpath =
            pluginArtifactMap.values().stream()
                .map(a -> a.getFile().getAbsolutePath())
                .collect(Collectors.toList());

        try (ForkingExecutor executor =
            new ForkingExecutor(getLog())
                .javaArgs(javaArgs())
                .classpath(classpath)
                .withDefaultClasspath(useDefaultClasspathWhenForking)) {
          result = executor.execute(formattingCallable);
        }

      } else {
        result = formattingCallable.call();
      }
    } catch (Exception e) {
      throw new MojoFailureException(e);
    }

    postExecute(result);
  }