in src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java [1893:1945]
private File createLicenseReport(final ApisJarContext ctx,
final ApiRegion region,
final Collection<ArtifactInfo> infos,
final List<String> report) throws MojoExecutionException {
final File out = new File(this.getTmpDir(), region.getName() + "-license-report.txt");
if ( !out.exists() ) {
final List<String> output = new ArrayList<>();
output.add(ctx.getConfig().getLicenseReportHeader());
output.add("");
for(final ArtifactInfo info : infos) {
final String licenseDefault = ctx.getConfig().getLicenseDefault(info.getId());
final StringBuilder sb = new StringBuilder(info.getId().toMvnId());
boolean exclude = false;
if ( licenseDefault != null ) {
if ( licenseDefault.isEmpty()) {
exclude = true;
getLog().debug("Excluding from license report " + info.getId().toMvnId());
} else {
sb.append(" - License(s) : ");
sb.append(licenseDefault);
}
} else {
final List<License> licenses = this.getLicenses(ctx, info);
if ( !licenses.isEmpty() ) {
sb.append(" - License(s) : ");
sb.append(String.join(", ",
licenses.stream()
.map(l -> l.getName().concat(" (").concat(l.getUrl()).concat(")"))
.collect(Collectors.toList())));
} else {
report.add("No license info found for ".concat(info.getId().toMvnId()));
}
}
if ( !exclude ) {
output.add(sb.toString());
}
}
if ( ctx.getConfig().getLicenseReportFooter() != null ) {
output.add("");
output.add(ctx.getConfig().getLicenseReportFooter());
}
try {
Files.write(out.toPath(), output);
} catch (IOException e) {
throw new MojoExecutionException("Unable to write license report: " + e.getMessage(), e);
}
}
return out;
}