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>");
}