in src/main/java/org/apache/nifi/NarMojo.java [784:825]
private void writeAdditionalDetails(final File file, final Set<String> extensionNames, final File additionalDetailsDir) throws IOException, MojoExecutionException {
final JarFile jarFile = new JarFile(file);
for (final Enumeration<JarEntry> jarEnumeration = jarFile.entries(); jarEnumeration.hasMoreElements();) {
final JarEntry jarEntry = jarEnumeration.nextElement();
final String entryName = jarEntry.getName();
if (!entryName.startsWith("docs/")) {
continue;
}
final int nextSlashIndex = entryName.indexOf("/", 5);
if (nextSlashIndex < 0) {
continue;
}
final String componentName = entryName.substring(5, nextSlashIndex);
if (!extensionNames.contains(componentName)) {
continue;
}
if (jarEntry.isDirectory()) {
continue;
}
if (entryName.length() < nextSlashIndex + 1) {
continue;
}
getLog().debug("Found file " + entryName + " in " + file + " that consists of documentation for " + componentName);
final File componentDirectory = new File(additionalDetailsDir, componentName);
final String remainingPath = entryName.substring(nextSlashIndex + 1);
final File destinationFile = new File(componentDirectory, remainingPath);
createDirectory(destinationFile.getParentFile());
try (final InputStream in = jarFile.getInputStream(jarEntry);
final OutputStream out = new FileOutputStream(destinationFile)) {
copy(in, out);
}
}
}