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 2013/01/07 16:37:24 UTC

svn commit: r1429846 - in /maven/plugins/trunk/maven-checkstyle-plugin: ./ src/it/multi-modules-aggregate/ src/it/multi-modules-aggregate/child-a/src/main/resources/ src/it/multi-modules-aggregate/child-a/src/main/resources/org/ src/it/multi-modules-ag...

Author: dennisl
Date: Mon Jan  7 15:37:24 2013
New Revision: 1429846

URL: http://svn.apache.org/viewvc?rev=1429846&view=rev
Log:
[MCHECKSTYLE-184] Allow src/main/resources to be searched by Checkstyle

Added:
    maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/child-a/src/main/resources/
    maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/child-a/src/main/resources/org/
    maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/child-a/src/main/resources/org/apache/
    maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/child-a/src/main/resources/org/apache/maven/
    maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/child-a/src/main/resources/org/apache/maven/plugins/
    maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/child-a/src/main/resources/org/apache/maven/plugins/checkstyle/
    maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/child-a/src/main/resources/org/apache/maven/plugins/checkstyle/its/
    maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/child-a/src/main/resources/org/apache/maven/plugins/checkstyle/its/App_en.properties   (with props)
Modified:
    maven/plugins/trunk/maven-checkstyle-plugin/   (props changed)
    maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/pom.xml
    maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/verify.groovy
    maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/AbstractCheckstyleReport.java
    maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleAggregateReport.java
    maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleExecutorRequest.java
    maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReport.java
    maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/DefaultCheckstyleExecutor.java
    maven/plugins/trunk/maven-checkstyle-plugin/src/main/resources/config/maven_checks.xml

Propchange: maven/plugins/trunk/maven-checkstyle-plugin/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Jan  7 15:37:24 2013
@@ -9,3 +9,4 @@ target
 .externalToolBuilders
 maven-eclipse.xml
 bin
+.idea

Added: maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/child-a/src/main/resources/org/apache/maven/plugins/checkstyle/its/App_en.properties
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/child-a/src/main/resources/org/apache/maven/plugins/checkstyle/its/App_en.properties?rev=1429846&view=auto
==============================================================================
--- maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/child-a/src/main/resources/org/apache/maven/plugins/checkstyle/its/App_en.properties (added)
+++ maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/child-a/src/main/resources/org/apache/maven/plugins/checkstyle/its/App_en.properties Mon Jan  7 15:37:24 2013
@@ -0,0 +1 @@
+key=value

Propchange: maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/child-a/src/main/resources/org/apache/maven/plugins/checkstyle/its/App_en.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/child-a/src/main/resources/org/apache/maven/plugins/checkstyle/its/App_en.properties
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author Id

Modified: maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/pom.xml?rev=1429846&r1=1429845&r2=1429846&view=diff
==============================================================================
--- maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/pom.xml (original)
+++ maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/pom.xml Mon Jan  7 15:37:24 2013
@@ -38,11 +38,7 @@
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-checkstyle-plugin</artifactId>
           <version>@pom.version@</version>
-          <configuration>
-            <configLocation>http://svn.apache.org/repos/asf/maven/plugins/tags/maven-checkstyle-plugin-2.5/src/main/resources/config/maven_checks.xml</configLocation>
-            <headerLocation>http://svn.apache.org/repos/asf/maven/plugins/tags/maven-checkstyle-plugin-2.5/src/main/resources/config/maven-header.txt</headerLocation>
-          </configuration>            
-        </plugin>      
+        </plugin>
       </plugins>
     </pluginManagement>
     <plugins>
@@ -66,6 +62,9 @@
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
         <version>@pom.version@</version>
+        <configuration>
+          <configLocation>config/maven_checks.xml</configLocation>
+        </configuration>
         <inherited>false</inherited>
         <reportSets>
           <reportSet>

Modified: maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/verify.groovy
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/verify.groovy?rev=1429846&r1=1429845&r2=1429846&view=diff
==============================================================================
--- maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/verify.groovy (original)
+++ maven/plugins/trunk/maven-checkstyle-plugin/src/it/multi-modules-aggregate/verify.groovy Mon Jan  7 15:37:24 2013
@@ -28,6 +28,7 @@ assert new File(basedir, 'target/site/ch
 content = new File(basedir, 'target/site/checkstyle-aggregate.html').text;
 
 assert content.contains( 'org/apache/maven/plugins/checkstyle/its/App.java' );
+assert content.contains( 'org/apache/maven/plugins/checkstyle/its/App_en.properties' );
 assert content.contains( 'org/apache/maven/plugins/checkstyle/its/AppTest.java' );
 
 return true;
\ No newline at end of file

Modified: maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/AbstractCheckstyleReport.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/AbstractCheckstyleReport.java?rev=1429846&r1=1429845&r2=1429846&view=diff
==============================================================================
--- maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/AbstractCheckstyleReport.java (original)
+++ maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/AbstractCheckstyleReport.java Mon Jan  7 15:37:24 2013
@@ -26,6 +26,7 @@ import com.puppycrawl.tools.checkstyle.a
 import org.apache.maven.doxia.siterenderer.Renderer;
 import org.apache.maven.doxia.tools.SiteTool;
 import org.apache.maven.model.ReportPlugin;
+import org.apache.maven.model.Resource;
 import org.apache.maven.plugin.checkstyle.rss.CheckstyleRssGenerator;
 import org.apache.maven.plugin.checkstyle.rss.CheckstyleRssGeneratorRequest;
 import org.apache.maven.plugins.annotations.Component;
@@ -46,6 +47,7 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.util.Calendar;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Locale;
 import java.util.ResourceBundle;
 
@@ -88,6 +90,14 @@ public abstract class AbstractCheckstyle
     private File outputFile;
 
     /**
+     * Specifies the location of the resources to be used for Checkstyle.
+     *
+     * @since 2.10
+     */
+    @Parameter( defaultValue = "${project.resources}" )
+    protected List<Resource> resources;
+
+    /**
      * If <code>null</code>, the Checkstyle plugin will display violations on stdout.
      * Otherwise, a text file will be created with the violations.
      */

Modified: maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleAggregateReport.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleAggregateReport.java?rev=1429846&r1=1429845&r2=1429846&view=diff
==============================================================================
--- maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleAggregateReport.java (original)
+++ maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleAggregateReport.java Mon Jan  7 15:37:24 2013
@@ -253,7 +253,7 @@ public class CheckstyleAggregateReport
             .setConsoleListener( getConsoleListener() ).setConsoleOutput( consoleOutput )
             .setExcludes( excludes ).setFailsOnError( failsOnError ).setIncludes( includes )
             .setIncludeTestSourceDirectory( includeTestSourceDirectory ).setListener( getListener() )
-            .setLog( getLog() ).setProject( project ).setSourceDirectory( sourceDirectory )
+            .setLog( getLog() ).setProject( project ).setSourceDirectory( sourceDirectory ).setResources( resources )
             .setStringOutputStream( stringOutputStream ).setSuppressionsLocation( suppressionsLocation )
             .setTestSourceDirectory( testSourceDirectory ).setConfigLocation( configLocation )
             .setPropertyExpansion( propertyExpansion ).setHeaderLocation( headerLocation )

Modified: maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleExecutorRequest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleExecutorRequest.java?rev=1429846&r1=1429845&r2=1429846&view=diff
==============================================================================
--- maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleExecutorRequest.java (original)
+++ maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleExecutorRequest.java Mon Jan  7 15:37:24 2013
@@ -23,6 +23,7 @@ import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.util.List;
 
+import org.apache.maven.model.Resource;
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.project.MavenProject;
 
@@ -59,6 +60,8 @@ public class CheckstyleExecutorRequest
 
     private File sourceDirectory;
 
+    private List<Resource> resources;
+
     private boolean failsOnError;
 
     private AuditListener listener;
@@ -196,6 +199,16 @@ public class CheckstyleExecutorRequest
         return this;
     }
 
+    public List<Resource> getResources() {
+        return resources;
+    }
+
+    public CheckstyleExecutorRequest setResources( List<Resource> resources )
+    {
+        this.resources = resources;
+        return this;
+    }
+
     public boolean isFailsOnError()
     {
         return failsOnError;

Modified: maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReport.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReport.java?rev=1429846&r1=1429845&r2=1429846&view=diff
==============================================================================
--- maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReport.java (original)
+++ maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReport.java Mon Jan  7 15:37:24 2013
@@ -349,7 +349,7 @@ public class CheckstyleReport
         request.setConsoleListener( getConsoleListener() ).setConsoleOutput( consoleOutput )
             .setExcludes( excludes ).setFailsOnError( failsOnError ).setIncludes( includes )
             .setIncludeTestSourceDirectory( includeTestSourceDirectory ).setListener( getListener() )
-            .setLog( getLog() ).setProject( project ).setSourceDirectory( sourceDirectory )
+            .setLog( getLog() ).setProject( project ).setSourceDirectory( sourceDirectory ).setResources( resources )
             .setStringOutputStream( stringOutputStream ).setSuppressionsLocation( suppressionsLocation )
             .setTestSourceDirectory( testSourceDirectory ).setConfigLocation( configLocation )
             .setPropertyExpansion( propertyExpansion ).setHeaderLocation( headerLocation )

Modified: maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/DefaultCheckstyleExecutor.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/DefaultCheckstyleExecutor.java?rev=1429846&r1=1429845&r2=1429846&view=diff
==============================================================================
--- maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/DefaultCheckstyleExecutor.java (original)
+++ maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/DefaultCheckstyleExecutor.java Mon Jan  7 15:37:24 2013
@@ -33,6 +33,7 @@ import java.util.Properties;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.maven.artifact.DependencyResolutionRequiredException;
+import org.apache.maven.model.Resource;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
@@ -188,12 +189,12 @@ public class DefaultCheckstyleExecutor
             for ( MavenProject childProject : request.getReactorProjects() )
             {
                 addSourceDirectory( sinkListener, new File( childProject.getBuild().getSourceDirectory() ),
-                                    new File( childProject.getBuild().getSourceDirectory() ), request );
+                                    new File( childProject.getBuild().getSourceDirectory() ), childProject.getResources(), request);
             }
         }
         else
         {
-            addSourceDirectory( sinkListener, sourceDirectory, testSourceDirectory, request );
+            addSourceDirectory( sinkListener, sourceDirectory, testSourceDirectory, request.getResources(), request);
         }
 
         checker.addListener( sinkListener );
@@ -224,17 +225,35 @@ public class DefaultCheckstyleExecutor
     }
 
     protected void addSourceDirectory( CheckstyleReportListener sinkListener, File sourceDirectory,
-                                       File testSourceDirectory, CheckstyleExecutorRequest request )
+                                       File testSourceDirectory, List<Resource> resources,
+                                       CheckstyleExecutorRequest request )
     {
         if ( sourceDirectory != null )
         {
             sinkListener.addSourceDirectory( sourceDirectory );
         }
+
         if ( request.isIncludeTestSourceDirectory() && ( testSourceDirectory != null )
             && ( testSourceDirectory.exists() ) && ( testSourceDirectory.isDirectory() ) )
         {
             sinkListener.addSourceDirectory( testSourceDirectory );
         }
+
+        if ( resources != null )
+        {
+            for ( Resource resource : resources )
+            {
+                if ( resource.getDirectory() != null )
+                {
+                    File resourcesDirectory = new File( resource.getDirectory() );
+                    if ( resourcesDirectory.exists() && resourcesDirectory.isDirectory() )
+                    {
+                        sinkListener.addSourceDirectory( resourcesDirectory );
+                        getLogger().debug( "Added '" + resourcesDirectory.getAbsolutePath() + "' as a source directory." );
+                    }
+                }
+            }
+        }
     }
 
     public Configuration getConfiguration( CheckstyleExecutorRequest request )
@@ -483,19 +502,19 @@ public class DefaultCheckstyleExecutor
         {
             for ( MavenProject project : request.getReactorProjects() )
             {
-                addFilesToProcess( request, excludesStr, new File( project.getBuild().getSourceDirectory() ), files );
+                addFilesToProcess( request, excludesStr, new File( project.getBuild().getSourceDirectory() ), project.getResources(), files);
             }
         }
         else
         {
-            addFilesToProcess( request, excludesStr, sourceDirectory, files );
+            addFilesToProcess( request, excludesStr, sourceDirectory, request.getResources(), files);
         }
 
         return (File[]) files.toArray( EMPTY_FILE_ARRAY );
     }
 
     private void addFilesToProcess( CheckstyleExecutorRequest request, StringBuilder excludesStr, File sourceDirectory,
-                                    List<File> files )
+                                    List<Resource> resources, List<File> files)
         throws IOException
     {
         if ( sourceDirectory == null || !sourceDirectory.exists() )
@@ -504,6 +523,7 @@ public class DefaultCheckstyleExecutor
         }
         files.addAll(
             FileUtils.getFiles( sourceDirectory, request.getIncludes(), excludesStr.toString() ) );
+
         File testSourceDirectory = request.getTestSourceDirectory();
         if ( request.isIncludeTestSourceDirectory() && ( testSourceDirectory != null )
             && ( testSourceDirectory.exists() ) && ( testSourceDirectory.isDirectory() ) )
@@ -511,6 +531,33 @@ public class DefaultCheckstyleExecutor
             files.addAll( FileUtils.getFiles( testSourceDirectory, request.getIncludes(),
                                               excludesStr.toString() ) );
         }
+
+        // @todo Should we add a check to see if resources should be included or not, similar to request.isIncludeTestSourceDirectory()?
+        if ( resources != null )
+        {
+            for ( Resource resource : resources)
+            {
+                if ( resource.getDirectory() != null )
+                {
+                    File resourcesDirectory = new File( resource.getDirectory() );
+                    if ( resourcesDirectory.exists() && resourcesDirectory.isDirectory() )
+                    {
+                        // @todo Perhaps extend the functionality in the future so that the included types of files can be configured. For now it is hard-coded to properties files.
+                        List resourceFiles = FileUtils.getFiles( resourcesDirectory, "**/*.properties", null );
+                        files.addAll( resourceFiles );
+                        getLogger().debug( "Added " + resourceFiles.size() + " resource files found in '" + resourcesDirectory.getAbsolutePath() + "'." );
+                    }
+                    else
+                    {
+                        getLogger().debug( "The resources directory '" + resourcesDirectory.getAbsolutePath() + "' does not exist or is not a directory." );
+                    }
+                }
+            }
+        }
+        else
+        {
+            getLogger().debug( "No resources found in this project." );
+        }
     }
 
     private FilterSet getSuppressions( CheckstyleExecutorRequest request )

Modified: maven/plugins/trunk/maven-checkstyle-plugin/src/main/resources/config/maven_checks.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-checkstyle-plugin/src/main/resources/config/maven_checks.xml?rev=1429846&r1=1429845&r2=1429846&view=diff
==============================================================================
--- maven/plugins/trunk/maven-checkstyle-plugin/src/main/resources/config/maven_checks.xml (original)
+++ maven/plugins/trunk/maven-checkstyle-plugin/src/main/resources/config/maven_checks.xml Mon Jan  7 15:37:24 2013
@@ -40,7 +40,7 @@ under the License.
 
     <!-- Checks that property files contain the same keys.         -->
     <!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
-    <!-- module name="Translation"/ -->
+    <module name="Translation"/>
 
     <module name="FileLength"/>