You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by de...@apache.org on 2006/11/08 23:35:23 UTC

svn commit: r472667 - /maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReportGenerator.java

Author: dennisl
Date: Wed Nov  8 14:35:22 2006
New Revision: 472667

URL: http://svn.apache.org/viewvc?view=rev&rev=472667
Log:
[MCHECKSTYLE-41] Rules summary count of duplicate JavadocMethod configurations are merged

o Check for severity level in countRuleViolation().

Modified:
    maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReportGenerator.java

Modified: maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReportGenerator.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReportGenerator.java?view=diff&rev=472667&r1=472666&r2=472667
==============================================================================
--- maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReportGenerator.java (original)
+++ maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReportGenerator.java Wed Nov  8 14:35:22 2006
@@ -227,6 +227,11 @@
         return ret;
     }
 
+    /**
+     * Create the rules summary section of the report.
+     *
+     * @param results The results to summarize
+     */
     private void doRulesSummary( CheckstyleResults results )
     {
         if ( checkstyleConfig == null )
@@ -274,6 +279,12 @@
         sink.section1_();
     }
 
+    /**
+     * Create a summary for each Checkstyle rule.
+     *
+     * @param configChildren Configurations for each Checkstyle rule
+     * @param results The results to summarize
+     */
     private void doRuleChildren( Configuration configChildren[], CheckstyleResults results )
     {
         for ( int cci = 0; cci < configChildren.length; cci++ )
@@ -292,6 +303,13 @@
         }
     }
 
+    /**
+     * Create a summary for one Checkstyle rule.
+     *
+     * @param checkerConfig Configuration for the Checkstyle rule
+     * @param ruleName The name of the rule, for example "JavadocMethod"
+     * @param results The results to summarize
+     */
     private void doRuleRow( Configuration checkerConfig, String ruleName, CheckstyleResults results )
     {
         sink.tableRow();
@@ -351,11 +369,14 @@
 
         sink.tableCell();
         String fixedmessage = getConfigAttribute( checkerConfig, "message", null );
-        sink.text( countRuleViolation( results.getFiles().values().iterator(), ruleName, fixedmessage ) );
+        // Grab the severity from the rule configuration, use null as default value
+        String configSeverity = getConfigAttribute( checkerConfig, "severity", null );
+        sink.text( countRuleViolation( results.getFiles().values().iterator(), ruleName, fixedmessage, configSeverity ) );
         sink.tableCell_();
 
         sink.tableCell();
-        String configSeverity = getConfigAttribute( checkerConfig, "severity", "error" );
+        // Grab the severity again from the rule configuration, this time use error as default value
+        configSeverity = getConfigAttribute( checkerConfig, "severity", "error" );
         iconSeverity( configSeverity );
         sink.nonBreakingSpace();
         sink.text( StringUtils.capitalise( configSeverity ) );
@@ -394,7 +415,16 @@
         return ret;
     }
 
-    private String countRuleViolation( Iterator files, String ruleName, String message )
+    /**
+     * Count the number of violations for the given rule.
+     *
+     * @param files An iterator over the set of files that has violations
+     * @param ruleName The name of the rule
+     * @param message A message that, if it's not null, will be matched to the message from the violation
+     * @param severity A severity that, if it's not null, will be matched to the severity from the violation
+     * @return The number of rule violations
+     */
+    private String countRuleViolation( Iterator files, String ruleName, String message, String severity )
     {
         long count = 0;
         String sourceName;
@@ -429,6 +459,17 @@
                         String msgWithoutSingleQuote = StringUtils.replace( message, "'", "" );
                         if ( message.equals( event.getMessage() )
                             || msgWithoutSingleQuote.equals( event.getMessage() ) )
+                        {
+                            count++;
+                        }
+                    }
+                    // Check the severity. This helps to distinguish between
+                    // different configurations for the same rule, where each
+                    // configuration has a different severity, like JavadocMetod.
+                    // See also http://jira.codehaus.org/browse/MCHECKSTYLE-41
+                    else if ( severity != null )
+                    {
+                        if ( severity.equals( event.getSeverityLevel().getName() ) )
                         {
                             count++;
                         }