in src/main/java/org/apache/sling/feature/cpconverter/vltpkg/VaultPackageAssembler.java [349:373]
private static void addDirectory(@NotNull final JarOutputStream jos, @NotNull final File dir, final int prefixLength) throws IOException {
if (dir.getAbsolutePath().length() > prefixLength && dir.listFiles().length == 0) {
final String dirName = dir.getAbsolutePath().substring(prefixLength).replace(File.separatorChar, '/');
final JarEntry entry = new JarEntry(dirName);
entry.setTime(dir.lastModified());
entry.setSize(0);
jos.putNextEntry(entry);
jos.closeEntry();
}
for (final File f : dir.listFiles()) {
final String name = f.getAbsolutePath().substring(prefixLength).replace(File.separatorChar, '/');
if (f.isFile() && !JarFile.MANIFEST_NAME.equals(name)) {
final JarEntry entry = new JarEntry(name);
entry.setTime(f.lastModified());
jos.putNextEntry(entry);
try (final FileInputStream in = new FileInputStream(f)) {
IOUtils.copy(in, jos);
}
jos.closeEntry();
} else if (f.isDirectory()) {
addDirectory(jos, f, prefixLength);
}
}
}