Author: hboutemy Date: Mon Jul 15 20:25:07 2013 New Revision: 1503455 URL: http://svn.apache.org/r1503455 Log: added options to ignore check failures for configured artifacts
Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/AbstractDistCheckMojo.java maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSiteMojo.java maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSourceReleaseMojo.java Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml?rev=1503455&r1=1503454&r2=1503455&view=diff ============================================================================== --- maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml (original) +++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml Mon Jul 15 20:25:07 2013 @@ -253,13 +253,31 @@ <groupId>${project.groupId}</groupId> <artifactId>${project.artifactId}</artifactId> <version>${project.version}</version> + <configuration> + <ignoreSiteFailures> + <ignoreSiteFailure>apache-maven:2.0.11</ignoreSiteFailure> + <ignoreSiteFailure>apache-maven:2.2.1</ignoreSiteFailure> + <ignoreSiteFailure>maven-indexer:5.1.1</ignoreSiteFailure> + <ignoreSiteFailure>file-management:1.2.1</ignoreSiteFailure> + </ignoreSiteFailures> + <ignoreDistFailures> + <ignoreDistFailure>doxia-linkcheck:1.2</ignoreDistFailure> + <ignoreDistFailure>apache-maven:2.0.11</ignoreDistFailure> + <ignoreDistFailure>maven-docck-plugin:1.0</ignoreDistFailure> + <ignoreDistFailure>maven-idea-plugin:2.2</ignoreDistFailure> + <ignoreDistFailure>maven-one-plugin:1.2</ignoreDistFailure> + <ignoreDistFailure>maven-reactor-plugin:1.0</ignoreDistFailure> + <ignoreDistFailure>file-management:1.2.1</ignoreDistFailure> + <ignoreDistFailure>maven-model-converter:2.2</ignoreDistFailure> + <ignoreDistFailure>maven-repository-builder:1.0-alpha-2</ignoreDistFailure> + </ignoreDistFailures> + </configuration> <reportSets> <reportSet> <id>html</id> <reports> <report>check-site</report> <report>check-source-release</report> - </reports> </reportSet> <reportSet> Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/AbstractDistCheckMojo.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/AbstractDistCheckMojo.java?rev=1503455&r1=1503454&r2=1503455&view=diff ============================================================================== --- maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/AbstractDistCheckMojo.java (original) +++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/AbstractDistCheckMojo.java Mon Jul 15 20:25:07 2013 @@ -260,21 +260,29 @@ public abstract class AbstractDistCheckM } /** - * Add Error line to logs.txt + * Log and add Error line to logs.txt if not configured to ignore the artifact+version * * @param error */ - protected void addErrorLine( String error ) + protected void addErrorLine( ConfigurationLineInfo cli, String version, List<String> ignore, String error ) { - getLog().error( error ); - try ( PrintWriter output = new PrintWriter( - new FileWriter( new File( "target", "logs.txt" ).getAbsolutePath(), true ) ) ) + if ( ignore.contains( cli.getArtifactId() + ':' + version ) || ignore.contains( cli.getArtifactId() ) ) { - output.printf( "%s\r\n", error ); + getLog().warn( error ); } - catch ( Exception e ) + else { - getLog().error( "Cannot append logs.txt" ); + getLog().error( error ); + + try ( PrintWriter output = new PrintWriter( + new FileWriter( new File( "target", "logs.txt" ).getAbsolutePath(), true ) ) ) + { + output.printf( "%s\r\n", error ); + } + catch ( Exception e ) + { + getLog().error( "Cannot append to logs.txt" ); + } } } } Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSiteMojo.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSiteMojo.java?rev=1503455&r1=1503454&r2=1503455&view=diff ============================================================================== --- maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSiteMojo.java (original) +++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSiteMojo.java Mon Jul 15 20:25:07 2013 @@ -62,6 +62,12 @@ public class DistCheckSiteMojo extends AbstractDistCheckMojo { /** + * Ignore site failure for <code>artifactId</code> or <code>artifactId:version</code> + */ + @Parameter + protected List<String> ignoreSiteFailures; + + /** * Artifact factory. */ @Component @@ -401,27 +407,27 @@ public class DistCheckSiteMojo return url; } - private void checkSite( ConfigurationLineInfo configLine, String version ) + private void checkSite( ConfigurationLineInfo cli, String version ) { - DistCheckSiteResult result = new DistCheckSiteResult( configLine, version ); + DistCheckSiteResult result = new DistCheckSiteResult( cli, version ); results.add( result ); try { - Artifact pluginArtifact = - artifactFactory.createProjectArtifact( configLine.getGroupId(), configLine.getArtifactId(), version ); - MavenProject pluginProject = - mavenProjectBuilder.buildFromRepository( pluginArtifact, artifactRepositories, localRepository, false ); + Artifact artifact = + artifactFactory.createProjectArtifact( cli.getGroupId(), cli.getArtifactId(), version ); + MavenProject artifactProject = + mavenProjectBuilder.buildFromRepository( artifact, artifactRepositories, localRepository, false ); - result.setUrl( pluginProject.getUrl() ); - Document doc = Jsoup.connect( pluginProject.getUrl() ).get(); + result.setUrl( artifactProject.getUrl() ); + Document doc = Jsoup.connect( artifactProject.getUrl() ).get(); if ( screenShot ) { - driver.get( pluginProject.getUrl() ); + driver.get( artifactProject.getUrl() ); File scrFile = ( ( TakesScreenshot ) driver ).getScreenshotAs( OutputType.FILE ); String fileName = "images" + File.separator - + configLine.getGroupId() + "_" + configLine.getArtifactId() + ".png"; + + cli.getGroupId() + "_" + cli.getArtifactId() + ".png"; result.setScreenShot( fileName ); - FileUtils.copyFile( scrFile, new File( getReportOutputDirectory() + File.separator + fileName ) ); + FileUtils.copyFile( scrFile, new File( getReportOutputDirectory(), fileName ) ); } for ( HTMLChecker c : checker ) { @@ -432,13 +438,17 @@ public class DistCheckSiteMojo } catch ( HttpStatusException hes ) { - addErrorLine( "HTTP result code: " + hes.getStatusCode() + " for " + hes.getUrl() ); + addErrorLine( cli, + version, + ignoreSiteFailures, + "HTTP result code: " + hes.getStatusCode() + " for " + cli.getArtifactId() + " site = " + + hes.getUrl() ); result.setHTTPErrorUrl( hes.getStatusCode() ); } catch ( Exception ex ) { //continue for other artifact - getLog().error( ex.getMessage() + configLine.getArtifactId() ); + getLog().error( ex.getMessage() + cli.getArtifactId() ); } } Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSourceReleaseMojo.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSourceReleaseMojo.java?rev=1503455&r1=1503454&r2=1503455&view=diff ============================================================================== --- maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSourceReleaseMojo.java (original) +++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSourceReleaseMojo.java Mon Jul 15 20:25:07 2013 @@ -31,6 +31,7 @@ import org.apache.maven.doxia.sink.Sink; import org.apache.maven.doxia.sink.SinkEventAttributeSet; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.reporting.MavenReportException; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; @@ -51,6 +52,12 @@ public class DistCheckSourceReleaseMojo private static final String DIST_AREA = "http://www.apache.org/dist/maven/"; //private static final String DIST_SVNPUBSUB = "https://dist.apache.org/repos/dist/release/maven/"; + /** + * Ignore dist failure for <code>artifactId</code> or <code>artifactId:version</code> + */ + @Parameter + protected List<String> ignoreDistFailures; + @Override public String getOutputName() { @@ -419,7 +426,7 @@ public class DistCheckSourceReleaseMojo } } - private List<String> checkContainsOld( String url, ConfigurationLineInfo configLine, String version ) + private List<String> checkContainsOld( String url, ConfigurationLineInfo cli, String version ) throws IOException { Elements links = selectLinks( url ); @@ -428,24 +435,25 @@ public class DistCheckSourceReleaseMojo for ( Element e : links ) { String art = e.attr( "href" ); - if ( art.matches( getSourceReleasePattern( configLine.getArtifactId() ) ) ) + if ( art.matches( getSourceReleasePattern( cli.getArtifactId() ) ) ) { retrievedFile.add( e.attr( "href" ) ); } } - List<String> expectedFiles = configLine.getExpectedFilenames( version, true ); + List<String> expectedFiles = cli.getExpectedFilenames( version, true ); retrievedFile.removeAll( expectedFiles ); if ( !retrievedFile.isEmpty() ) { // write the following output in red so it's more readable in jenkins console - addErrorLine( "Older version than " + version + " for " - + configLine.getArtifactId() + " still available in " + url ); + addErrorLine( cli, version, ignoreDistFailures, + "Older version than " + version + " for " + cli.getArtifactId() + " still available in " + + url ); for ( String sourceItem : retrievedFile ) { - addErrorLine( " > " + sourceItem + " <" ); + addErrorLine( cli, version, ignoreDistFailures, " > " + sourceItem + " <" ); } } @@ -455,12 +463,12 @@ public class DistCheckSourceReleaseMojo /** * Check that url points to a directory index containing expected release files * @param url - * @param configLine + * @param cli * @param version * @return missing files * @throws IOException */ - private List<String> checkDirectoryIndex( String url, ConfigurationLineInfo configLine, String version, boolean dist ) + private List<String> checkDirectoryIndex( String url, ConfigurationLineInfo cli, String version, boolean dist ) throws IOException { List<String> retrievedFile = new LinkedList<>(); @@ -472,17 +480,17 @@ public class DistCheckSourceReleaseMojo List<String> missingFiles; // initialize missing files with expected release file names - missingFiles = configLine.getExpectedFilenames( version, dist ); + missingFiles = cli.getExpectedFilenames( version, dist ); // removed retrieved files missingFiles.removeAll( retrievedFile ); if ( !missingFiles.isEmpty() ) { - addErrorLine( "Missing file for " + configLine.getArtifactId() + " in " + url ); + addErrorLine( cli, version, ignoreDistFailures, "Missing file for " + cli.getArtifactId() + " in " + url ); for ( String sourceItem : missingFiles ) { - addErrorLine( " > " + sourceItem + " <" ); + addErrorLine( cli, version, ignoreDistFailures, " > " + sourceItem + " <" ); } }