From a17770ed8dc7137abe17c4cf4748390e6273652e Mon Sep 17 00:00:00 2001
From: vmassol
Date: Wed, 19 Jan 2005 08:04:50 +0000
Subject: [PATCH] - Added technical background documentation on the web site
(Contributed by Siegfried Goeschl) - Addeed JavaNCSS aggregators (Contributed
by Siegfried Goeschl)
git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@125594 13f79535-47bb-0310-9956-ffa450edef68
---
dashboard/plugin.properties | 36 +++++-
dashboard/project.xml | 7 +-
.../aggregators/javancssclassestotal.jelly | 45 +++++++
.../aggregators/javancssfunctionstotal.jelly | 45 +++++++
.../aggregators/javancssjavadocstotal.jelly | 45 +++++++
.../aggregators/javancssncsstotal.jelly | 45 +++++++
.../aggregators/javancsspackagestotal.jelly | 45 +++++++
dashboard/src/plugin-test/maven.xml | 4 +-
dashboard/src/plugin-test/project.properties | 2 +-
dashboard/src/plugin-test/project.xml | 7 +
.../src/plugin-test/subproject1/project.xml | 1 +
dashboard/xdocs/aggregators.xml | 39 +++++-
dashboard/xdocs/changes.xml | 12 +-
dashboard/xdocs/faq.fml | 22 +++-
dashboard/xdocs/navigation.xml | 3 +-
dashboard/xdocs/technical.xml | 122 ++++++++++++++++++
16 files changed, 470 insertions(+), 10 deletions(-)
create mode 100644 dashboard/src/plugin-resources/aggregators/javancssclassestotal.jelly
create mode 100644 dashboard/src/plugin-resources/aggregators/javancssfunctionstotal.jelly
create mode 100644 dashboard/src/plugin-resources/aggregators/javancssjavadocstotal.jelly
create mode 100644 dashboard/src/plugin-resources/aggregators/javancssncsstotal.jelly
create mode 100644 dashboard/src/plugin-resources/aggregators/javancsspackagestotal.jelly
create mode 100644 dashboard/xdocs/technical.xml
diff --git a/dashboard/plugin.properties b/dashboard/plugin.properties
index 16129678..2ccab69c 100644
--- a/dashboard/plugin.properties
+++ b/dashboard/plugin.properties
@@ -1,5 +1,5 @@
# -------------------------------------------------------------------
-# Copyright 2001-2004 The Apache Software Foundation.
+# Copyright 2001-2005 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -252,3 +252,37 @@ maven.dashboard.aggregator.scmchangedcommit.label = SCM commits
maven.dashboard.aggregator.scmchangedcommit.goal = maven-changelog-plugin:report
maven.dashboard.aggregator.scmchangedcommit.description = Total number of scm commit.
+# JavaNCSS: total number of packages
+maven.dashboard.aggregator.javancsspackagestotal.script = ${maven.dashboard.aggregators.dir}/javancsspackagestotal.jelly
+maven.dashboard.aggregator.javancsspackagestotal.artifact = ${maven.build.dir}/javancss-raw-report.xml
+maven.dashboard.aggregator.javancsspackagestotal.label = JavaNCSS Packages Total
+maven.dashboard.aggregator.javancsspackagestotal.goal = maven-javancss-plugin:report
+maven.dashboard.aggregator.javancsspackagestotal.description = Total number of JavaNCSS packages
+
+# JavaNCSS: total number of classes
+maven.dashboard.aggregator.javancssclassestotal.script = ${maven.dashboard.aggregators.dir}/javancssclassestotal.jelly
+maven.dashboard.aggregator.javancssclassestotal.artifact = ${maven.build.dir}/javancss-raw-report.xml
+maven.dashboard.aggregator.javancssclassestotal.label = JavaNCSS Classes Total
+maven.dashboard.aggregator.javancssclassestotal.goal = maven-javancss-plugin:report
+maven.dashboard.aggregator.javancssclassestotal.description = Total number of JavaNCSS classes
+
+# JavaNCSS: total number of functions
+maven.dashboard.aggregator.javancssfunctionstotal.script = ${maven.dashboard.aggregators.dir}/javancssfunctionstotal.jelly
+maven.dashboard.aggregator.javancssfunctionstotal.artifact = ${maven.build.dir}/javancss-raw-report.xml
+maven.dashboard.aggregator.javancssfunctionstotal.label = JavaNCSS Functions Total
+maven.dashboard.aggregator.javancssfunctionstotal.goal = maven-javancss-plugin:report
+maven.dashboard.aggregator.javancssfunctionstotal.description = Total number of JavaNCSS functions
+
+# JavaNCSS: total number of non-commented source statements
+maven.dashboard.aggregator.javancssncsstotal.script = ${maven.dashboard.aggregators.dir}/javancssncsstotal.jelly
+maven.dashboard.aggregator.javancssncsstotal.artifact = ${maven.build.dir}/javancss-raw-report.xml
+maven.dashboard.aggregator.javancssncsstotal.label = JavaNCSS NCSS Total
+maven.dashboard.aggregator.javancssncsstotal.goal = maven-javancss-plugin:report
+maven.dashboard.aggregator.javancssncsstotal.description = Total number of JavaNCSS non-nommented source statements
+
+# JavaNCSS: total number of javadocs
+maven.dashboard.aggregator.javancssjavadocstotal.script = ${maven.dashboard.aggregators.dir}/javancssjavadocstotal.jelly
+maven.dashboard.aggregator.javancssjavadocstotal.artifact = ${maven.build.dir}/javancss-raw-report.xml
+maven.dashboard.aggregator.javancssjavadocstotal.label = JavaNCSS JavaDocs Total
+maven.dashboard.aggregator.javancssjavadocstotal.goal = maven-javancss-plugin:report
+maven.dashboard.aggregator.javancssjavadocstotal.description = Total number of JavaNCSS JavaDocs
diff --git a/dashboard/project.xml b/dashboard/project.xml
index 7b1c845a..28e734b2 100644
--- a/dashboard/project.xml
+++ b/dashboard/project.xml
@@ -2,7 +2,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dashboard/src/plugin-resources/aggregators/javancssfunctionstotal.jelly b/dashboard/src/plugin-resources/aggregators/javancssfunctionstotal.jelly
new file mode 100644
index 00000000..93bd2554
--- /dev/null
+++ b/dashboard/src/plugin-resources/aggregators/javancssfunctionstotal.jelly
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dashboard/src/plugin-resources/aggregators/javancssjavadocstotal.jelly b/dashboard/src/plugin-resources/aggregators/javancssjavadocstotal.jelly
new file mode 100644
index 00000000..48090a2b
--- /dev/null
+++ b/dashboard/src/plugin-resources/aggregators/javancssjavadocstotal.jelly
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dashboard/src/plugin-resources/aggregators/javancssncsstotal.jelly b/dashboard/src/plugin-resources/aggregators/javancssncsstotal.jelly
new file mode 100644
index 00000000..4cf08b3b
--- /dev/null
+++ b/dashboard/src/plugin-resources/aggregators/javancssncsstotal.jelly
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dashboard/src/plugin-resources/aggregators/javancsspackagestotal.jelly b/dashboard/src/plugin-resources/aggregators/javancsspackagestotal.jelly
new file mode 100644
index 00000000..9587810a
--- /dev/null
+++ b/dashboard/src/plugin-resources/aggregators/javancsspackagestotal.jelly
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dashboard/src/plugin-test/maven.xml b/dashboard/src/plugin-test/maven.xml
index f4fd91ad..2f39637e 100644
--- a/dashboard/src/plugin-test/maven.xml
+++ b/dashboard/src/plugin-test/maven.xml
@@ -55,8 +55,8 @@
-
-
+
+
diff --git a/dashboard/src/plugin-test/project.properties b/dashboard/src/plugin-test/project.properties
index 165400c0..b086969b 100644
--- a/dashboard/src/plugin-test/project.properties
+++ b/dashboard/src/plugin-test/project.properties
@@ -40,7 +40,7 @@ maven.dashboard.runreactor = false
# Define what dashboard aggregators will be run. This property is inherited
# by the subprojects and thus they don't need to define it again.
-maven.dashboard.aggregators = csall,cserrors,cswarnings,csfiles,clovertpc,cloverloc,cloverncloc,junittests,junitpassrate,junitfailures,juniterrors,simiantdl,pmdfiles,pmdviolations,fbfiles,fbviolations,jcoveragelipc,jcoverageloc,tasklistclass,tasklistmethod,tasklist,scmchangedfiles,scmchangedcommit
+maven.dashboard.aggregators = csall,cserrors,cswarnings,csfiles,clovertpc,cloverloc,cloverncloc,junittests,junitpassrate,junitfailures,juniterrors,simiantdl,pmdfiles,pmdviolations,fbfiles,fbviolations,jcoveragelipc,jcoverageloc,tasklistclass,tasklistmethod,tasklist,scmchangedfiles,scmchangedcommit,javancssclassestotal,javancssfunctionstotal,javancssncsstotal,javancsspackagestotal,javancssjavadocstotal
# Make sure that an XML report is generated whenever Clover is run. Also
# inherited by the subprojects.
diff --git a/dashboard/src/plugin-test/project.xml b/dashboard/src/plugin-test/project.xml
index 2b118512..45080230 100644
--- a/dashboard/src/plugin-test/project.xml
+++ b/dashboard/src/plugin-test/project.xml
@@ -52,6 +52,13 @@
0.8.4plugin
+
+
+ maven-plugins
+ maven-javancss-plugin
+ 1.3
+ plugin
+ src/java
diff --git a/dashboard/src/plugin-test/subproject1/project.xml b/dashboard/src/plugin-test/subproject1/project.xml
index 2e3dde81..f210c87e 100644
--- a/dashboard/src/plugin-test/subproject1/project.xml
+++ b/dashboard/src/plugin-test/subproject1/project.xml
@@ -41,5 +41,6 @@
maven-simian-pluginmaven-jcoverage-pluginmaven-tasklist-plugin
+ maven-javancss-plugin
diff --git a/dashboard/xdocs/aggregators.xml b/dashboard/xdocs/aggregators.xml
index 18d2d535..23f6e88f 100644
--- a/dashboard/xdocs/aggregators.xml
+++ b/dashboard/xdocs/aggregators.xml
@@ -2,7 +2,7 @@
+
+
+
+ Maven Dashboard Technical Background
+ Siegfried Goeschl
+
+
+
+
+ The Dashboard plugin aggregates report data from multiple Maven
+ reports over multiple projects using the reactor. To
+ understand the work of the plugin better we have to look at
+ the following topics
+
+
How to create the report data aggregate for a single project?
+
How are the report data aggregate for the master project?
+
+
+
+
+
+ The aggregation runs over the existing Maven reports but how to
+ get them?! Either the Dashboard plugin is told to collect data
+ from existing reports (but you have to make sure that all reports
+ exists) or it runs the required plugins itself (which
+ hurts the build time)
+
+
+ This behaviour is controlled by
+
+ maven.dashboard.rungoals = [true|false]
+
+
+
+ If this property is set to "true" the Dashboard plugin looks at
+ the value of 'maven.dashboard.aggregators' to determine which
+ plugins to run automatically. When running those plugins the
+ configuration of the started plugins are modified dynamically,
+ e.g. for the Clover plugin the XML report generation is enabled.
+
+
+
+
+ The aggregation for the master project is a two-step process
+ triggered by the reactor
+
+
Aggregate the report data for a single project
+
Aggregate the aggregated data over all projects
+
+
+
+
+ The result of the aggregation is a file 'dashboard-single.xml'
+ which could look like the following example collecting data of
+ JUnit, Clover, PMD, CVS and Checkstyle reports
+
+
+
+ 100 %
+ 54%
+ 2844
+ 0
+ 5
+ 27
+
+]]>
+
+
+
+
+ It is now time to collect the aggregated data for all
+ subprojects which results into a 'dashboard-data.xml'.
+ This file is then transformed to the Dashoard HTML
+ report.
+
+
+
+
+ 100 %
+ 54%
+ 2844
+ 0
+ 5
+ 27
+
+ ...
+
+ -
+ -
+ -
+ 7
+ 2
+ 121
+
+
+]]>
+