[prev in list] [next in list] [prev in thread] [next in thread] 

List:       maven-dev
Subject:    svn commit: r939832 - in
From:       hboutemy () apache ! org
Date:       2010-04-30 21:42:59
Message-ID: 20100430214259.7180723889CB () eris ! apache ! org
[Download RAW message or body]

Author: hboutemy
Date: Fri Apr 30 21:42:59 2010
New Revision: 939832

URL: http://svn.apache.org/viewvc?rev=939832&view=rev
Log:
[MPMD-99] calculate PMD.VERSION by runtime reflection to avoid compiler inlining the \
constant value base on a patch submitted by: Henri Tremblay

Modified:
    maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdReport.java
  maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReportGenerator.java
  maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReportListener.java


Modified: maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdReport.java
                
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/o \
rg/apache/maven/plugin/pmd/AbstractPmdReport.java?rev=939832&r1=939831&r2=939832&view=diff
 ==============================================================================
--- maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdReport.java \
                (original)
+++ maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdReport.java \
Fri Apr 30 21:42:59 2010 @@ -32,6 +32,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
 
+import net.sourceforge.pmd.PMD;
+
 import org.apache.maven.doxia.siterenderer.Renderer;
 import org.apache.maven.model.ReportPlugin;
 import org.apache.maven.project.MavenProject;
@@ -447,4 +449,20 @@ public abstract class AbstractPmdReport
     {
         return ( outputEncoding != null ) ? outputEncoding : ReaderFactory.UTF_8;
     }
+
+    static String getPmdVersion()
+    {
+        try
+        {
+            return (String) PMD.class.getField( "VERSION" ).get( null );
+        }
+        catch ( IllegalAccessException e )
+        {
+            throw new RuntimeException( "PMD VERSION field not accessible", e );
+        }
+        catch ( NoSuchFieldException e )
+        {
+            throw new RuntimeException( "PMD VERSION field not found", e );
+        }
+    }
 }

Modified: maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReportGenerator.java
                
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/o \
rg/apache/maven/plugin/pmd/CpdReportGenerator.java?rev=939832&r1=939831&r2=939832&view=diff
 ==============================================================================
--- maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReportGenerator.java \
                (original)
+++ maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReportGenerator.java \
Fri Apr 30 21:42:59 2010 @@ -24,7 +24,6 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.ResourceBundle;
 
-import net.sourceforge.pmd.PMD;
 import net.sourceforge.pmd.cpd.Match;
 
 import org.apache.maven.doxia.sink.Sink;
@@ -88,7 +87,7 @@ public class CpdReportGenerator
         sink.link( "http://pmd.sourceforge.net/cpd.html" );
         sink.text( "CPD" );
         sink.link_();
-        sink.text( " " + PMD.VERSION + "." );
+        sink.text( " " + AbstractPmdReport.getPmdVersion() + "." );
         sink.paragraph_();
 
         sink.section1_();

Modified: maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReportListener.java
                
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/o \
rg/apache/maven/plugin/pmd/PmdReportListener.java?rev=939832&r1=939831&r2=939832&view=diff
 ==============================================================================
--- maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReportListener.java \
                (original)
+++ maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReportListener.java \
Fri Apr 30 21:42:59 2010 @@ -28,7 +28,6 @@ import java.util.List;
 import java.util.ResourceBundle;
 
 import net.sourceforge.pmd.IRuleViolation;
-import net.sourceforge.pmd.PMD;
 import net.sourceforge.pmd.ReportListener;
 import net.sourceforge.pmd.stat.Metric;
 
@@ -189,7 +188,7 @@ public class PmdReportListener
         sink.link( "http://pmd.sourceforge.net/" );
         sink.text( "PMD" );
         sink.link_();
-        sink.text( " " + PMD.VERSION + "." );
+        sink.text( " " + AbstractPmdReport.getPmdVersion() + "." );
         sink.paragraph_();
 
         sink.section1_();
@@ -305,5 +304,4 @@ public class PmdReportListener
 
         sink.close();
     }
-
 }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic