Commit fd5e91fe authored by Brian Long's avatar Brian Long
Browse files

be more descriptive of what is banned and its chain

parent 46e19caa
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -90,6 +90,7 @@ public class BanDependencyFilter implements DependencyFilter {
            // plugin resolution downloads banned dependencies unless we fail now; not later
            throw new BannedDependencyException(node, parents);
        } else {
            this.logger.warn("Banned dependency: " + depArtifact + " => " + parents);
            return true;
        }
    }
+14 −11
Original line number Diff line number Diff line
@@ -90,7 +90,8 @@ public class BanExtension extends AbstractMavenLifecycleParticipant {
        BanDependencyFilter depFilter = new BanDependencyFilter(
                config.getIncludeArtifacts(),
                config.getExcludeArtifacts());
        depFilter.setFailFast(true);
        //depFilter.setFailFast(true);
        boolean fail = false;

        MavenProject project = session.getCurrentProject();
        
@@ -99,14 +100,11 @@ public class BanExtension extends AbstractMavenLifecycleParticipant {
                this.logger.debug("Evaluating plugin dependencies: {}", plugin);
                
                Artifact artifact = new DefaultArtifact(plugin.getId());
                try {
                DependencyNode depNodeRoot = this.pluginDepResolver.resolve(plugin, artifact, depFilter, project.getRemotePluginRepositories(), session.getRepositorySession());
                List<Dependency> bannedDependencies = this.crawlDependencyTree(depNodeRoot, depFilter);
                if (!bannedDependencies.isEmpty())
                        throw new MavenExecutionException("Banned dependencies were detected in plugin '" + plugin + "': " + bannedDependencies, project.getFile());
                } catch (BannedDependencyException bde) {
                    throw new BannedPluginException(plugin, bde);
                }
                    fail = true;
                    //throw new MavenExecutionException("Banned dependencies were detected in plugin '" + plugin.getKey() + "': " + bannedDependencies, project.getFile());
            }
        } catch (BannedArtifactException bae) {
            throw new MavenExecutionException(bae.getMessage(), bae);
@@ -114,19 +112,24 @@ public class BanExtension extends AbstractMavenLifecycleParticipant {
            throw new MavenExecutionException(pre.getMessage(), pre);
        }

        depFilter.setFailFast(false);
        //depFilter.setFailFast(false);

        DefaultDependencyResolutionRequest request = new DefaultDependencyResolutionRequest(project, session.getRepositorySession());
        request.setResolutionFilter(depFilter);
        
        try {
            // TODO somehow get the chain
            DependencyResolutionResult result = this.projDepResolver.resolve(request);
            List<Dependency> bannedDependencies = result.getDependencies();
            if (!bannedDependencies.isEmpty())
                throw new MavenExecutionException("Banned dependencies were detected: " + bannedDependencies, project.getFile());
                fail = true;
                //throw new MavenExecutionException("Banned dependencies were detected: " + bannedDependencies, project.getFile());
        } catch (DependencyResolutionException dre) {
            throw new MavenExecutionException(dre.getMessage(), dre);
        }

        if (fail)
            throw new MavenExecutionException("Banned dependencies were detected; see warnings: ", project.getFile());
    }
    
    private BanConfiguration getConfiguration(MavenSession session) throws MavenExecutionException {
+1 −1
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ public class BannedArtifactException extends RuntimeException {

    private static String buildMessage(Artifact descendant, Iterable<Artifact> ancestors) {
        StringBuilder sb = new StringBuilder();
        sb.append("Banned artifact: ").append(descendant);
        sb.append(descendant);
        if (ancestors != null) {
            for (Artifact ancestor : ancestors) {
                sb.append(" from ");