dion 2004/01/28 20:58:36 Modified: jdepend/src/plugin-resources jdepend.jsl jdepend/xdocs changes.xml jdepend project.xml Log: Apply Maven-1132 Revision Changes Path 1.7 +244 -239 maven-plugins/jdepend/src/plugin-resources/jdepend.jsl Index: jdepend.jsl =================================================================== RCS file: /home/cvs/maven-plugins/jdepend/src/plugin-resources/jdepend.jsl,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- jdepend.jsl 1 Sep 2003 22:21:51 -0000 1.6 +++ jdepend.jsl 29 Jan 2004 04:58:36 -0000 1.7 @@ -9,7 +9,7 @@ xmlns:util="jelly:util" xmlns:doc="doc" xmlns:jdepend="jdepend" - trim="false"> + trim="true"> <!-- This needs to be instantiated here to be available in the template matches --> <j:useBean var="mavenTool" class="org.apache.maven.util.MavenTool"/> @@ -21,14 +21,10 @@ <define:taglib uri="jdepend"> <define:tag name="nav"> <p> - [ - <a href="#Summary">summary</a>] - [ - <a href="#Packages">packages</a>] - [ - <a href="#Cycles">cycles</a>] - [ - <a href="#Explanations">explanations</a>] + [<a href="#Summary">summary</a>] + [<a href="#Packages">packages</a>] + [<a href="#Cycles">cycles</a>] + [<a href="#Explanations">explanations</a>] </p> </define:tag> <!-- @@ -40,30 +36,29 @@ --> <define:tag name="classes"> <j:choose> - <j:when test="${currentNode.get(xpath) != null}"> - <i>None</i> + <j:when test="${currentNode.selectNodes(xpath).isEmpty()}"> + <em>None</em> </j:when> <j:otherwise> - <j:forEach var="class" items="${currentNode.selectNodes(xpath)}"> - <!-- class.StringValue =~ org.apache.maven.SomeClass --> - <j:set var="packageName">${stringTool.splitStringAtLastDelim(class.StringValue.trim(), '.').get(0)}</j:set> - <j:set var="className">${stringTool.splitStringAtLastDelim(class.StringValue.trim(), '.').get(1)}</j:set> - <util:replace var="dir" oldChar="." newChar="/" value="${packageName}"/> - - <j:choose> - <j:when test="${class.attribute('sourceFile') != null}"> - <j:set var="classSourceFile" value="${class.attribute('sourceFile').getValue()}"/> - <j:set var="classSourceFile" value="${stringTool.splitStringAtLastDelim(classSourceFile, '.').get(0)}"/> + <ul> + <j:forEach var="class" items="${currentNode.selectNodes(xpath)}"> + <!-- class.StringValue =~ org.apache.maven.SomeClass --> + <j:set var="packageName">${stringTool.splitStringAtLastDelim(class.StringValue.trim(), '.').get(0)}</j:set> + <j:set var="className">${stringTool.splitStringAtLastDelim(class.StringValue.trim(), '.').get(1)}</j:set> + <util:replace var="dir" oldChar="." newChar="/" value="${packageName}"/> - <a href="xref/${dir}/${classSourceFile}.html">${className}</a> - </j:when> - <j:otherwise> - <a href="xref/${dir}/${className}.html">${className}</a> - </j:otherwise> - </j:choose> - - <br/> - </j:forEach> + <j:choose> + <j:when test="${class.attribute('sourceFile') != null}"> + <j:set var="classSourceFile" value="${class.attribute('sourceFile').getValue()}"/> + <j:set var="classSourceFile" value="${stringTool.splitStringAtLastDelim(classSourceFile, '.').get(0)}"/> + <li><a href="xref/${dir}/${classSourceFile}.html">${className}</a></li> + </j:when> + <j:otherwise> + <li><a href="xref/${dir}/${className}.html">${className}</a></li> + </j:otherwise> + </j:choose> + </j:forEach> + </ul> </j:otherwise> </j:choose> </define:tag> @@ -73,14 +68,15 @@ --> <define:tag name="packages"> <j:choose> - <j:when test="${currentNode.get(xpath) != null}"> - <i>None</i> + <j:when test="${currentNode.selectNodes(xpath).isEmpty()}"> + <em>None</em> </j:when> <j:otherwise> - <j:forEach var="class" items="${currentNode.selectNodes(xpath)}"> - <a href="#${class.getStringValue()}">${class.getStringValue()}</a> - <br/> - </j:forEach> + <ul> + <j:forEach var="class" items="${currentNode.selectNodes(xpath)}"> + <li><a href="#${class.getStringValue()}">${class.getStringValue()}</a></li> + </j:forEach> + </ul> </j:otherwise> </j:choose> </define:tag> @@ -92,90 +88,80 @@ <properties> <title>JDepend Source Code Analysis</title> </properties> + + <head> + <x:element name="style"><x:attribute name="type">text/css</x:attribute> + <![CDATA[ + .jdepend td ul, .jdepend td ul li { + margin:0; padding:0; + list-style-type: none; + } + ]]> + </x:element> + + </head> - <body> + <body class="jdepend"> <section name="Metric Results"> <jdepend:nav/> <p> The following document contains the results of a - <a - href="http://www.clarkware.com/software/JDepend.html">JDepend</a> - metric analysis. The various metrics are defined at the bottom + <a href="http://www.clarkware.com/software/JDepend.html">JDepend</a> metric analysis. + The various metrics are defined at the bottom of this document. </p> </section> <section name="Summary"> <jdepend:nav/> - <table> - <tr> - <th>Package</th> - <th> - <font size="-1">Total - <br/>Classes</font> - </th> - <th> - <font size="-1">Abstract - <br/>Classes - </font> - </th> - <th> - <font size="-1">Concrete - <br/>Classes - </font> - </th> - <th> - <font size="-1">Afferent - <br/>Couplings - </font> - </th> - <th> - <font size="-1">Efferent - <br/>Couplings - </font> - </th> - <th> - <font size="-1">Abstractness</font> - </th> - <th> - <font size="-1">Instability</font> - </th> - <th> - <font size="-1">Distance</font> - </th> - </tr> + <table summary="Summary"> + <thead> + <tr> + <th title="Package">Package</th> + <th style="text-align:right"><acronym title="Total Classes">TC</acronym></th> + <th style="text-align:right"><acronym title="Abstract Classes">AC</acronym></th> + <th style="text-align:right"><acronym title="Concrete Classes">CC</acronym></th> + <th style="text-align:right"><acronym title="Afferent Couplings">AC</acronym></th> + <th style="text-align:right"><acronym title="Efferent Couplings">EC</acronym></th> + <th style="text-align:right"><acronym title="Abstractness">A</acronym></th> + <th style="text-align:right"><acronym title="Instability">I</acronym></th> + <th style="text-align:right"><acronym title="Distance">D</acronym></th> + </tr> + </thead> <x:set var="packages" select="Packages/Package"/> - <j:forEach var="package" items="${packages}"> - <!-- Is this the only way I can tell if an element has a value properly? --> - <j:set var="error" value="${package.valueOf('error').trim()}"/> - <j:if test="${error == ''}"> - <tr> - <td> - <a href="#${package.attribute('name').getValue()}">${package.attribute('name').getValue()}</a> - </td> - <td align="right"> - <x:expr select="$package/Stats/TotalClasses"/> - </td> - <td><x:expr select="$package/Stats/AbstractClasses"/></td> - <td><x:expr select="$package/Stats/ConcreteClasses"/></td> - <td><x:expr select="$package/Stats/Ca"/></td> - <td><x:expr select="$package/Stats/Ce"/></td> - <td> - <j:set var="display"><x:expr select="$package/Stats/A"/></j:set> - <doc:formatAsNumber string="${display}" pattern="#.##"/> - </td> - <td> - <j:set var="display"><x:expr select="$package/Stats/I"/></j:set> - <doc:formatAsNumber string="${display}" pattern="#%"/> - </td> - <td> - <j:set var="display"><x:expr select="$package/Stats/D"/></j:set> - <doc:formatAsNumber string="${display}" pattern="#%"/> - </td> - </tr> - </j:if> - </j:forEach> + <tbody> + <j:forEach var="package" items="${packages}"> + <!-- Is this the only way I can tell if an element has a value properly? --> + <j:set var="error" value="${package.valueOf('error').trim()}"/> + <j:if test="${error == ''}"> + <tr> + <td> + <a href="#${package.attribute('name').getValue()}">${package.attribute('name').getValue()}</a> + </td> + <td style="text-align:right"> + <x:expr select="$package/Stats/TotalClasses"/> + </td> + <td style="text-align:right"><x:expr select="$package/Stats/AbstractClasses"/></td> + <td style="text-align:right"><x:expr select="$package/Stats/ConcreteClasses"/></td> + <td style="text-align:right"><x:expr select="$package/Stats/Ca"/></td> + <td style="text-align:right"><x:expr select="$package/Stats/Ce"/></td> + <td style="text-align:right"> + <j:set var="display"><x:expr select="$package/Stats/A"/></j:set> + <doc:formatAsNumber string="${display}" pattern="#.##"/> + </td> + <td style="text-align:right"> + <j:set var="display"><x:expr select="$package/Stats/I"/></j:set> + <doc:formatAsNumber string="${display}" pattern="#%"/> + </td> + <td style="text-align:right"> + <j:set var="display"><x:expr select="$package/Stats/D"/></j:set> + <doc:formatAsNumber string="${display}" pattern="#%"/> + </td> + </tr> + </j:if> + </j:forEach> + </tbody> </table> </section> @@ -188,50 +174,58 @@ <j:set var="error" value="${package.valueOf('error').trim()}"/> <j:if test="${error == ''}"> <subsection name="${package.attribute('name').getValue()}"> - <table> - <tr> - <th>Afferent Couplings</th> - <th>Efferent Couplings</th> - <th>Abstractness</th> - <th>Instability</th> - <th>Distance</th> - </tr> - <tr> - <td>${package.valueOf("Stats/Ca")}</td> - <td>${package.valueOf("Stats/Ce")}</td> - <td> - <doc:formatAsNumber string="${package.valueOf('Stats/A')}" pattern="#%"/> - </td> - <td> - <doc:formatAsNumber string="${package.valueOf('Stats/I')}" pattern="#%"/> - </td> - <td> - <doc:formatAsNumber string="${package.valueOf('Stats/D')}" pattern="#%"/> - </td> - </tr> + <table summary="Packages"> + <thead> + <tr> + <th>Afferent Couplings</th> + <th>Efferent Couplings</th> + <th>Abstractness</th> + <th>Instability</th> + <th>Distance</th> + </tr> + </thead> + <tbody> + <tr> + <td>${package.valueOf("Stats/Ca")}</td> + <td>${package.valueOf("Stats/Ce")}</td> + <td> + <doc:formatAsNumber string="${package.valueOf('Stats/A')}" pattern="#%"/> + </td> + <td> + <doc:formatAsNumber string="${package.valueOf('Stats/I')}" pattern="#%"/> + </td> + <td> + <doc:formatAsNumber string="${package.valueOf('Stats/D')}" pattern="#%"/> + </td> + </tr> + </tbody> </table> - <table> - <tr> - <th>Abstract Classes</th> - <th>Concrete Classes</th> - <th>Used by Packages</th> - <th>Uses Packages</th> - </tr> - <tr> - <td> - <jdepend:classes currentNode="${package}" xpath="AbstractClasses/Class"/> - </td> - <td> - <jdepend:classes currentNode="${package}" xpath="ConcreteClasses/Class"/> - </td> - <td> - <jdepend:packages currentNode="${package}" xpath="UsedBy/Package"/> - </td> - <td> - <jdepend:packages currentNode="${package}" xpath="DependsUpon/Package"/> - </td> - </tr> + <table summary="Packages"> + <thead> + <tr> + <th>Abstract Classes</th> + <th>Concrete Classes</th> + <th>Used by Packages</th> + <th>Uses Packages</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <jdepend:classes currentNode="${package}" xpath="AbstractClasses/Class"/> + </td> + <td> + <jdepend:classes currentNode="${package}" xpath="ConcreteClasses/Class"/> + </td> + <td> + <jdepend:packages currentNode="${package}" xpath="UsedBy/Package"/> + </td> + <td> + <jdepend:packages currentNode="${package}" xpath="DependsUpon/Package"/> + </td> + </tr> + </tbody> </table> </subsection> </j:if> @@ -246,24 +240,31 @@ <p>There are no cyclic dependencies.</p> </j:when> <j:otherwise> - <table> - <tr> - <th>Package</th> - <th>Cyclic Dependencies</th> - </tr> - - <j:forEach var="package" items="${packages}"> + <table sumary="Cyclic dependencies"> + <thead> <tr> - <td>${package.attribute('Name').getValue()}</td> - <td> - <x:set var="cycles" select="$package/Package"/> - <j:forEach var="cycle" items="${cycles}"> - ${cycle.getText()} - <br/> - </j:forEach> - </td> + <th>Package</th> + <th>Cyclic Dependencies</th> </tr> - </j:forEach> + </thead> + + <tbody> + <j:forEach var="package" items="${packages}"> + <tr> + <td>${package.attribute('Name').getValue()}</td> + <td> + <x:set var="cycles" select="$package/Package"/> + <j:if test="${!cycles.isEmpty()}"> + <ul> + <j:forEach var="cycle" items="${cycles}"> + <li>${cycle.getText()}</li> + </j:forEach> + </ul> + </j:if> + </td> + </tr> + </j:forEach> + </tbody> </table> </j:otherwise> </j:choose> @@ -280,80 +281,84 @@ documentation</a>. </p> - <table> - <tr> - <th>Term</th> - <th>Description</th> - </tr> - <tr> - <td>Number of Classes</td> - <td> - The number of concrete and abstract classes (and interfaces) - in the package is an indicator of the extensibility of the - package. - </td> - </tr> - <tr> - <td>Afferent Couplings</td> - <td> - The number of other packages that depend upon classes within - the package is an indicator of the package's responsibility. - </td> - </tr> - <tr> - <td>Efferent Couplings</td> - <td> - The number of other packages that the classes in the package - depend upon is an indicator of the package's independence. - </td> - </tr> - <tr> - <td>Abstractness</td> - <td> - The ratio of the number of abstract classes (and interfaces) - in the analyzed package to the total number of classes in - the analyzed package. The range for this metric is 0 to 1, - with A=0 indicating a completely concrete package and A=1 - indicating a completely abstract package. - </td> - </tr> - <tr> - <td>Instability</td> - <td> - The ratio of efferent coupling (Ce) to total coupling (Ce / - (Ce + Ca)). This metric is an indicator of the package's - resilience to change. The range for this metric is 0 to 1, - with I=0 indicating a completely stable package and I=1 - indicating a completely instable package. - </td> - </tr> - <tr> - <td>Distance</td> - <td> - The perpendicular distance of a package from the idealized - line A + I = 1. This metric is an indicator of the package's - balance between abstractness and stability. A package - squarely on the main sequence is optimally balanced with - respect to its abstractness and stability. Ideal packages - are either completely abstract and stable (x=0, y=1) or - completely concrete and instable (x=1, y=0). The range for - this metric is 0 to 1, with D=0 indicating a package that is - coincident with the main sequence and D=1 indicating a - package that is as far from the main sequence as possible. - </td> - </tr> - <tr> - <td>Cycles</td> - <td> - Packages participating in a package dependency cycle are in - a deadly embrace with respect to reusability and their - release cycle. Package dependency cycles can be easily - identified by reviewing the textual reports of dependency - cycles. Once these dependency cycles have been identified - with JDepend, they can be broken by employing various - object-oriented techniques. - </td> - </tr> + <table summary="Explanations"> + <thead> + <tr> + <th>Term</th> + <th>Description</th> + </tr> + </thead> + <tbody> + <tr> + <td>Number of Classes</td> + <td> + The number of concrete and abstract classes (and interfaces) + in the package is an indicator of the extensibility of the + package. + </td> + </tr> + <tr> + <td>Afferent Couplings</td> + <td> + The number of other packages that depend upon classes within + the package is an indicator of the package's responsibility. + </td> + </tr> + <tr> + <td>Efferent Couplings</td> + <td> + The number of other packages that the classes in the package + depend upon is an indicator of the package's independence. + </td> + </tr> + <tr> + <td>Abstractness</td> + <td> + The ratio of the number of abstract classes (and interfaces) + in the analyzed package to the total number of classes in + the analyzed package. The range for this metric is 0 to 1, + with A=0 indicating a completely concrete package and A=1 + indicating a completely abstract package. + </td> + </tr> + <tr> + <td>Instability</td> + <td> + The ratio of efferent coupling (Ce) to total coupling (Ce / + (Ce + Ca)). This metric is an indicator of the package's + resilience to change. The range for this metric is 0 to 1, + with I=0 indicating a completely stable package and I=1 + indicating a completely instable package. + </td> + </tr> + <tr> + <td>Distance</td> + <td> + The perpendicular distance of a package from the idealized + line A + I = 1. This metric is an indicator of the package's + balance between abstractness and stability. A package + squarely on the main sequence is optimally balanced with + respect to its abstractness and stability. Ideal packages + are either completely abstract and stable (x=0, y=1) or + completely concrete and instable (x=1, y=0). The range for + this metric is 0 to 1, with D=0 indicating a package that is + coincident with the main sequence and D=1 indicating a + package that is as far from the main sequence as possible. + </td> + </tr> + <tr> + <td>Cycles</td> + <td> + Packages participating in a package dependency cycle are in + a deadly embrace with respect to reusability and their + release cycle. Package dependency cycles can be easily + identified by reviewing the textual reports of dependency + cycles. Once these dependency cycles have been identified + with JDepend, they can be broken by employing various + object-oriented techniques. + </td> + </tr> + </tbody> </table> </section> 1.4 +6 -0 maven-plugins/jdepend/xdocs/changes.xml Index: changes.xml =================================================================== RCS file: /home/cvs/maven-plugins/jdepend/xdocs/changes.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- changes.xml 29 Sep 2003 06:18:41 -0000 1.3 +++ changes.xml 29 Jan 2004 04:58:36 -0000 1.4 @@ -6,6 +6,12 @@ </properties> <body> + <release version="1.4" date="in CVS"> + <action dev="dion" type="update"> + Apply MAVEN-1132 + </action> + </release> + <release version="1.3" date="2003-09-29"> <action dev="evenisse" type="fix"> Add xml declaration to generated report. Fixed for character encoding. 1.24 +10 -3 maven-plugins/jdepend/project.xml Index: project.xml =================================================================== RCS file: /home/cvs/maven-plugins/jdepend/project.xml,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- project.xml 29 Dec 2003 04:38:06 -0000 1.23 +++ project.xml 29 Jan 2004 04:58:36 -0000 1.24 @@ -5,7 +5,7 @@ <pomVersion>3</pomVersion> <id>maven-jdepend-plugin</id> <name>Maven JDepend Plugin</name> - <currentVersion>1.3</currentVersion> + <currentVersion>1.4-SNAPSHOT</currentVersion> <description/> <shortDescription>Produce metrics</shortDescription> <url>http://maven.apache.org/reference/plugins/jdepend/</url> @@ -14,6 +14,13 @@ <connection>scm:cvs:pserver:[EMAIL PROTECTED]:/home/cvspublic:maven/src/plugins-build/jdepend/</connection> <url>http://cvs.apache.org/viewcvs/maven/src/plugins-build/jdepend/</url> </repository> + <versions> + <version> + <id>1.4</id> + <name>1.4</name> + <tag>HEAD</tag> + </version> + </versions> <developers> <developer> <name>dIon Gillard</name> @@ -34,10 +41,10 @@ </roles> </developer> <developer> - <name>Stéphane Mor</name> + <name>Stéphane Mor</name> <id>smor</id> <email>[EMAIL PROTECTED]</email> - <organization>Hasgard Systèmes et Réseaux</organization> + <organization>Hasgard Systèmes et Réseaux</organization> <roles> <role>Java Developer</role> </roles>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]