public void action()

in build-tools/src/main/java/co/elastic/otel/android/compilation/tools/tasks/subprojects/NoticeFilesCollectorTask.java [44:77]


    public void action() {
        try {
            FileUtils.cleanDirectory(getOutputDir().get().getAsFile());
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        List<Configuration> dependencyConfigs = getRuntimeDependencies().get();
        List<ComponentIdentifier> allDependenciesIds = new ArrayList<>();
        Set<ResolvedArtifactResult> jarArtifacts = new HashSet<>();

        for (Configuration dependencies : dependencyConfigs) {
            List<ComponentIdentifier> componentIdentifiers = getComponentIdentifiers(dependencies);
            Set<ResolvedArtifactResult> localJarArtifacts = dependencies.getIncoming().artifactView(configuration -> {
                configuration.setLenient(false);
                configuration.attributes(new JarAttributeAction());
                configuration.componentFilter(new ExternalComponentsSpec(componentIdentifiers));
            }).getArtifacts().getArtifacts();

            jarArtifacts.addAll(localJarArtifacts);
            allDependenciesIds.addAll(componentIdentifiers);
        }


        List<ComponentIdentifier> foundFor = extractNoticeFiles(jarArtifacts);
        allDependenciesIds.removeAll(foundFor);
        List<String> remainingDependenciesIdNames = new ArrayList<>();
        for (ComponentIdentifier id : allDependenciesIds) {
            remainingDependenciesIdNames.add(id.getDisplayName());
        }

        if (!remainingDependenciesIdNames.isEmpty()) {
            getProject().getLogger().warn("Not found NOTICE files for: " + remainingDependenciesIdNames);
        }
    }