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