private void outputRevision()

in src/java/org/apache/ivy/plugins/report/XmlReportWriter.java [104:169]


    private void outputRevision(ConfigurationResolveReport report, PrintWriter out,
                                List<ModuleRevisionId> dependencies, IvyNode dep) {
        Map<String, String> extraAttributes;
        ModuleDescriptor md = null;
        if (dep.getModuleRevision() != null) {
            md = dep.getModuleRevision().getDescriptor();
        }
        StringBuilder details = new StringBuilder();
        if (dep.isLoaded()) {
            details.append(" status=\"");
            details.append(XMLHelper.escape(dep.getDescriptor().getStatus()));
            details.append("\" pubdate=\"");
            details.append(DateUtil.format(new Date(dep.getPublication())));
            details.append("\" resolver=\"");
            details.append(XMLHelper.escape(dep.getModuleRevision().getResolver().getName()));
            details.append("\" artresolver=\"");
            details.append(XMLHelper
                    .escape(dep.getModuleRevision().getArtifactResolver().getName()));
            details.append("\"");
        }
        if (dep.isEvicted(report.getConfiguration())) {
            EvictionData ed = dep.getEvictedData(report.getConfiguration());
            if (ed.getConflictManager() != null) {
                details.append(" evicted=\"")
                        .append(XMLHelper.escape(ed.getConflictManager().toString())).append("\"");
            } else {
                details.append(" evicted=\"transitive\"");
            }
            details.append(" evicted-reason=\"")
                    .append(XMLHelper.escape(ed.getDetail() == null ? "" : ed.getDetail()))
                    .append("\"");
        }
        if (dep.hasProblem()) {
            details.append(" error=\"").append(XMLHelper.escape(dep.getProblem().getMessage()))
                    .append("\"");
        }
        if (md != null && md.getHomePage() != null) {
            details.append(" homepage=\"").append(XMLHelper.escape(md.getHomePage())).append("\"");
        }
        extraAttributes = (md != null)
            ? md.getQualifiedExtraAttributes()
            : dep.getResolvedId().getQualifiedExtraAttributes();
        details.append(extraToString(extraAttributes, SEPARATOR));
        out.println(String.format("\t\t\t<revision name=\"%s\"%s%s downloaded=\"%s\" searched=\"%s\"%s conf=\"%s\" position=\"%d\">",
                XMLHelper.escape(dep.getResolvedId().getRevision()),
                (dep.getResolvedId().getBranch() == null) ? "" : " branch=\""
                + XMLHelper.escape(dep.getResolvedId().getBranch()) + "\"",
                details, dep.isDownloaded(), dep.isSearched(),
                (dep.getDescriptor() == null) ? "" : " default=\""
                + dep.getDescriptor().isDefault() + "\"",
                XMLHelper.escape(joinArray(dep.getConfigurations(report.getConfiguration()), ", ")),
                dependencies.indexOf(dep.getResolvedId())));
        if (md != null) {
            License[] licenses = md.getLicenses();
            for (License license : licenses) {
                out.println(String.format("\t\t\t\t<license name=\"%s\"%s/>",
                        XMLHelper.escape(license.getName()),
                        license.getUrl() == null ? "" : " url=\"" + XMLHelper.escape(license.getUrl()) + "\""));
            }
        }
        outputMetadataArtifact(out, dep);
        outputEvictionInformation(report, out, dep);
        outputCallers(report, out, dep);
        outputArtifacts(report, out, dep);
        out.println("\t\t\t</revision>");
    }