public static PathCollectorPluginConfig processClasspathMaven()

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