Author: hboutemy Date: Sat Oct 15 05:18:43 2016 New Revision: 1765009 URL: http://svn.apache.org/viewvc?rev=1765009&view=rev Log: added retry when downloading content from external sources to hopefully avoid some false positives
Added: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/JsoupRetry.java (with props) 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/index/DistCheckIndexPageMojo.java maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/prerequisites/GetPrerequisites.java maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/site/DistCheckSiteMojo.java maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/source/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=1765009&r1=1765008&r2=1765009&view=diff ============================================================================== --- maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml (original) +++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml Sat Oct 15 05:18:43 2016 @@ -17,7 +17,7 @@ <parent> <groupId>org.apache.maven</groupId> <artifactId>maven-parent</artifactId> - <version>27</version> + <version>30</version> <relativePath>../../../pom/maven/pom.xml</relativePath> </parent> Added: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/JsoupRetry.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/JsoupRetry.java?rev=1765009&view=auto ============================================================================== --- maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/JsoupRetry.java (added) +++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/JsoupRetry.java Sat Oct 15 05:18:43 2016 @@ -0,0 +1,68 @@ +package org.apache.maven.dist.tools; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import java.io.IOException; + +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; + +/** + * Reads a url with Jsoup, retrying multiple times in case of IOException. + */ +public class JsoupRetry +{ + public static final int MAX_RETRY = 3; + + public static final int WAIT_RETRY_SECONDS = 10; + + public static Document get( String url ) + throws IOException + { + for ( int i = 1; i <= MAX_RETRY; i++ ) + { + try + { + return Jsoup.connect( url ).get(); + } + catch ( IOException ioe ) + { + System.err.println( "IOException try " + i + " while reading " + url + ": " + ioe.getClass() + " " + + ioe.getMessage() ); + + if ( i == MAX_RETRY ) + { + throw new IOException( "IOException while reading " + url, ioe ); + } + } + + try + { + Thread.sleep( WAIT_RETRY_SECONDS * 1000 ); + } + catch ( InterruptedException e ) + { + // not expected to happen + } + } + + return null; + } +} Propchange: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/JsoupRetry.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/JsoupRetry.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Propchange: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/JsoupRetry.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/index/DistCheckIndexPageMojo.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/index/DistCheckIndexPageMojo.java?rev=1765009&r1=1765008&r2=1765009&view=diff ============================================================================== --- maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/index/DistCheckIndexPageMojo.java (original) +++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/index/DistCheckIndexPageMojo.java Sat Oct 15 05:18:43 2016 @@ -34,12 +34,12 @@ import java.util.Map; import org.apache.maven.dist.tools.AbstractCheckResult; import org.apache.maven.dist.tools.AbstractDistCheckMojo; import org.apache.maven.dist.tools.ConfigurationLineInfo; +import org.apache.maven.dist.tools.JsoupRetry; import org.apache.maven.doxia.sink.Sink; 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; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; @@ -288,14 +288,7 @@ public class DistCheckIndexPageMojo if ( doc == null ) { // document not yet downloaded: download and cache - try - { - doc = Jsoup.connect( indexPage.url ).get(); - } - catch ( IOException ioe ) - { - throw new IOException( "IOException while reading " + indexPage.url, ioe ); - } + doc = JsoupRetry.get( indexPage.url ); indexPage.document = doc; } Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/prerequisites/GetPrerequisites.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/prerequisites/GetPrerequisites.java?rev=1765009&r1=1765008&r2=1765009&view=diff ============================================================================== --- maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/prerequisites/GetPrerequisites.java (original) +++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/prerequisites/GetPrerequisites.java Sat Oct 15 05:18:43 2016 @@ -26,7 +26,7 @@ import java.util.List; import java.util.Map; import org.apache.maven.artifact.versioning.ArtifactVersion; -import org.jsoup.Jsoup; +import org.apache.maven.dist.tools.JsoupRetry; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; @@ -104,7 +104,7 @@ public class GetPrerequisites { String url = getPluginInfoUrl( pluginName ); - Document doc = Jsoup.connect( url ).get(); + Document doc = JsoupRetry.get( url ); Elements select = doc.select( "table.bodyTable" ); // Stylus skin Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/site/DistCheckSiteMojo.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/site/DistCheckSiteMojo.java?rev=1765009&r1=1765008&r2=1765009&view=diff ============================================================================== --- maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/site/DistCheckSiteMojo.java (original) +++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/site/DistCheckSiteMojo.java Sat Oct 15 05:18:43 2016 @@ -30,6 +30,7 @@ import org.apache.maven.artifact.factory import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.dist.tools.AbstractDistCheckMojo; import org.apache.maven.dist.tools.ConfigurationLineInfo; +import org.apache.maven.dist.tools.JsoupRetry; import org.apache.maven.doxia.sink.Sink; import org.apache.maven.doxia.sink.SinkEventAttributeSet; import org.apache.maven.plugin.MojoExecutionException; @@ -40,7 +41,6 @@ import org.apache.maven.project.MavenPro import org.apache.maven.project.MavenProjectBuilder; import org.apache.maven.reporting.MavenReportException; import org.jsoup.HttpStatusException; -import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; @@ -281,7 +281,7 @@ public class DistCheckSiteMojo } result.setUrl( siteUrl ); - Document doc = Jsoup.connect( siteUrl ).get(); + Document doc = JsoupRetry.get( siteUrl ); if ( screenShot ) { driver.get( artifactProject.getUrl() ); Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/source/DistCheckSourceReleaseMojo.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/source/DistCheckSourceReleaseMojo.java?rev=1765009&r1=1765008&r2=1765009&view=diff ============================================================================== --- maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/source/DistCheckSourceReleaseMojo.java (original) +++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/source/DistCheckSourceReleaseMojo.java Sat Oct 15 05:18:43 2016 @@ -28,6 +28,7 @@ import java.util.Locale; import org.apache.maven.dist.tools.AbstractDistCheckMojo; import org.apache.maven.dist.tools.ConfigurationLineInfo; +import org.apache.maven.dist.tools.JsoupRetry; import org.apache.maven.doxia.markup.HtmlMarkup; import org.apache.maven.doxia.sink.Sink; import org.apache.maven.doxia.sink.SinkEventAttributeSet; @@ -35,7 +36,6 @@ import org.apache.maven.plugin.MojoExecu 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; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; @@ -414,13 +414,13 @@ public class DistCheckSourceReleaseMojo if ( !url.equals( cachedUrl ) ) { cachedUrl = url; - cachedDocument = Jsoup.connect( url ).get(); + cachedDocument = JsoupRetry.get( url ); } return cachedDocument; } else { - return Jsoup.connect( url ).get(); + return JsoupRetry.get( url ); } }