public void output()

in src/java/org/apache/ivy/plugins/report/LogReportOutputter.java [47:160]


    public void output(ResolveReport report, ResolutionCacheManager cacheMgr, ResolveOptions options)
            throws IOException {
        IvySettings settings = IvyContext.getContext().getSettings();

        if (settings.logModulesInUse() && ResolveOptions.LOG_DEFAULT.equals(options.getLog())) {
            Message.info("\t:: modules in use:");
            List<IvyNode> dependencies = new ArrayList<>(report.getDependencies());
            Collections.sort(dependencies);
            if (dependencies.size() > 0) {
                String[] confs = report.getConfigurations();
                for (IvyNode node : dependencies) {
                    if (node.isCompletelyEvicted() || node.hasProblem()) {
                        continue;
                    }
                    List<String> nodeConfs = new ArrayList<>(confs.length);
                    for (String conf : confs) {
                        if (report.getConfigurationReport(conf).getModuleRevisionIds()
                                .contains(node.getResolvedId())) {
                            nodeConfs.add(conf);
                        }
                    }
                    Message.info("\t" + node + " from "
                            + node.getModuleRevision().getResolver().getName() + " in " + nodeConfs);
                }
            }
        }

        IvyNode[] evicted = report.getEvictedNodes();

        if (evicted.length > 0 && ResolveOptions.LOG_DEFAULT.equals(options.getLog())) {
            Message.info("\t:: evicted modules:");
            for (IvyNode evictedNode : evicted) {
                Collection<String> allEvictingNodes = evictedNode.getAllEvictingNodesDetails();
                if (allEvictingNodes == null) {
                    Message.info("\t" + evictedNode + " transitively in "
                            + Arrays.asList(evictedNode.getEvictedConfs()));
                } else if (allEvictingNodes.isEmpty()) {
                    Message.info(
                        "\t" + evictedNode + " by [] (" + evictedNode.getAllEvictingConflictManagers()
                                + ") in " + Arrays.asList(evictedNode.getEvictedConfs()));
                } else {
                    Message.info("\t" + evictedNode + " by " + allEvictingNodes + " in "
                            + Arrays.asList(evictedNode.getEvictedConfs()));
                }
                for (String conf : evictedNode.getEvictedConfs()) {
                    EvictionData evictedData = evictedNode.getEvictedData(conf);
                    if (evictedData.getParent() != null) {
                        Message.verbose("\t  in " + evictedData.getParent() + " with "
                                + evictedData.getConflictManager());
                    }
                }
            }
        }

        if (ResolveOptions.LOG_DEFAULT.equals(options.getLog())) {
            // CheckStyle:MagicNumber| OFF
            char[] sep = new char[69];
            Arrays.fill(sep, '-');
            Message.rawinfo("\t" + new String(sep));
            StringBuilder line = new StringBuilder("\t");
            append(line, "", 18);
            append(line, "modules", 31);
            line.append("|");
            append(line, "artifacts", 15);
            line.append("|");
            Message.rawinfo(line.toString());

            line = new StringBuilder("\t");
            append(line, "conf", 18);
            append(line, "number", 7);
            append(line, "search", 7);
            append(line, "dwnlded", 7);
            append(line, "evicted", 7);
            line.append("|");
            append(line, "number", 7);
            append(line, "dwnlded", 7);
            // CheckStyle:MagicNumber| ON
            line.append("|");
            Message.rawinfo(line.toString());
            Message.rawinfo("\t" + new String(sep));

            for (String conf : report.getConfigurations()) {
                output(report.getConfigurationReport(conf));
            }
            Message.rawinfo("\t" + new String(sep));
        }

        IvyNode[] unresolved = report.getUnresolvedDependencies();
        if (unresolved.length > 0) {
            Message.warn("\t::::::::::::::::::::::::::::::::::::::::::::::");
            Message.warn("\t::          UNRESOLVED DEPENDENCIES         ::");
            Message.warn("\t::::::::::::::::::::::::::::::::::::::::::::::");
        }
        for (IvyNode anUnresolved : unresolved) {
            Message.warn("\t:: " + anUnresolved + ": " + anUnresolved.getProblemMessage());
        }
        if (unresolved.length > 0) {
            Message.warn("\t::::::::::::::::::::::::::::::::::::::::::::::\n");
        }

        ArtifactDownloadReport[] errors = report.getFailedArtifactsReports();
        if (errors.length > 0) {
            Message.warn("\t::::::::::::::::::::::::::::::::::::::::::::::");
            Message.warn("\t::              FAILED DOWNLOADS            ::");
            Message.warn("\t:: ^ see resolution messages for details  ^ ::");
            Message.warn("\t::::::::::::::::::::::::::::::::::::::::::::::");
        }
        for (ArtifactDownloadReport error : errors) {
            Message.warn("\t:: " + error.getArtifact());
        }
        if (errors.length > 0) {
            Message.warn("\t::::::::::::::::::::::::::::::::::::::::::::::\n");
        }
    }