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);
}