Author: skygo Date: Mon Jun 10 23:14:42 2013 New Revision: 1491637 URL: http://svn.apache.org/r1491637 Log: Add screenshot (firefox only) neeeded set screenShot to false reduce verbosity
Removed: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSiteTakeScreenMojo.java Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/nbactions.xml 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/DistCheckSiteMojo.java maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/DistCheckSourceReleaseMojo.java maven/sandbox/trunk/dist-tools/dist-tool-plugin/test.sh Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/nbactions.xml URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/nbactions.xml?rev=1491637&r1=1491636&r2=1491637&view=diff ============================================================================== --- maven/sandbox/trunk/dist-tools/dist-tool-plugin/nbactions.xml (original) +++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/nbactions.xml Mon Jun 10 23:14:42 2013 @@ -1,19 +1,13 @@ <?xml version="1.0" encoding="UTF-8"?> <actions> <action> - <actionName>CUSTOM-checksourcerelease</actionName> + <actionName>CUSTOM-debugme</actionName> <displayName>check-source-release</displayName> <goals> - <goal>org.apache.maven.dist.tools:dist-tool-plugin:check-source-release</goal> - <goal>-X</goal> + <goal>clean</goal> + <goal>install</goal> + <goal>site</goal> + <!--<goal>-X</goal>--> </goals> </action> - <action> - <actionName>CUSTOM-checksite</actionName> - <displayName>check-site</displayName> - <goals> - <goal>org.apache.maven.dist.tools:dist-tool-plugin:check-site</goal> - <goal>-X</goal> - </goals> - </action> </actions> 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=1491637&r1=1491636&r2=1491637&view=diff ============================================================================== --- maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml (original) +++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml Mon Jun 10 23:14:42 2013 @@ -111,34 +111,22 @@ </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> - <artifactId>selenium-htmlunit-driver</artifactId> - <version>2.31.0</version> - <type>jar</type> - </dependency> - <dependency> - <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-firefox-driver</artifactId> - <version>2.31.0</version> - <type>jar</type> - </dependency> - <dependency> - <groupId>org.seleniumhq.selenium</groupId> - <artifactId>selenium-chrome-driver</artifactId> - <version>2.31.0</version> - <type>jar</type> - </dependency> - <dependency> - <groupId>org.seleniumhq.selenium</groupId> - <artifactId>selenium-ie-driver</artifactId> - <version>2.31.0</version> + <version>2.33.0</version> <type>jar</type> </dependency> + <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> + <dependency> + <groupId>org.apache.httpcomponents</groupId> + <artifactId>httpclient</artifactId> + <version>4.2.5</version> + </dependency> </dependencies> <build> @@ -237,7 +225,6 @@ <reportSet> <id>html</id> <reports> - <!--<report>check-screen-site</report>--> <report>check-site</report> <report>check-source-release</report> </reports> 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=1491637&r1=1491636&r2=1491637&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 Jun 10 23:14:42 2013 @@ -20,6 +20,7 @@ package org.apache.maven.dist.tools; */ import java.io.BufferedReader; +import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; @@ -33,12 +34,15 @@ import java.util.Map; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; +import org.apache.commons.io.FileUtils; import org.apache.maven.artifact.Artifact; import org.apache.maven.dist.tools.checkers.HTMLChecker; import org.apache.maven.dist.tools.checkers.HTMLCheckerFactory; 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.project.MavenProject; import org.apache.maven.reporting.MavenReportException; import org.jsoup.HttpStatusException; @@ -48,6 +52,10 @@ import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.nodes.Node; import org.jsoup.select.Elements; +import org.openqa.selenium.OutputType; +import org.openqa.selenium.TakesScreenshot; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.firefox.FirefoxDriver; /** * @@ -56,6 +64,13 @@ import org.jsoup.select.Elements; @Mojo( name = "check-site" ) public class DistCheckSiteMojo extends AbstractDistCheckMojo { + + /** + * Take screenshot with web browser + */ + @Parameter( property = "screenshot", defaultValue = "true" ) + protected boolean screenShot; + private static final String MAVEN_SITE = "http://maven.apache.org"; /** * Http status ok code. @@ -87,6 +102,7 @@ public class DistCheckSiteMojo extends A private Map<HTMLChecker, Boolean> checkMap = new HashMap<>(); private int statusCode = HTTP_OK; private Document document; + private String screenshotName; public DistCheckSiteResult( ConfigurationLineInfo r, String version ) { @@ -209,10 +225,21 @@ public class DistCheckSiteMojo extends A { this.document = doc ; } + + private void setScreenShot( String fileName ) + { + this.screenshotName = fileName; + } + private String getScreenShot() + { + return screenshotName; + } } // keep result private List<DistCheckSiteResult> results = new LinkedList<>(); private final List<HTMLChecker> checker = HTMLCheckerFactory.getCheckers(); + private WebDriver driver; + @Override protected void executeReport( Locale locale ) throws MavenReportException @@ -260,6 +287,12 @@ public class DistCheckSiteMojo extends A sink.tableHeaderCell(); sink.rawText( "URL" ); sink.tableHeaderCell_(); + if ( screenShot ) + { + sink.tableHeaderCell(); + sink.rawText( "Screen" ); + sink.tableHeaderCell_(); + } sink.tableHeaderCell(); sink.rawText( "Skins and comments on top of html (helping for date but not always)" ); sink.tableHeaderCell_(); @@ -302,14 +335,25 @@ public class DistCheckSiteMojo extends A sink.rawText( getSimplifiedUrl( csr.getUrl() ) ); sink.link_(); sink.tableCell_(); - - sink.tableHeaderCell(); + if ( screenShot ) + { + sink.tableCell(); + sink.figure( null ); + SinkEventAttributeSet atts = new SinkEventAttributeSet(); + // no direct attribute, override style only + atts.addAttribute( "style", "height:200px;width:200px" ); + atts.addAttribute( "alt", getSimplifiedUrl( csr.getUrl() ) ); + sink.figureGraphics( csr.getScreenShot(), atts ); + sink.figure_(); + sink.tableCell_(); + } + sink.tableCell(); csr.getSkins( sink ); - sink.tableHeaderCell_(); + sink.tableCell_(); - sink.tableHeaderCell(); + sink.tableCell(); csr.getOverall( sink ); - sink.tableHeaderCell_(); + sink.tableCell_(); for ( HTMLChecker c : checker ) { @@ -365,25 +409,25 @@ public class DistCheckSiteMojo extends A result.setUrl( pluginProject.getUrl() ); Document doc = Jsoup.connect( pluginProject.getUrl() ).get(); - - message.append( "Site for " ). - append( pluginProject.getArtifactId() ). - append( " at " ). - append( pluginProject.getUrl() ). - append( " seek for" ). - append( pluginProject.getVersion() ); + if ( screenShot ) + { + driver.get( pluginProject.getUrl() ); + File scrFile = ( ( TakesScreenshot ) driver ).getScreenshotAs( OutputType.FILE ); + String fileName = "images" + File.separator + + configLine.getGroupId() + "_" + configLine.getArtifactId() + ".png"; + result.setScreenShot( fileName ); + FileUtils.copyFile( scrFile, new File( getReportOutputDirectory() + File.separator + fileName ) ); + } for ( HTMLChecker c : checker ) { result.getCheckMap().put( c, c.isOk( doc, version ) ); - message.append( "[" ).append( c.getName() ).append( c.isOk( doc, version ) ).append( "]" ); } result.setDocument( doc ); - getLog().warn( message.toString() ); - + } catch ( HttpStatusException hes ) { - getLog().warn( hes.getStatusCode() + " for " + hes.getUrl() ); + getLog().error( hes.getStatusCode() + " for " + hes.getUrl() ); result.setHTTPErrorUrl( hes.getStatusCode() ); } catch ( Exception ex ) @@ -410,8 +454,8 @@ public class DistCheckSiteMojo extends A // revert sort versions (not handling alpha and // complex vesion scheme but more usefull version are displayed left side Collections.sort( metadata.versioning.versions, Collections.reverseOrder() ); - getLog().warn( metadata.versioning.versions + " version(s) detected " + repoBaseUrl ); - + getLog().debug( metadata.versioning.versions + " version(s) detected " + repoBaseUrl ); + // central checkSite( configLine.getVersionnedPomFileURL( repoBaseUrl, metadata.versioning.latest ), configLine, metadata.versioning.latest ); @@ -431,8 +475,16 @@ public class DistCheckSiteMojo extends A public void execute() throws MojoExecutionException { //resolve only to what we set - + if ( screenShot ) + { + // create driver once reduce time to complete mojo + driver = new FirefoxDriver(); + } super.execute(); + if ( screenShot ) + { + driver.close(); + } } } 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=1491637&r1=1491636&r2=1491637&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 Jun 10 23:14:42 2013 @@ -349,11 +349,11 @@ public class DistCheckSourceReleaseMojo } } retrievedFile.removeAll( expectedFile ); - if ( !expectedFile.isEmpty() ) + if ( !retrievedFile.isEmpty() ) { - for ( String sourceItem : expectedFile ) + for ( String sourceItem : retrievedFile ) { - getLog().error( "Older:" + sourceItem + " in " + repourl ); + getLog().error( "Older than " + version + " version >> " + sourceItem + " << in " + repourl ); } } return retrievedFile; @@ -381,7 +381,7 @@ public class DistCheckSourceReleaseMojo { for ( String sourceItem : expectedFile ) { - getLog().error( "Missing:" + sourceItem + " in " + repourl ); + getLog().error( "Missing archive >> " + sourceItem + " << in " + repourl ); } } return expectedFile; Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/test.sh URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/test.sh?rev=1491637&r1=1491636&r2=1491637&view=diff ============================================================================== --- maven/sandbox/trunk/dist-tools/dist-tool-plugin/test.sh (original) +++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/test.sh Mon Jun 10 23:14:42 2013 @@ -1,3 +1 @@ -mvn clean install -mvn org.apache.maven.dist.tools:dist-tool-plugin:check-site -mvn org.apache.maven.dist.tools:dist-tool-plugin:check-site +mvn clean install site