Loading src/main/java/com/inteligr8/maven/ban/PurgeRepoMojo.java +33 −10 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.BasicFileAttributes; import java.util.Arrays; import java.util.Collections; import java.util.Iterator; import java.util.LinkedList; import java.util.List; Loading Loading @@ -90,10 +91,13 @@ public class PurgeRepoMojo extends AbstractMojo { continue; } Path groupPath = this.getGroupPath(afilter); List<Path> artifactPaths = this.getArtifactPaths(groupPath, afilter); Path groupPath = this.resolveGroupPath(afilter); if (groupPath == null) continue; List<Path> artifactPaths = this.resolveArtifactPaths(groupPath, afilter); for (Path artifactPath : artifactPaths) includePaths.addAll(this.getVersionPaths(artifactPath, afilter.getVersionRange())); includePaths.addAll(this.resolveVersionPaths(artifactPath, afilter.getVersionRange())); } this.getLog().debug("May be purging all files in " + includePaths.size() + " paths"); Loading @@ -105,7 +109,7 @@ public class PurgeRepoMojo extends AbstractMojo { StringBuilder regex = new StringBuilder(); if (afilter.getGroupId() != null) { regex.append('^').append(this.getGroupPath(afilter)); regex.append('^').append(this.resolveGroupPath(afilter)); } else if (afilter.getGroupIdRegex() != null) { regex.append(afilter.getGroupIdRegex().replace("\\.", regexDirectorySeparator)); if (regex.charAt(0) != '^') Loading Loading @@ -171,20 +175,39 @@ public class PurgeRepoMojo extends AbstractMojo { return new BanConfigurationParser(this.session, this.artifactResolver, plugin); } private Path getGroupPath(ArtifactFilter afilter) { private Path resolveGroupPath(ArtifactFilter afilter) { if (afilter.getGroupId() == null) return null; String[] pathElements = afilter.getGroupId().split("\\."); Path groupPath = Paths.get(""); for (String pathElement : pathElements) groupPath = groupPath.resolve(pathElement); Path fullGroupPath = this.getRepositoryPath().resolve(groupPath); if (!Files.exists(fullGroupPath)) { this.getLog().debug("The group path does not exist, so nothing to purge: " + fullGroupPath); return null; } return groupPath; } private List<Path> getArtifactPaths(Path groupPath, ArtifactFilter afilter) throws IOException { if (afilter.getArtifactId() != null) return Arrays.asList(groupPath.resolve(afilter.getArtifactId())); private List<Path> resolveArtifactPaths(Path groupPath, ArtifactFilter afilter) throws IOException { Path repoPath = this.getRepositoryPath(); if (afilter.getArtifactId() != null) { Path artifactPath = groupPath.resolve(afilter.getArtifactId()); Path fullArtifactPath = repoPath.resolve(artifactPath); if (Files.exists(fullArtifactPath)) { return Arrays.asList(artifactPath); } else { this.getLog().debug("The artifact path does not exist, so nothing to purge: " + fullArtifactPath); return Collections.emptyList(); } } Pattern artifactPattern = afilter.getArtifactIdRegex() == null ? null : Pattern.compile(afilter.getArtifactIdRegex()); Path repoPath = this.getRepositoryPath(); List<Path> paths = new LinkedList<>(); if (artifactPattern == null) Loading @@ -208,7 +231,7 @@ public class PurgeRepoMojo extends AbstractMojo { return paths; } private List<Path> getVersionPaths(Path artifactPath, VersionRange versionRange) throws IOException { private List<Path> resolveVersionPaths(Path artifactPath, VersionRange versionRange) throws IOException { Path repoPath = this.getRepositoryPath(); List<Path> paths = new LinkedList<>(); Loading Loading
src/main/java/com/inteligr8/maven/ban/PurgeRepoMojo.java +33 −10 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.BasicFileAttributes; import java.util.Arrays; import java.util.Collections; import java.util.Iterator; import java.util.LinkedList; import java.util.List; Loading Loading @@ -90,10 +91,13 @@ public class PurgeRepoMojo extends AbstractMojo { continue; } Path groupPath = this.getGroupPath(afilter); List<Path> artifactPaths = this.getArtifactPaths(groupPath, afilter); Path groupPath = this.resolveGroupPath(afilter); if (groupPath == null) continue; List<Path> artifactPaths = this.resolveArtifactPaths(groupPath, afilter); for (Path artifactPath : artifactPaths) includePaths.addAll(this.getVersionPaths(artifactPath, afilter.getVersionRange())); includePaths.addAll(this.resolveVersionPaths(artifactPath, afilter.getVersionRange())); } this.getLog().debug("May be purging all files in " + includePaths.size() + " paths"); Loading @@ -105,7 +109,7 @@ public class PurgeRepoMojo extends AbstractMojo { StringBuilder regex = new StringBuilder(); if (afilter.getGroupId() != null) { regex.append('^').append(this.getGroupPath(afilter)); regex.append('^').append(this.resolveGroupPath(afilter)); } else if (afilter.getGroupIdRegex() != null) { regex.append(afilter.getGroupIdRegex().replace("\\.", regexDirectorySeparator)); if (regex.charAt(0) != '^') Loading Loading @@ -171,20 +175,39 @@ public class PurgeRepoMojo extends AbstractMojo { return new BanConfigurationParser(this.session, this.artifactResolver, plugin); } private Path getGroupPath(ArtifactFilter afilter) { private Path resolveGroupPath(ArtifactFilter afilter) { if (afilter.getGroupId() == null) return null; String[] pathElements = afilter.getGroupId().split("\\."); Path groupPath = Paths.get(""); for (String pathElement : pathElements) groupPath = groupPath.resolve(pathElement); Path fullGroupPath = this.getRepositoryPath().resolve(groupPath); if (!Files.exists(fullGroupPath)) { this.getLog().debug("The group path does not exist, so nothing to purge: " + fullGroupPath); return null; } return groupPath; } private List<Path> getArtifactPaths(Path groupPath, ArtifactFilter afilter) throws IOException { if (afilter.getArtifactId() != null) return Arrays.asList(groupPath.resolve(afilter.getArtifactId())); private List<Path> resolveArtifactPaths(Path groupPath, ArtifactFilter afilter) throws IOException { Path repoPath = this.getRepositoryPath(); if (afilter.getArtifactId() != null) { Path artifactPath = groupPath.resolve(afilter.getArtifactId()); Path fullArtifactPath = repoPath.resolve(artifactPath); if (Files.exists(fullArtifactPath)) { return Arrays.asList(artifactPath); } else { this.getLog().debug("The artifact path does not exist, so nothing to purge: " + fullArtifactPath); return Collections.emptyList(); } } Pattern artifactPattern = afilter.getArtifactIdRegex() == null ? null : Pattern.compile(afilter.getArtifactIdRegex()); Path repoPath = this.getRepositoryPath(); List<Path> paths = new LinkedList<>(); if (artifactPattern == null) Loading @@ -208,7 +231,7 @@ public class PurgeRepoMojo extends AbstractMojo { return paths; } private List<Path> getVersionPaths(Path artifactPath, VersionRange versionRange) throws IOException { private List<Path> resolveVersionPaths(Path artifactPath, VersionRange versionRange) throws IOException { Path repoPath = this.getRepositoryPath(); List<Path> paths = new LinkedList<>(); Loading