You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by do...@apache.org on 2014/05/30 02:45:37 UTC
[1/2] git commit: Supply a default xsl file for generating the
jdepend report.
Repository: buildr
Updated Branches:
refs/heads/master fb49ee846 -> 4934d3b16
Supply a default xsl file for generating the jdepend report.
Project: http://git-wip-us.apache.org/repos/asf/buildr/repo
Commit: http://git-wip-us.apache.org/repos/asf/buildr/commit/d5decfe7
Tree: http://git-wip-us.apache.org/repos/asf/buildr/tree/d5decfe7
Diff: http://git-wip-us.apache.org/repos/asf/buildr/diff/d5decfe7
Branch: refs/heads/master
Commit: d5decfe7a2b7e9f0b833f78c012cb26f6adb6397
Parents: fb49ee8
Author: Peter Donald <pe...@realityforge.org>
Authored: Fri May 30 10:43:05 2014 +1000
Committer: Peter Donald <pe...@realityforge.org>
Committed: Fri May 30 10:43:05 2014 +1000
----------------------------------------------------------------------
CHANGELOG | 1 +
addon/buildr/jdepend-report.xsl | 404 +++++++++++++++++++++++++++++++++++
addon/buildr/jdepend.rb | 10 +-
3 files changed, 414 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/buildr/blob/d5decfe7/CHANGELOG
----------------------------------------------------------------------
diff --git a/CHANGELOG b/CHANGELOG
index e10fc3f..9de1fad 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,4 +1,5 @@
1.4.18 (Pending)
+* Change: Supply a default xsl file for generating the jdepend report.
* Fixed: Fix the naming of css_lint addon file so it is made available
as an addon.
http://git-wip-us.apache.org/repos/asf/buildr/blob/d5decfe7/addon/buildr/jdepend-report.xsl
----------------------------------------------------------------------
diff --git a/addon/buildr/jdepend-report.xsl b/addon/buildr/jdepend-report.xsl
new file mode 100644
index 0000000..81f3a29
--- /dev/null
+++ b/addon/buildr/jdepend-report.xsl
@@ -0,0 +1,404 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+ <!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+ <xsl:output method="html" indent="yes" encoding="US-ASCII"/>
+
+ <xsl:template match="JDepend">
+ <html>
+ <head>
+ <title>JDepend Analysis</title>
+
+ <style type="text/css">
+ body {
+ font:normal 68% verdana,arial,helvetica;
+ color:#000000;
+ }
+ table tr td, tr th {
+ font-size: 68%;
+ }
+ table.details tr th{
+ font-weight: bold;
+ text-align:left;
+ background:#a6caf0;
+ }
+ table.details tr td{
+ background:#eeeee0;
+ }
+
+ p {
+ line-height:1.5em;
+ margin-top:0.5em; margin-bottom:1.0em;
+ margin-left:2em;
+ margin-right:2em;
+ }
+ h1 {
+ margin: 0px 0px 5px; font: 165% verdana,arial,helvetica
+ }
+ h2 {
+ margin-top: 1em; margin-bottom: 0.5em; font: bold 125% verdana,arial,helvetica
+ }
+ h3 {
+ margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica
+ }
+ h4 {
+ margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
+ }
+ h5 {
+ margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
+ }
+ h6 {
+ margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
+ }
+ .Error {
+ font-weight:bold; color:red;
+ }
+ .Failure {
+ font-weight:bold; color:purple;
+ }
+ .Properties {
+ text-align:right;
+ }
+ </style>
+
+
+ </head>
+ <body>
+ <!--h1>JDepend Report</h1>
+ <ul>
+ <xsl:for-each select="./Packages/Package">
+ <xsl:sort select="@name"/>
+ <li><xsl:value-of select="@name"/></li>
+ </xsl:for-each>
+ </ul-->
+
+ <h1>
+ <a name="top">JDepend Analysis</a>
+ </h1>
+ <p align="right">Designed for use with
+ <a href="http://www.clarkware.com/software/JDepend.html">JDepend</a> and <a href="http://buildr.apache.org">Buildr</a>.
+ </p>
+ <hr size="2"/>
+
+ <table width="100%">
+ <tr>
+ <td>
+ <a name="NVsummary">
+ <h2>Summary</h2>
+ </a>
+ </td>
+ <td align="right">
+ [<a href="#NVsummary">summary</a>]
+ [<a href="#NVpackages">packages</a>]
+ [<a href="#NVcycles">cycles</a>]
+ [<a href="#NVexplanations">explanations</a>]
+ </td>
+ </tr>
+ </table>
+
+ <table width="100%" class="details">
+ <tr>
+ <th>Package</th>
+ <th>Total Classes</th>
+ <th>
+ <a href="#EXnumber">Abstract Classes</a>
+ </th>
+ <th>
+ <a href="#EXnumber">Concrete Classes</a>
+ </th>
+ <th>
+ <a href="#EXafferent">Afferent Couplings</a>
+ </th>
+ <th>
+ <a href="#EXefferent">Efferent Couplings</a>
+ </th>
+ <th>
+ <a href="#EXabstractness">Abstractness</a>
+ </th>
+ <th>
+ <a href="#EXinstability">Instability</a>
+ </th>
+ <th>
+ <a href="#EXdistance">Distance</a>
+ </th>
+
+ </tr>
+ <xsl:for-each select="./Packages/Package">
+ <xsl:if test="count(error) = 0">
+ <tr>
+ <td align="left">
+ <a>
+ <xsl:attribute name="href">#PK<xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:value-of select="@name"/>
+ </a>
+ </td>
+ <td align="right">
+ <xsl:value-of select="Stats/TotalClasses"/>
+ </td>
+ <td align="right">
+ <xsl:value-of select="Stats/AbstractClasses"/>
+ </td>
+ <td align="right">
+ <xsl:value-of select="Stats/ConcreteClasses"/>
+ </td>
+ <td align="right">
+ <xsl:value-of select="Stats/Ca"/>
+ </td>
+ <td align="right">
+ <xsl:value-of select="Stats/Ce"/>
+ </td>
+ <td align="right">
+ <xsl:value-of select="Stats/A"/>
+ </td>
+ <td align="right">
+ <xsl:value-of select="Stats/I"/>
+ </td>
+ <td align="right">
+ <xsl:value-of select="Stats/D"/>
+ </td>
+
+
+ </tr>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:for-each select="./Packages/Package">
+ <xsl:if test="count(error) > 0">
+ <tr>
+ <td align="left">
+ <xsl:value-of select="@name"/>
+ </td>
+ <td align="left" colspan="8">
+ <xsl:value-of select="error"/>
+ </td>
+ </tr>
+ </xsl:if>
+ </xsl:for-each>
+ </table>
+
+ <table width="100%">
+ <tr>
+ <td>
+ <a name="NVpackages">
+ <h2>Packages</h2>
+ </a>
+ </td>
+ <td align="right">
+ [<a href="#NVsummary">summary</a>]
+ [<a href="#NVpackages">packages</a>]
+ [<a href="#NVcycles">cycles</a>]
+ [<a href="#NVexplanations">explanations</a>]
+ </td>
+ </tr>
+ </table>
+
+ <xsl:for-each select="./Packages/Package">
+ <xsl:if test="count(error) = 0">
+ <h3>
+ <a>
+ <xsl:attribute name="name">PK<xsl:value-of select="@name"/>
+ </xsl:attribute>
+ <xsl:value-of select="@name"/>
+ </a>
+ </h3>
+
+ <table width="100%">
+ <tr>
+ <td><a href="#EXafferent">Afferent Couplings</a>:
+ <xsl:value-of select="Stats/Ca"/>
+ </td>
+ <td><a href="#EXefferent">Efferent Couplings</a>:
+ <xsl:value-of select="Stats/Ce"/>
+ </td>
+ <td><a href="#EXabstractness">Abstractness</a>:
+ <xsl:value-of select="Stats/A"/>
+ </td>
+ <td><a href="#EXinstability">Instability</a>:
+ <xsl:value-of select="Stats/I"/>
+ </td>
+ <td><a href="#EXdistance">Distance</a>:
+ <xsl:value-of select="Stats/D"/>
+ </td>
+ </tr>
+ </table>
+
+ <table width="100%" class="details">
+ <tr>
+ <th>Abstract Classes</th>
+ <th>Concrete Classes</th>
+ <th>Used by Packages</th>
+ <th>Uses Packages</th>
+ </tr>
+ <tr>
+ <td valign="top" width="25%">
+ <xsl:if test="count(AbstractClasses/Class)=0">
+ <i>None</i>
+ </xsl:if>
+ <xsl:for-each select="AbstractClasses/Class">
+ <xsl:value-of select="node()"/>
+ <br/>
+ </xsl:for-each>
+ </td>
+ <td valign="top" width="25%">
+ <xsl:if test="count(ConcreteClasses/Class)=0">
+ <i>None</i>
+ </xsl:if>
+ <xsl:for-each select="ConcreteClasses/Class">
+ <xsl:value-of select="node()"/>
+ <br/>
+ </xsl:for-each>
+ </td>
+ <td valign="top" width="25%">
+ <xsl:if test="count(UsedBy/Package)=0">
+ <i>None</i>
+ </xsl:if>
+ <xsl:for-each select="UsedBy/Package">
+ <a>
+ <xsl:attribute name="href">#PK<xsl:value-of select="node()"/>
+ </xsl:attribute>
+ <xsl:value-of select="node()"/>
+ </a>
+ <br/>
+ </xsl:for-each>
+ </td>
+ <td valign="top" width="25%">
+ <xsl:if test="count(DependsUpon/Package)=0">
+ <i>None</i>
+ </xsl:if>
+ <xsl:for-each select="DependsUpon/Package">
+ <a>
+ <xsl:attribute name="href">#PK<xsl:value-of select="node()"/>
+ </xsl:attribute>
+ <xsl:value-of select="node()"/>
+ </a>
+ <br/>
+ </xsl:for-each>
+ </td>
+ </tr>
+ </table>
+ </xsl:if>
+ </xsl:for-each>
+
+ <table width="100%">
+ <tr>
+ <td>
+ <a name="NVcycles">
+ <h2>Cycles</h2>
+ </a>
+ </td>
+ <td align="right">
+ [<a href="#NVsummary">summary</a>]
+ [<a href="#NVpackages">packages</a>]
+ [<a href="#NVcycles">cycles</a>]
+ [<a href="#NVexplanations">explanations</a>]
+ </td>
+ </tr>
+ </table>
+
+ <xsl:if test="count(Cycles/Package) = 0">
+ <p>There are no cyclic dependancies.</p>
+ </xsl:if>
+ <xsl:for-each select="Cycles/Package">
+ <h3>
+ <xsl:value-of select="@Name"/>
+ </h3>
+ <p>
+ <xsl:for-each select="Package">
+ <xsl:value-of select="."/>
+ <br/>
+ </xsl:for-each>
+ </p>
+ </xsl:for-each>
+
+ <table width="100%">
+ <tr>
+ <td>
+ <a name="NVexplanations">
+ <h2>Explanations</h2>
+ </a>
+ </td>
+ <td align="right">
+ [<a href="#NVsummary">summary</a>]
+ [<a href="#NVpackages">packages</a>]
+ [<a href="#NVcycles">cycles</a>]
+ [<a href="#NVexplanations">explanations</a>]
+ </td>
+ </tr>
+ </table>
+
+ <p>The following explanations are for quick reference and are lifted directly from the original<a
+ href="http://www.clarkware.com/software/JDepend.html">
+ JDepend documentation</a>.
+ </p>
+
+ <h3>
+ <a name="EXnumber">Number of Classes</a>
+ </h3>
+ <p>The number of concrete and abstract classes (and interfaces) in the package is an indicator of the
+ extensibility of the package.
+ </p>
+ <h3>
+ <a name="EXafferent">Afferent Couplings</a>
+ </h3>
+ <p>The number of other packages that depend upon classes within the package is an indicator of the package's
+ responsibility.
+ </p>
+ <h3>
+ <a name="EXefferent">Efferent Couplings</a>
+ </h3>
+ <p>The number of other packages that the classes in the package depend upon is an indicator of the package's
+ independence.
+ </p>
+ <h3>
+ <a name="EXabstractness">Abstractness</a>
+ </h3>
+ <p>The ratio of the number of abstract classes (and interfaces) in the analyzed package to the total number of
+ classes in the analyzed package.
+ </p>
+ <p>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.
+ </p>
+ <h3>
+ <a name="EXinstability">Instability</a>
+ </h3>
+ <p>The ratio of efferent coupling (Ce) to total coupling (Ce / (Ce + Ca)). This metric is an indicator of the
+ package's resilience to change.
+ </p>
+ <p>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.
+ </p>
+ <h3>
+ <a name="EXdistance">Distance</a>
+ </h3>
+ <p>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.
+ </p>
+ <p>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).
+ </p>
+ <p>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.
+ </p>
+
+ </body>
+ </html>
+ </xsl:template>
+
+</xsl:stylesheet>
http://git-wip-us.apache.org/repos/asf/buildr/blob/d5decfe7/addon/buildr/jdepend.rb
----------------------------------------------------------------------
diff --git a/addon/buildr/jdepend.rb b/addon/buildr/jdepend.rb
index ad6d6a6..b22761f 100644
--- a/addon/buildr/jdepend.rb
+++ b/addon/buildr/jdepend.rb
@@ -98,7 +98,15 @@ module Buildr
attr_writer :style_file
def style_file
- @style_file || "#{self.config_directory}/jdepend.xsl"
+ unless @style_file
+ project_xsl = "#{self.config_directory}/jdepend-report.xsl"
+ if File.exist?(project_xsl)
+ @style_file = project_xsl
+ else
+ @style_file = "#{File.dirname(__FILE__)}/jdepend-report.xsl"
+ end
+ end
+ @style_file
end
def target_paths
[2/2] git commit: Add licenses to the xsl files and enhance the
'license' rake task to enforce licenses have been added to xsl files
Posted by do...@apache.org.
Add licenses to the xsl files and enhance the 'license' rake task to enforce licenses have been added to xsl files
Project: http://git-wip-us.apache.org/repos/asf/buildr/repo
Commit: http://git-wip-us.apache.org/repos/asf/buildr/commit/4934d3b1
Tree: http://git-wip-us.apache.org/repos/asf/buildr/tree/4934d3b1
Diff: http://git-wip-us.apache.org/repos/asf/buildr/diff/4934d3b1
Branch: refs/heads/master
Commit: 4934d3b16ba5b72a38833c7d7ff947484e6e2214
Parents: d5decfe
Author: Peter Donald <pe...@realityforge.org>
Authored: Fri May 30 10:45:28 2014 +1000
Committer: Peter Donald <pe...@realityforge.org>
Committed: Fri May 30 10:45:28 2014 +1000
----------------------------------------------------------------------
addon/buildr/checkstyle-report.xsl | 17 +++++++++++++++++
addon/buildr/css_lint-report.xsl | 17 +++++++++++++++++
addon/buildr/scss_lint-report.xsl | 18 ++++++++++++++++++
rakelib/checks.rake | 2 +-
4 files changed, 53 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/buildr/blob/4934d3b1/addon/buildr/checkstyle-report.xsl
----------------------------------------------------------------------
diff --git a/addon/buildr/checkstyle-report.xsl b/addon/buildr/checkstyle-report.xsl
index 07843a4..716acf8 100644
--- a/addon/buildr/checkstyle-report.xsl
+++ b/addon/buildr/checkstyle-report.xsl
@@ -2,6 +2,23 @@
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
<xsl:template match="/">
<html>
<head>
http://git-wip-us.apache.org/repos/asf/buildr/blob/4934d3b1/addon/buildr/css_lint-report.xsl
----------------------------------------------------------------------
diff --git a/addon/buildr/css_lint-report.xsl b/addon/buildr/css_lint-report.xsl
index 11f174e..290533f 100644
--- a/addon/buildr/css_lint-report.xsl
+++ b/addon/buildr/css_lint-report.xsl
@@ -2,6 +2,23 @@
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
<xsl:template match="/">
<html>
<head>
http://git-wip-us.apache.org/repos/asf/buildr/blob/4934d3b1/addon/buildr/scss_lint-report.xsl
----------------------------------------------------------------------
diff --git a/addon/buildr/scss_lint-report.xsl b/addon/buildr/scss_lint-report.xsl
index b378207..9ab913f 100644
--- a/addon/buildr/scss_lint-report.xsl
+++ b/addon/buildr/scss_lint-report.xsl
@@ -2,6 +2,24 @@
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+
<xsl:template match="/">
<html>
<head>
http://git-wip-us.apache.org/repos/asf/buildr/blob/4934d3b1/rakelib/checks.rake
----------------------------------------------------------------------
diff --git a/rakelib/checks.rake b/rakelib/checks.rake
index 6b02665..744890e 100644
--- a/rakelib/checks.rake
+++ b/rakelib/checks.rake
@@ -14,7 +14,7 @@
# the License.
desc 'Check that source files contain the Apache license'
-task 'license' => FileList['{addon,lib,doc,rakelib}/**/*.{rb,rake,java}', 'buildr.gemspec', 'Rakefile'] do |task|
+task 'license' => FileList['{addon,lib,doc,rakelib}/**/*.{xsl,rb,rake,java}', 'buildr.gemspec', 'Rakefile'] do |task|
puts 'Checking that files contain the Apache license ... '
required = task.prerequisites.select { |fn| File.file?(fn) }
missing = required.reject { |fn|