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

r1 - 17 Jun 2008 - 21:19:00 - steveims
Syndicate this site RSS ATOM
Copyright 2007 © IBM Corporation | Privacy | Terms of Use | About this site