You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sk...@apache.org on 2013/06/01 01:36:07 UTC

svn commit: r1488429 - in /maven/sandbox/trunk/dist-tools/dist-tool-plugin: ./ src/main/java/org/apache/maven/dist/tools/ src/site/

Author: skygo
Date: Fri May 31 23:36:06 2013
New Revision: 1488429

URL: http://svn.apache.org/r1488429
Log:
better output on site check + Http status code
fluido style
start to be usable.

Added:
    maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/site/
    maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/site/site.xml   (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/AbstractCheckResult.java
    maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.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=1488429&r1=1488428&r2=1488429&view=diff
==============================================================================
--- maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml (original)
+++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/pom.xml Fri May 31 23:36:06 2013
@@ -28,7 +28,12 @@
     <prerequisites>
         <maven>3.0.4</maven>
     </prerequisites>
-    
+    <licenses>
+        <license> 
+            <name>The Apache Software License, Version 2.0</name>
+            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+    </licenses>
     <dependencies>
         <dependency>
             <groupId>org.apache.maven</groupId>
@@ -89,7 +94,11 @@
             <version>${mvnversion}</version>
            
         </dependency>
-        
+        <dependency>
+            <groupId>org.apache.maven</groupId>
+            <artifactId>maven-artifact</artifactId>
+            <version>2.2.0</version>
+        </dependency>
     </dependencies>
     <build>
         <pluginManagement>
@@ -220,12 +229,17 @@
                         </reports>  
                     </reportSet>
                 </reportSets>
-               <!-- <configuration>
-                    <configurationLines>
-                        <configurationLine>org.apache.maven.wagon;wagon;https://dist.apache.org/repos/dist/release/maven/wagon/</configurationLine>
-                    </configurationLines>
-                </configuration>
-                   -->     
+                <!-- <configuration>
+                  <configurationLines>
+                      <configurationLine>org.apache.maven.wagon;wagon;https://dist.apache.org/repos/dist/release/maven/wagon/</configurationLine>
+                  </configurationLines>
+              </configuration>
+                -->
+            </plugin> 
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-plugin-plugin</artifactId>
+                <version>3.2</version>
             </plugin>
         </plugins>       
     </reporting>

Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/AbstractCheckResult.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/AbstractCheckResult.java?rev=1488429&r1=1488428&r2=1488429&view=diff
==============================================================================
--- maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/AbstractCheckResult.java (original)
+++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/AbstractCheckResult.java Fri May 31 23:36:06 2013
@@ -35,7 +35,7 @@ class AbstractCheckResult
     }
 
     /**
-     * @return the r
+     * @return the request
      */
     public ConfigurationLineInfo getConfigurationLine()
     {

Modified: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.java?rev=1488429&r1=1488428&r2=1488429&view=diff
==============================================================================
--- maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.java (original)
+++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/main/java/org/apache/maven/dist/tools/ConfigurationLineInfo.java Fri May 31 23:36:06 2013
@@ -1,4 +1,7 @@
 package org.apache.maven.dist.tools;
+
+import org.apache.maven.doxia.sink.Sink;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file

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=1488429&r1=1488428&r2=1488429&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 Fri May 31 23:36:06 2013
@@ -32,17 +32,21 @@ import java.util.Map;
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Unmarshaller;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
+import org.apache.maven.artifact.repository.MavenArtifactRepository;
+import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
 import org.apache.maven.doxia.sink.Sink;
-import org.apache.maven.model.Model;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.ProjectBuilder;
+import org.apache.maven.project.MavenProjectBuilder;
 import org.apache.maven.reporting.MavenReportException;
-import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
+import org.jsoup.HttpStatusException;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
@@ -56,17 +60,30 @@ public class DistCheckSiteMojo extends A
 {
 // common type for site checker
 
+    @Parameter( property = "localRepository", required = true, readonly = true )
+    protected ArtifactRepository localRepository;
     @Component
-    private ProjectBuilder projectBuilder;
+    private ArtifactFactory artifactFactory;
     @Component
-    private RepositorySystem repoSystem;
-    /**
-     * The entry point to Aether, i.e. the component doing all the work.
-     *
-     * @parameter default-value="${repositorySystemSession}"
-     * @readonly
-     */
-    private RepositorySystemSession repoSession;
+    private MavenProjectBuilder mavenProjectBuilder;
+
+    @Override
+    public String getOutputName()
+    {
+        return "dist-tool-checksite";
+    }
+
+    @Override
+    public String getName( Locale locale )
+    {
+        return "Disttool> Sites";
+    }
+
+    @Override
+    public String getDescription( Locale locale )
+    {
+        return "Verification of various maven web sites";
+    }
 
     interface HTMLChecker
     {
@@ -92,7 +109,8 @@ public class DistCheckSiteMojo extends A
     {
 
         private String url;
-        private Map<DistCheckSiteMojo.HTMLChecker, Boolean> checkMap = new HashMap<>();
+        private Map<HTMLChecker, Boolean> checkMap = new HashMap<>();
+        private int statusCode = 200;
 
         public DistCheckSiteResult( ConfigurationLineInfo r, String version )
         {
@@ -115,14 +133,53 @@ public class DistCheckSiteMojo extends A
         /**
          * @return the checkMap
          */
-        public Map<DistCheckSiteMojo.HTMLChecker, Boolean> getCheckMap()
+        public Map<HTMLChecker, Boolean> getCheckMap()
         {
             return checkMap;
         }
+
+        private void setHTTPErrorUrl( int statusCode )
+        {
+            this.statusCode = statusCode;
+        }
+
+        /**
+         * @return the statusCode
+         */
+        public int getStatusCode()
+        {
+            return statusCode;
+        }
+
+        private void getOverall( Sink sink )
+        {
+
+            if ( statusCode != 200 )
+            {
+                iconError( sink );
+            }
+            else
+            {
+                boolean tmp = false;
+                for ( Map.Entry<HTMLChecker, Boolean> e : checkMap.entrySet() )
+                {
+                    tmp = tmp || e.getValue();
+                }
+                if ( tmp )
+                {
+                    iconSuccess( sink );
+                }
+                else
+                {
+                    iconWarning( sink );
+                }
+            }
+        }
     }
     // keep result
     private List<DistCheckSiteResult> results = new LinkedList<>();
     private List<HTMLChecker> checker = new LinkedList<>();
+    private List<ArtifactRepository> artifactRepositories = new LinkedList<>();
 
     @Override
     protected void executeReport( Locale locale ) throws MavenReportException
@@ -161,6 +218,9 @@ public class DistCheckSiteMojo extends A
         sink.tableHeaderCell();
         sink.rawText( "URL" );
         sink.tableHeaderCell_();
+        sink.tableHeaderCell();
+        sink.rawText( "check summary" );
+        sink.tableHeaderCell_();
         for ( HTMLChecker c : checker )
         {
             sink.tableHeaderCell();
@@ -180,18 +240,37 @@ public class DistCheckSiteMojo extends A
             sink.rawText( csr.getVersion() );
             sink.tableCell_();
             sink.tableCell();
-            sink.rawText( csr.getUrl() );
+            if ( csr.getStatusCode() != 200 )
+            {
+                iconError( sink );
+                sink.rawText( "[" + csr.getStatusCode() + "]" + csr.getUrl() );
+            }
+            else
+            {
+                sink.rawText( csr.getUrl() );
+            }
             sink.tableCell_();
+            sink.tableHeaderCell();
+            csr.getOverall( sink );
+            sink.tableHeaderCell_();
+
             for ( HTMLChecker c : checker )
             {
                 sink.tableCell();
                 if ( csr.getCheckMap().get( c ) != null )
                 {
-                    sink.rawText( csr.getCheckMap().get( c ).toString() );
+                    if ( csr.getCheckMap().get( c ) )
+                    {
+                        iconSuccess( sink );
+                    }
+                    else
+                    {
+                        iconWarning( sink );
+                    }
                 }
                 else
                 {
-                    sink.rawText( "Error" );
+                    iconError( sink );
                 }
 
                 sink.tableCell_();
@@ -204,59 +283,20 @@ public class DistCheckSiteMojo extends A
         sink.close();
     }
 
-    @Override
-    public String getOutputName()
-    {
-        return "check-siteOutputName";
-    }
-
-    @Override
-    public String getName( Locale locale )
-    {
-        return "Check sites";
-    }
-
-    @Override
-    public String getDescription( Locale locale )
-    {
-        return "check-siteDescription";
-    }
-    /*@Component
-     private RepositorySystemSession repoSession;
-     */
-
     private void checkSite( String repourl, ConfigurationLineInfo r, String version )
     {
         DistCheckSiteResult result = new DistCheckSiteResult( r, version );
         results.add( result );
         StringBuilder message = new StringBuilder();
-        try (BufferedReader input = new BufferedReader( new InputStreamReader( new URL( repourl ).openStream() ) ))
+        try
         {
-            MavenXpp3Reader mavenreader = new MavenXpp3Reader();
-            Model m = mavenreader.read( input );
-            // need to have parent information and resolve properties 
-            // 
-           /* ModelBuildingRequest md = new DefaultModelBuildingRequest();
-             md.setPomFile( outputDirectory );
-             DefaultModelBuilder d = new DefaultModelBuilder();
-
-             
-             DefaultRepositorySystemSession repoSystem = new MavenRepositorySystemSession();
-             DefaultProjectBuildingRequest req = new DefaultProjectBuildingRequest();
-             //session.
-             req.setRepositorySession( repoSession );
-             //session.
-             getLog().warn( "" + repoSession );
-
-             req.setValidationLevel( ModelBuildingRequest.VALIDATION_LEVEL_STRICT );
-             ProjectBuildingResult res = projectBuilder.build( new UrlModelSource( new URL( repourl ) ), req );*/
-            MavenProject projectc = new MavenProject( m );//res.getProject();
-
-            getLog().info( projectc.getUrl() + "+" + projectc.getProperties() );
-            result.setUrl( projectc.getUrl() );
-            Document doc = Jsoup.connect( projectc.getUrl() ).get();
-            result.setUrl( projectc.getUrl() );
-            message.append( "Site for " ).append( projectc.getArtifactId() ).append( " at " ).append( projectc.getUrl() ).append( " seek for" ).append( projectc.getVersion() ).append( "    " );
+            Artifact pluginArtifact = artifactFactory.createProjectArtifact( r.getGroupId(), r.getArtifactId(), version );
+            MavenProject pluginProject = mavenProjectBuilder.buildFromRepository( pluginArtifact, artifactRepositories, localRepository, false );
+
+            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() ).append( "    " );
             for ( HTMLChecker c : checker )
             {
                 result.getCheckMap().put( c, c.isOk( doc, version ) );
@@ -266,10 +306,16 @@ public class DistCheckSiteMojo extends A
             getLog().warn( message.toString() );
 
         }
+        catch ( HttpStatusException hes )
+        {
+            getLog().warn( hes.getStatusCode() + " for " + hes.getUrl() );
+            result.setHTTPErrorUrl( hes.getStatusCode() );
+        }
         catch ( Exception ex )
         {
             //continue for  other artifact
             getLog().error( ex.getMessage() );
+            getLog().error( ex );
         }
 
     }
@@ -305,13 +351,17 @@ public class DistCheckSiteMojo extends A
     @Override
     public void execute() throws MojoExecutionException
     {
+        //resolve only to what we set
+        ArtifactRepository aa = new MavenArtifactRepository( "central", repoBaseUrl, new DefaultRepositoryLayout(), new ArtifactRepositoryPolicy( false, ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN ), new ArtifactRepositoryPolicy( true, ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN ) );
+        artifactRepositories.add( aa );
+
         //add  html checker
         checker.add( new HTMLChecker()
         {
             @Override
             public String getName()
             {
-                return "Stylus Skin:";
+                return "Stylus Skin";
             }
 
             @Override
@@ -333,7 +383,7 @@ public class DistCheckSiteMojo extends A
             @Override
             public String getName()
             {
-                return "Fluido Skin:";
+                return "Fluido Skin";
             }
 
             @Override
@@ -352,4 +402,34 @@ public class DistCheckSiteMojo extends A
         } );
         super.execute();
     }
+
+    private void iconError( Sink sink )
+    {
+        sink.figure();
+        sink.figureCaption();
+        sink.text( "error" );
+        sink.figureCaption_();
+        sink.figureGraphics( "images/icon_error_sml.gif" );
+        sink.figure_();
+    }
+
+    private void iconWarning( Sink sink )
+    {
+        sink.figure();
+        sink.figureCaption();
+        sink.text( "warning" );
+        sink.figureCaption_();
+        sink.figureGraphics( "images/icon_warning_sml.gif" );
+        sink.figure_();
+    }
+
+    private void iconSuccess( Sink sink )
+    {
+        sink.figure();
+        sink.figureCaption();
+        sink.text( "success" );
+        sink.figureCaption_();
+        sink.figureGraphics( "images/icon_success_sml.gif" );
+        sink.figure_();
+    }
 }

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=1488429&r1=1488428&r2=1488429&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 Fri May 31 23:36:06 2013
@@ -50,6 +50,24 @@ public class DistCheckSourceReleaseMojo 
 {
 //Artifact metadata retrieval done y hands.
 
+    @Override
+    public String getOutputName()
+    {
+        return "dist-tool-checksourcerelease";
+    }
+
+    @Override
+    public String getName( Locale locale )
+    {
+        return "Disttool> Source Release";
+    }
+
+    @Override
+    public String getDescription( Locale locale )
+    {
+        return "Verification of source release";
+    }
+
     class DistCheckSourceRelease extends AbstractCheckResult
     {
 
@@ -155,24 +173,6 @@ public class DistCheckSourceReleaseMojo 
         sink.close();
     }
 
-    @Override
-    public String getOutputName()
-    {
-        return "check-source-releaseOutputName";
-    }
-
-    @Override
-    public String getName( Locale locale )
-    {
-        return "check-source-releaseName";
-    }
-
-    @Override
-    public String getDescription( Locale locale )
-    {
-        return "check-source-releaseDescription";
-    }
-
     private List<String> checkRepos( String repourl, ConfigurationLineInfo r, String version ) throws IOException
     {
         Document doc = Jsoup.connect( repourl ).get();

Added: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/site/site.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/site/site.xml?rev=1488429&view=auto
==============================================================================
--- maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/site/site.xml (added)
+++ maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/site/site.xml Fri May 31 23:36:06 2013
@@ -0,0 +1,10 @@
+<project name="dist-tool">
+    <skin>
+        <groupId>org.apache.maven.skins</groupId>
+        <artifactId>maven-fluido-skin</artifactId>
+        <version>1.3.0</version>
+    </skin>
+    <body>
+        <menu ref="reports"/>
+    </body>
+</project>
\ No newline at end of file

Propchange: maven/sandbox/trunk/dist-tools/dist-tool-plugin/src/site/site.xml
------------------------------------------------------------------------------
    svn:eol-style = native