in atomos.maven/src/main/java/org/apache/felix/atomos/maven/LauncherBuilderUtil.java [74:137]
public static PathCollectorPluginConfig processClasspathMaven(
MavenProject project, MavenClasspathMavenConfig mavenIndexMojoConfig)
{
List<MavenProject> projects = new ArrayList<>();
projects.add(project);
if (mavenIndexMojoConfig.includingParent)
{
while (project.hasParent())
{
projects.add(project.getParent());
}
}
List<Path> paths = projects.stream()//
.flatMap(p -> p.getArtifacts().stream())//
.filter(AtomosIndexMojo::isJarFile)//
.filter(a -> {
String scope = a.getScope().isEmpty() ? "*" : a.getScope();
return Optional.ofNullable(mavenIndexMojoConfig.scopePatterns)//
.orElse(List.of(".*"))//
.stream()//
.anyMatch(s -> scope.matches(s));
})//
.filter(a -> {
return Optional.ofNullable(mavenIndexMojoConfig.groupIdPattern)//
.orElse(List.of(".*"))//
.stream()//
.anyMatch(s -> a.getGroupId().matches(s));
})//
.filter(a -> {
return Optional.ofNullable(mavenIndexMojoConfig.artefictIdPattern)//
.orElse(List.of(".*"))//
.stream()//
.anyMatch(s -> a.getArtifactId().matches(s));
})//
.map(a -> a.getFile().toPath())//
.sorted()//
.collect(Collectors.toList());
PathCollectorPluginConfig dc = new PathCollectorPluginConfig()
{
@Override
public FileType fileType()
{
return FileType.ARTIFACT;
}
@Override
public List<String> filters()
{
return null;
}
@Override
public List<Path> paths()
{
return paths;
}
};
return dc;
}