You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2011/08/18 12:28:18 UTC
svn commit: r1159144 - in /maven/plugins/trunk/maven-pmd-plugin/src:
main/java/org/apache/maven/plugin/pmd/PmdReport.java
test/java/org/apache/maven/plugin/pmd/PmdReportTest.java
Author: olamy
Date: Thu Aug 18 10:28:18 2011
New Revision: 1159144
URL: http://svn.apache.org/viewvc?rev=1159144&view=rev
Log:
[MPMD-127] Report cannot correctly handle external PMD ruleset as exported by Sonar QA Dashboard
Submitted by Tjerk Stroband
Modified:
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java
maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/PmdReportTest.java
Modified: maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java?rev=1159144&r1=1159143&r2=1159144&view=diff
==============================================================================
--- maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java (original)
+++ maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java Thu Aug 18 10:28:18 2011
@@ -380,7 +380,7 @@ public class PmdReport
* @param name the name of the file whose location is to be resolved
* @return a String that contains the absolute file name of the file
*/
- private String getLocationTemp( String name )
+ protected String getLocationTemp( String name )
{
String loc = name;
if ( loc.indexOf( '/' ) != -1 )
@@ -391,6 +391,13 @@ public class PmdReport
{
loc = loc.substring( loc.lastIndexOf( '\\' ) + 1 );
}
+
+ // MPMD-127 in the case that the rules are defined externally on a url
+ // we need to replace some special url characters that cannot be
+ // used in filenames on disk or produce ackward filenames.
+ // replace all occurrences of the following characters: ? : & = %
+ loc = loc.replaceAll("[\\?\\:\\&\\=\\%]", "_");
+
getLog().debug( "Before: " + name + " After: " + loc );
return loc;
}
Modified: maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/PmdReportTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/PmdReportTest.java?rev=1159144&r1=1159143&r2=1159144&view=diff
==============================================================================
--- maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/PmdReportTest.java (original)
+++ maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/PmdReportTest.java Thu Aug 18 10:28:18 2011
@@ -255,5 +255,23 @@ public class PmdReportTest
return str.toString();
}
+ /**
+ * Verify the correct working of the localtionTemp method
+ *
+ * @throws Exception
+ */
+ public void testLocationTemp()
+ throws Exception
+ {
+
+ File testPom = new File( getBasedir(),
+ "src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml" );
+ PmdReport mojo = (PmdReport) lookupMojo( "pmd", testPom );
+
+ assertEquals( "locationTemp is not correctly encoding filename",
+ "export_format_pmd_language_java_name_some_2520name", mojo.getLocationTemp(
+ "http://nemo.sonarsource.org/sonar/profiles/export?format=pmd&language=java&name=some%2520name" ) );
+
+ }
}