You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by fg...@apache.org on 2005/12/30 16:23:25 UTC
svn commit: r360102 -
/maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReport.java
Author: fgiust
Date: Fri Dec 30 07:23:22 2005
New Revision: 360102
URL: http://svn.apache.org/viewcvs?rev=360102&view=rev
Log:
make project classes accessible to checkstyle during check (required for exception-related checks)
Modified:
maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReport.java
Modified: maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReport.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugin/checkstyle/CheckstyleReport.java?rev=360102&r1=360101&r2=360102&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 Fri Dec 30 07:23:22 2005
@@ -22,16 +22,21 @@
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
+import java.net.MalformedURLException;
import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
import java.util.ResourceBundle;
+import org.apache.maven.artifact.DependencyResolutionRequiredException;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.reporting.AbstractMavenReport;
@@ -628,6 +633,35 @@
Checker checker = new Checker();
+ // setup classloader, needed to avoid "Unable to get class information for ..." errors
+ List classPathStrings;
+ try
+ {
+ classPathStrings = this.project.getCompileClasspathElements();
+ }
+ catch ( DependencyResolutionRequiredException e )
+ {
+ throw new MavenReportException( e.getMessage(), e );
+ }
+
+ List URLs = new ArrayList( classPathStrings.size() );
+
+ Iterator iter = classPathStrings.iterator();
+ while ( iter.hasNext() )
+ {
+ try
+ {
+ URLs.add( new File( ( (String) iter.next() ) ).toURL() );
+ }
+ catch ( MalformedURLException e )
+ {
+ throw new MavenReportException( e.getMessage(), e );
+ }
+ }
+
+ URLClassLoader projectClassLoader = new URLClassLoader( (URL[]) URLs.toArray( new URL[URLs.size()] ), null );
+ checker.setClassloader( projectClassLoader );
+
if ( moduleFactory != null )
{
checker.setModuleFactory( moduleFactory );
@@ -654,7 +688,7 @@
checker.addListener( sinkListener );
int nbErrors = checker.process( files );
-
+
checker.destroy();
if ( stringOutputStream != null )