This is an automated email from the ASF dual-hosted git repository. vy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/logging-log4j-tools.git
commit 42ad72d1335834b1b066ea695ad05c9ab51f30bc Author: Volkan Yazıcı <[email protected]> AuthorDate: Mon Jan 9 20:31:15 2023 +0100 Skip empty directories in exporter --- .../changelog/exporter/ChangelogExporter.java | 33 ++++++++++++++-------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/exporter/ChangelogExporter.java b/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/exporter/ChangelogExporter.java index 1ea18de..236dcea 100644 --- a/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/exporter/ChangelogExporter.java +++ b/log4j-changelog/src/main/java/org/apache/logging/log4j/changelog/exporter/ChangelogExporter.java @@ -18,6 +18,7 @@ package org.apache.logging.log4j.changelog.exporter; import java.io.IOException; import java.io.UncheckedIOException; +import java.nio.file.Files; import java.nio.file.Path; import java.util.*; import java.util.stream.Collectors; @@ -38,18 +39,7 @@ public final class ChangelogExporter { final ChangelogExporterArgs args = ChangelogExporterArgs.fromSystemProperties(); // Find release directories - final List<Path> releaseDirectories = FileUtils - .findAdjacentFiles( - args.changelogDirectory, true, - paths -> paths - .filter(file -> file.toFile().isDirectory()) - .sorted(Comparator.comparing(releaseDirectory -> { - final Path releaseXmlFile = ChangelogFiles.releaseXmlFile(releaseDirectory); - final ChangelogRelease changelogRelease = - ChangelogRelease.readFromXmlFile(releaseXmlFile); - return changelogRelease.date; - })) - .collect(Collectors.toList())); + final List<Path> releaseDirectories = findReleaseDirectories(args); final int releaseDirectoryCount = releaseDirectories.size(); // Read the release information files @@ -120,6 +110,25 @@ public final class ChangelogExporter { } + private static List<Path> findReleaseDirectories(ChangelogExporterArgs args) { + return FileUtils.findAdjacentFiles( + args.changelogDirectory, true, + paths -> paths + .filter(ChangelogExporter::isNonEmptyDirectory) + .sorted(Comparator.comparing(releaseDirectory -> { + final Path releaseXmlFile = ChangelogFiles.releaseXmlFile(releaseDirectory); + final ChangelogRelease changelogRelease = + ChangelogRelease.readFromXmlFile(releaseXmlFile); + return changelogRelease.date; + })) + .collect(Collectors.toList())); + } + + private static boolean isNonEmptyDirectory(final Path path) { + return Files.isDirectory(path) && + FileUtils.findAdjacentFiles(path, false, paths -> paths.findFirst().isPresent()); + } + private static void exportRelease( final Path outputDirectory, final Path releaseDirectory,
