static List fromProject()

in src/main/java/org/apache/maven/plugin/compiler/SourceDirectory.java [275:305]


    static List<SourceDirectory> fromProject(
            Stream<SourceRoot> compileSourceRoots, String defaultRelease, Path outputDirectory) {
        var release = parse(defaultRelease); // May be null.
        var roots = new ArrayList<SourceDirectory>();
        compileSourceRoots.forEach((SourceRoot source) -> {
            Path directory = source.directory();
            if (Files.exists(directory)) {
                var fileKind = JavaFileObject.Kind.OTHER;
                var outputFileKind = JavaFileObject.Kind.OTHER;
                if (Language.JAVA_FAMILY.equals(source.language())) {
                    fileKind = JavaFileObject.Kind.SOURCE;
                    outputFileKind = JavaFileObject.Kind.CLASS;
                }
                roots.add(new SourceDirectory(
                        directory,
                        source.includes(),
                        source.excludes(),
                        fileKind,
                        source.module().orElse(null),
                        targetVersion(source).orElse(release),
                        outputDirectory,
                        outputFileKind));
            }
        });
        roots.stream()
                .map((dir) -> dir.release)
                .filter(Objects::nonNull)
                .min(SourceVersion::compareTo)
                .ifPresent((baseVersion) -> roots.forEach((dir) -> dir.completeIfVersioned(baseVersion)));
        return roots;
    }