public static Set filterProjects()

in src/main/java/org/apache/maven/plugins/assembly/utils/FilterUtils.java [49:89]


    public static Set<MavenProject> filterProjects(
            final Set<MavenProject> projects,
            final List<String> includes,
            final List<String> excludes,
            final boolean actTransitively,
            final Logger logger) {
        final List<PatternIncludesArtifactFilter> allFilters = new ArrayList<>();

        final AndArtifactFilter filter = new AndArtifactFilter();

        if (!includes.isEmpty()) {
            final PatternIncludesArtifactFilter includeFilter =
                    new PatternIncludesArtifactFilter(includes, actTransitively);

            filter.add(includeFilter);
            allFilters.add(includeFilter);
        }
        if (!excludes.isEmpty()) {
            final PatternExcludesArtifactFilter excludeFilter =
                    new PatternExcludesArtifactFilter(excludes, actTransitively);

            filter.add(excludeFilter);
            allFilters.add(excludeFilter);
        }

        Set<MavenProject> result = new LinkedHashSet<>(projects.size());
        for (MavenProject project : projects) {
            final Artifact artifact = project.getArtifact();

            if (filter.include(artifact)) {
                result.add(project);
            }
        }

        for (final PatternIncludesArtifactFilter f : allFilters) {
            if (f != null) {
                f.reportMissedCriteria(logger);
            }
        }
        return result;
    }