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