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