[MPMD-324] Ruleset URLs have hyphen replaced with forwardslash
diff --git a/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java b/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java
index 04483da..8f6a794 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java
@@ -460,7 +460,7 @@
     {
         String result = ruleset.trim();
         String lowercase = result.toLowerCase( Locale.ROOT );
-        if ( lowercase.endsWith( ".xml" ) )
+        if ( lowercase.startsWith( "http://" ) || lowercase.startsWith( "https://" ) || lowercase.endsWith( ".xml" ) )
         {
             return result;
         }
diff --git a/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java b/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java
index 93f9f88..db8f94f 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java
@@ -719,6 +719,8 @@
         final String sonarExportRulesetUrl = "http://localhost:" + mockServer.port() + sonarProfileUrl;
         final String myRulesetBaseUrl = "/config/my-ruleset.xml";
         final String myRulesetUrl = "http://localhost:" + mockServer.port() + myRulesetBaseUrl;
+        final String notAInternalRulesetBaseUrl = "/projects/OURPROJECT/repos/ourproject-pmd/raw/InProgressRuleset.xml?at=refs%2Fheads%2Fmaster";
+        final String notAInternalRulesetUrl = "http://localhost:" + mockServer.port() + notAInternalRulesetBaseUrl;
 
         WireMock.configureFor( "localhost", port );
         WireMock.stubFor( WireMock.get( WireMock.urlEqualTo( sonarProfileUrl ) )
@@ -727,6 +729,9 @@
         WireMock.stubFor( WireMock.get( WireMock.urlEqualTo( myRulesetBaseUrl ) )
                 .willReturn( WireMock.aResponse().withStatus( 200 ).withHeader( "Content-Type",
                                                                                 "text/xml" ).withBody( sonarRuleset ) ) );
+        WireMock.stubFor( WireMock.get( WireMock.urlEqualTo( notAInternalRulesetBaseUrl ) )
+                .willReturn( WireMock.aResponse().withStatus( 200 ).withHeader( "Content-Type",
+                                                                                "text/xml" ).withBody( sonarRuleset ) ) );
 
         FileUtils.copyDirectoryStructure( new File( getBasedir(),
                                                     "src/test/resources/unit/default-configuration/jxr-files" ),
@@ -738,6 +743,7 @@
         PmdReport mojo = (PmdReport) lookupMojo( "pmd", testPom );
         mojo.rulesets[3] = sonarExportRulesetUrl;
         mojo.rulesets[4] = myRulesetUrl;
+        mojo.rulesets[5] = notAInternalRulesetUrl;
         mojo.execute();
 
         // these are the rulesets, that have been copied to target/pmd/rulesets
@@ -756,6 +762,9 @@
         generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/my-ruleset.xml" );
         assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
 
+        generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd/rulesets/InProgressRuleset.xml_at_refs_2Fheads_2Fmaster.xml" );
+        assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
+
         mockServer.stop();
     }
 
diff --git a/src/test/resources/unit/default-configuration/pmd-report-resolve-rulesets.xml b/src/test/resources/unit/default-configuration/pmd-report-resolve-rulesets.xml
index 5d4ea4b..351ef8e 100644
--- a/src/test/resources/unit/default-configuration/pmd-report-resolve-rulesets.xml
+++ b/src/test/resources/unit/default-configuration/pmd-report-resolve-rulesets.xml
@@ -44,6 +44,7 @@
             <!-- note, the port of the http urls will be replaced by the unit test -->
             <ruleset>http://localhost:12345/profiles/export?format=pmd&amp;language=java&amp;name=Sonar%2520way</ruleset>
             <ruleset>http://localhost:12345/config/my-ruleset.xml</ruleset>
+            <ruleset>http://localhost:12345/projects/OURPROJECT/repos/ourproject-pmd/raw/InProgressRuleset.xml?at=refs%2Fheads%2Fmaster</ruleset>
           </rulesets>
           <format>xml</format>
           <linkXRef>true</linkXRef>