Loading pom.xml +1 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ <groupId>com.inteligr8</groupId> <artifactId>ban-maven-plugin</artifactId> <version>1.0-SNAPSHOT</version> <version>1.3-SNAPSHOT</version> <packaging>maven-plugin</packaging> <name>Ban Dependencies Maven Plugin</name> Loading src/main/java/com/inteligr8/maven/ban/AbstractBanConfiguration.java +29 −9 Original line number Diff line number Diff line Loading @@ -30,9 +30,14 @@ import org.codehaus.plexus.util.xml.Xpp3Dom; import org.eclipse.aether.artifact.Artifact; import org.eclipse.aether.artifact.DefaultArtifact; import org.eclipse.aether.impl.ArtifactResolver; import org.eclipse.aether.impl.VersionRangeResolver; import org.eclipse.aether.resolution.ArtifactRequest; import org.eclipse.aether.resolution.ArtifactResolutionException; import org.eclipse.aether.resolution.ArtifactResult; import org.eclipse.aether.resolution.VersionRangeRequest; import org.eclipse.aether.resolution.VersionRangeResolutionException; import org.eclipse.aether.resolution.VersionRangeResult; import org.eclipse.aether.version.Version; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Loading @@ -48,11 +53,13 @@ public abstract class AbstractBanConfiguration implements BanConfiguration { protected final List<ArtifactFilter> excludeArtifacts = new LinkedList<>(); private final ArtifactResolver artifactResolver; private final VersionRangeResolver versionRangeResolver; private final MavenSession session; public AbstractBanConfiguration(MavenSession session, ArtifactResolver artifactResolver) { public AbstractBanConfiguration(MavenSession session, ArtifactResolver artifactResolver, VersionRangeResolver versionRangeResolver) { this.session = session; this.artifactResolver = artifactResolver; this.versionRangeResolver = versionRangeResolver; } public void init(Xpp3Dom rootDom) throws IOException, MojoFailureException { Loading @@ -70,19 +77,32 @@ public abstract class AbstractBanConfiguration implements BanConfiguration { BanConfigurationDownloader downloader = null; if (child.getName().equals("url")) { String url = StringUtils.trimToNull(child.getValue()); downloader = new BanConfigurationDownloader(this.session, this.artifactResolver, url); downloader = new BanConfigurationDownloader(this.session, this.artifactResolver, this.versionRangeResolver, url); } else if (child.getName().equals("artifact")) { Artifact artifact = new DefaultArtifact(child.getValue()); if (!"xml".equals(artifact.getExtension())) artifact = new DefaultArtifact(artifact.getGroupId(), artifact.getArtifactId(), artifact.getClassifier(), "xml", artifact.getVersion()); ArtifactRequest request = new ArtifactRequest(artifact, this.session.getCurrentProject().getRemoteProjectRepositories(), null); VersionRangeRequest vrrequest = new VersionRangeRequest(artifact, this.session.getCurrentProject().getRemoteProjectRepositories(), null); try { ArtifactResult result = this.artifactResolver.resolveArtifact(this.session.getRepositorySession(), request); File file = result.getArtifact().getFile(); downloader = new BanConfigurationDownloader(this.session, this.artifactResolver, file); VersionRangeResult vrresult = this.versionRangeResolver.resolveVersionRange(this.session.getRepositorySession(), vrrequest); if (vrresult.getVersions().isEmpty()) { this.logger.error("The artifact version range could not be resolved; skipping: {}", child.getValue()); } else { Version version = vrresult.getHighestVersion(); artifact.setVersion(version.toString()); ArtifactRequest arequest = new ArtifactRequest(artifact, this.session.getCurrentProject().getRemoteProjectRepositories(), null); try { ArtifactResult aresult = this.artifactResolver.resolveArtifact(this.session.getRepositorySession(), arequest); File file = aresult.getArtifact().getFile(); downloader = new BanConfigurationDownloader(this.session, this.artifactResolver, this.versionRangeResolver, file); } catch (ArtifactResolutionException are) { this.logger.warn("The artifact could not be resolved; skipping: {}", child.getValue()); this.logger.warn("The artifact version could not be resolved; skipping: {} | {}", child.getValue(), version); } } } catch (VersionRangeResolutionException vrre) { this.logger.error("The artifact version range could not be resolved; skipping: {}", child.getValue()); } } Loading src/main/java/com/inteligr8/maven/ban/BanConfigurationDownloader.java +5 −4 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import org.codehaus.plexus.util.xml.Xpp3Dom; import org.codehaus.plexus.util.xml.Xpp3DomBuilder; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import org.eclipse.aether.impl.ArtifactResolver; import org.eclipse.aether.impl.VersionRangeResolver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Loading @@ -34,8 +35,8 @@ public class BanConfigurationDownloader extends AbstractBanConfiguration { private final Logger logger = LoggerFactory.getLogger(this.getClass()); public BanConfigurationDownloader(MavenSession session, ArtifactResolver artifactResolver, String url) throws IOException, MojoFailureException { super(session, artifactResolver); public BanConfigurationDownloader(MavenSession session, ArtifactResolver artifactResolver, VersionRangeResolver versionRangeResolver, String url) throws IOException, MojoFailureException { super(session, artifactResolver, versionRangeResolver); try { Xpp3Dom rootDom = this.load(new URL(url)); Loading @@ -45,8 +46,8 @@ public class BanConfigurationDownloader extends AbstractBanConfiguration { } } public BanConfigurationDownloader(MavenSession session, ArtifactResolver artifactResolver, File file) throws IOException, MojoFailureException { super(session, artifactResolver); public BanConfigurationDownloader(MavenSession session, ArtifactResolver artifactResolver, VersionRangeResolver versionRangeResolver, File file) throws IOException, MojoFailureException { super(session, artifactResolver, versionRangeResolver); try { Xpp3Dom rootDom = this.load(file); Loading src/main/java/com/inteligr8/maven/ban/BanConfigurationParser.java +3 −2 Original line number Diff line number Diff line Loading @@ -21,11 +21,12 @@ import org.apache.maven.model.Plugin; import org.apache.maven.plugin.MojoFailureException; import org.codehaus.plexus.util.xml.Xpp3Dom; import org.eclipse.aether.impl.ArtifactResolver; import org.eclipse.aether.impl.VersionRangeResolver; public class BanConfigurationParser extends AbstractBanConfiguration { public BanConfigurationParser(MavenSession session, ArtifactResolver artifactResolver, Plugin plugin) throws IOException, MojoFailureException { super(session, artifactResolver); public BanConfigurationParser(MavenSession session, ArtifactResolver artifactResolver, VersionRangeResolver versionRangeResolver, Plugin plugin) throws IOException, MojoFailureException { super(session, artifactResolver, versionRangeResolver); Xpp3Dom rootDom = (Xpp3Dom) plugin.getConfiguration(); this.init(rootDom); Loading src/main/java/com/inteligr8/maven/ban/BanExtension.java +5 −1 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import org.eclipse.aether.graph.Dependency; import org.eclipse.aether.graph.DependencyFilter; import org.eclipse.aether.graph.DependencyNode; import org.eclipse.aether.impl.ArtifactResolver; import org.eclipse.aether.impl.VersionRangeResolver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Loading @@ -56,6 +57,9 @@ public class BanExtension extends AbstractMavenLifecycleParticipant { @Inject private ArtifactResolver artifactResolver; @Inject private VersionRangeResolver versionRangeResolver; @Inject private ProjectDependenciesResolver projDepResolver; Loading Loading @@ -113,7 +117,7 @@ public class BanExtension extends AbstractMavenLifecycleParticipant { return null; } else { try { return new BanConfigurationParser(session, this.artifactResolver, plugin); return new BanConfigurationParser(session, this.artifactResolver, this.versionRangeResolver, plugin); } catch (IOException | MojoFailureException e) { throw new MavenExecutionException(e.getMessage(), project.getFile()); } Loading Loading
pom.xml +1 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ <groupId>com.inteligr8</groupId> <artifactId>ban-maven-plugin</artifactId> <version>1.0-SNAPSHOT</version> <version>1.3-SNAPSHOT</version> <packaging>maven-plugin</packaging> <name>Ban Dependencies Maven Plugin</name> Loading
src/main/java/com/inteligr8/maven/ban/AbstractBanConfiguration.java +29 −9 Original line number Diff line number Diff line Loading @@ -30,9 +30,14 @@ import org.codehaus.plexus.util.xml.Xpp3Dom; import org.eclipse.aether.artifact.Artifact; import org.eclipse.aether.artifact.DefaultArtifact; import org.eclipse.aether.impl.ArtifactResolver; import org.eclipse.aether.impl.VersionRangeResolver; import org.eclipse.aether.resolution.ArtifactRequest; import org.eclipse.aether.resolution.ArtifactResolutionException; import org.eclipse.aether.resolution.ArtifactResult; import org.eclipse.aether.resolution.VersionRangeRequest; import org.eclipse.aether.resolution.VersionRangeResolutionException; import org.eclipse.aether.resolution.VersionRangeResult; import org.eclipse.aether.version.Version; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Loading @@ -48,11 +53,13 @@ public abstract class AbstractBanConfiguration implements BanConfiguration { protected final List<ArtifactFilter> excludeArtifacts = new LinkedList<>(); private final ArtifactResolver artifactResolver; private final VersionRangeResolver versionRangeResolver; private final MavenSession session; public AbstractBanConfiguration(MavenSession session, ArtifactResolver artifactResolver) { public AbstractBanConfiguration(MavenSession session, ArtifactResolver artifactResolver, VersionRangeResolver versionRangeResolver) { this.session = session; this.artifactResolver = artifactResolver; this.versionRangeResolver = versionRangeResolver; } public void init(Xpp3Dom rootDom) throws IOException, MojoFailureException { Loading @@ -70,19 +77,32 @@ public abstract class AbstractBanConfiguration implements BanConfiguration { BanConfigurationDownloader downloader = null; if (child.getName().equals("url")) { String url = StringUtils.trimToNull(child.getValue()); downloader = new BanConfigurationDownloader(this.session, this.artifactResolver, url); downloader = new BanConfigurationDownloader(this.session, this.artifactResolver, this.versionRangeResolver, url); } else if (child.getName().equals("artifact")) { Artifact artifact = new DefaultArtifact(child.getValue()); if (!"xml".equals(artifact.getExtension())) artifact = new DefaultArtifact(artifact.getGroupId(), artifact.getArtifactId(), artifact.getClassifier(), "xml", artifact.getVersion()); ArtifactRequest request = new ArtifactRequest(artifact, this.session.getCurrentProject().getRemoteProjectRepositories(), null); VersionRangeRequest vrrequest = new VersionRangeRequest(artifact, this.session.getCurrentProject().getRemoteProjectRepositories(), null); try { ArtifactResult result = this.artifactResolver.resolveArtifact(this.session.getRepositorySession(), request); File file = result.getArtifact().getFile(); downloader = new BanConfigurationDownloader(this.session, this.artifactResolver, file); VersionRangeResult vrresult = this.versionRangeResolver.resolveVersionRange(this.session.getRepositorySession(), vrrequest); if (vrresult.getVersions().isEmpty()) { this.logger.error("The artifact version range could not be resolved; skipping: {}", child.getValue()); } else { Version version = vrresult.getHighestVersion(); artifact.setVersion(version.toString()); ArtifactRequest arequest = new ArtifactRequest(artifact, this.session.getCurrentProject().getRemoteProjectRepositories(), null); try { ArtifactResult aresult = this.artifactResolver.resolveArtifact(this.session.getRepositorySession(), arequest); File file = aresult.getArtifact().getFile(); downloader = new BanConfigurationDownloader(this.session, this.artifactResolver, this.versionRangeResolver, file); } catch (ArtifactResolutionException are) { this.logger.warn("The artifact could not be resolved; skipping: {}", child.getValue()); this.logger.warn("The artifact version could not be resolved; skipping: {} | {}", child.getValue(), version); } } } catch (VersionRangeResolutionException vrre) { this.logger.error("The artifact version range could not be resolved; skipping: {}", child.getValue()); } } Loading
src/main/java/com/inteligr8/maven/ban/BanConfigurationDownloader.java +5 −4 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import org.codehaus.plexus.util.xml.Xpp3Dom; import org.codehaus.plexus.util.xml.Xpp3DomBuilder; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import org.eclipse.aether.impl.ArtifactResolver; import org.eclipse.aether.impl.VersionRangeResolver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Loading @@ -34,8 +35,8 @@ public class BanConfigurationDownloader extends AbstractBanConfiguration { private final Logger logger = LoggerFactory.getLogger(this.getClass()); public BanConfigurationDownloader(MavenSession session, ArtifactResolver artifactResolver, String url) throws IOException, MojoFailureException { super(session, artifactResolver); public BanConfigurationDownloader(MavenSession session, ArtifactResolver artifactResolver, VersionRangeResolver versionRangeResolver, String url) throws IOException, MojoFailureException { super(session, artifactResolver, versionRangeResolver); try { Xpp3Dom rootDom = this.load(new URL(url)); Loading @@ -45,8 +46,8 @@ public class BanConfigurationDownloader extends AbstractBanConfiguration { } } public BanConfigurationDownloader(MavenSession session, ArtifactResolver artifactResolver, File file) throws IOException, MojoFailureException { super(session, artifactResolver); public BanConfigurationDownloader(MavenSession session, ArtifactResolver artifactResolver, VersionRangeResolver versionRangeResolver, File file) throws IOException, MojoFailureException { super(session, artifactResolver, versionRangeResolver); try { Xpp3Dom rootDom = this.load(file); Loading
src/main/java/com/inteligr8/maven/ban/BanConfigurationParser.java +3 −2 Original line number Diff line number Diff line Loading @@ -21,11 +21,12 @@ import org.apache.maven.model.Plugin; import org.apache.maven.plugin.MojoFailureException; import org.codehaus.plexus.util.xml.Xpp3Dom; import org.eclipse.aether.impl.ArtifactResolver; import org.eclipse.aether.impl.VersionRangeResolver; public class BanConfigurationParser extends AbstractBanConfiguration { public BanConfigurationParser(MavenSession session, ArtifactResolver artifactResolver, Plugin plugin) throws IOException, MojoFailureException { super(session, artifactResolver); public BanConfigurationParser(MavenSession session, ArtifactResolver artifactResolver, VersionRangeResolver versionRangeResolver, Plugin plugin) throws IOException, MojoFailureException { super(session, artifactResolver, versionRangeResolver); Xpp3Dom rootDom = (Xpp3Dom) plugin.getConfiguration(); this.init(rootDom); Loading
src/main/java/com/inteligr8/maven/ban/BanExtension.java +5 −1 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import org.eclipse.aether.graph.Dependency; import org.eclipse.aether.graph.DependencyFilter; import org.eclipse.aether.graph.DependencyNode; import org.eclipse.aether.impl.ArtifactResolver; import org.eclipse.aether.impl.VersionRangeResolver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Loading @@ -56,6 +57,9 @@ public class BanExtension extends AbstractMavenLifecycleParticipant { @Inject private ArtifactResolver artifactResolver; @Inject private VersionRangeResolver versionRangeResolver; @Inject private ProjectDependenciesResolver projDepResolver; Loading Loading @@ -113,7 +117,7 @@ public class BanExtension extends AbstractMavenLifecycleParticipant { return null; } else { try { return new BanConfigurationParser(session, this.artifactResolver, plugin); return new BanConfigurationParser(session, this.artifactResolver, this.versionRangeResolver, plugin); } catch (IOException | MojoFailureException e) { throw new MavenExecutionException(e.getMessage(), project.getFile()); } Loading