Enhanced version command
Users may want to see dependencies as a function of the resolvers in the output of the version command. That information is available in the Ivy report XML file.
The App Builder could also leverage this information to give users insight about the source of an application's dependencies (private, workspace, user). For this, we'd use the -json argument.
We could generate the results with a simple stylesheet. For example:
File: zero-report.xsl
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" />
<xsl:template match="/">
<xsl:for-each select="//revision/@resolver[not(.=preceding::revision/@resolver)]">
<xsl:text>Resolver: </xsl:text>
<xsl:value-of select="."/>
<xsl:text>
</xsl:text>
<xsl:variable name="rname" select="." />
<xsl:apply-templates select="//module[$rname=revision/@resolver]" />
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
<xsl:template match="//module">
<xsl:text> </xsl:text>
<xsl:value-of select="@organisation"/>
<xsl:text>:</xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>:</xsl:text>
<xsl:value-of select="revision/@name"/>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>
applied to an Ivy report XML yields:
Sample output
Resolver: userhome
dojo:dojo:1.1.1.19180
zero:zero.management.monitor:1.1.0.0.18590
zero:zero.management.zso:1.1.0.0.19458
zero:zero.management.spi:1.1.0.0.18590
zero:zero.cli.tasks:1.1.0.0.19633
zero:zero.management.native.process:1.1.0.0.19432
zero:zero.native.support:1.1.0.0.19432
zero:zero.network:1.1.0.0.18590
zero:zero.network.support:1.1.0.0.18590
Resolver: workspace
zero:zero.core:1.1.0.0-project.200806171405
zero:zero.kernel:1.1.0.0-project.200806171405
A snippet of Java code that applies a stylesheet to an XML document:
Java snippet
TransformerFactory factory = TransformerFactory.newInstance( );
Transformer transformer =
factory.newTransformer( new StreamSource( "zero-report.xsl" ) );
StreamSource xmlsource = new StreamSource( "reports/zero-myappab-default.xml" );
StreamResult output = new StreamResult( System.out );
transformer.transform( xmlsource, output );