Author: epunzalan Date: Wed Jun 21 00:20:29 2006 New Revision: 415934 URL: http://svn.apache.org/viewvc?rev=415934&view=rev Log: PR: MNG-2397
- implemented check for usage.html and faq.html links inside site.xml - removed plugin specific documentation rules from the abstract class Modified: maven/sandbox/plugins/maven-docck-plugin/src/main/java/org/apache/maven/plugin/docck/AbstractCheckDocumentationMojo.java maven/sandbox/plugins/maven-docck-plugin/src/main/java/org/apache/maven/plugin/docck/CheckPluginDocumentationMojo.java Modified: maven/sandbox/plugins/maven-docck-plugin/src/main/java/org/apache/maven/plugin/docck/AbstractCheckDocumentationMojo.java URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-docck-plugin/src/main/java/org/apache/maven/plugin/docck/AbstractCheckDocumentationMojo.java?rev=415934&r1=415933&r2=415934&view=diff ============================================================================== --- maven/sandbox/plugins/maven-docck-plugin/src/main/java/org/apache/maven/plugin/docck/AbstractCheckDocumentationMojo.java (original) +++ maven/sandbox/plugins/maven-docck-plugin/src/main/java/org/apache/maven/plugin/docck/AbstractCheckDocumentationMojo.java Wed Jun 21 00:20:29 2006 @@ -74,7 +74,7 @@ * @parameter expression="${siteDirectory}" default-value="src/site" * @todo should be determined programmatically */ - private File siteDirectory; + protected File siteDirectory; /** * Sets whether this plugin is running in offline or online mode. Also useful when you don't want @@ -114,24 +114,25 @@ { MavenProject project = (MavenProject) it.next(); - if ( !approveProjectPackaging( project.getPackaging() ) ) + if ( approveProjectPackaging( project.getPackaging() ) ) { - getLog().info( "Skipping non-plugin project: " + project.getName() ); - continue; - } + getLog().info( "Checking project: " + project.getName() ); - getLog().info( "Checking project: " + project.getName() ); + DocumentationReporter reporter = new DocumentationReporter(); - DocumentationReporter reporter = new DocumentationReporter(); + checkProject( project, reporter ); - checkProject( project, reporter ); + if ( !hasErrors && reporter.hasErrors() ) + { + hasErrors = true; + } - if ( !hasErrors && reporter.hasErrors() ) + errors.put( project, reporter ); + } + else { - hasErrors = true; + getLog().info( "Skipping unsupported project: " + project.getName() ); } - - errors.put( project, reporter ); } String messages; @@ -235,8 +236,6 @@ { checkPomRequirements( project, reporter ); - checkProjectSite( project, reporter ); - checkPackagingSpecificDocumentation( project, reporter ); } @@ -346,44 +345,6 @@ //todo plugin report } - private void checkProjectSite( MavenProject project, DocumentationReporter reporter ) - { - // check for site.xml - File siteXml = new File( siteDirectory, "site.xml" ); - - if ( !siteXml.exists() ) - { - reporter.error( "site.xml is missing." ); - } - - /* disabled bec site:site generates a duplicate file error - // check for index.(xml|apt|html) - if ( !findFiles( siteDirectory, "index" ) ) - { - errors.add( "Missing site index.(html|xml|apt)." ); - } - */ - - // check for usage.(xml|apt|html) - if ( !findFiles( siteDirectory, "usage" ) ) - { - reporter.error( "Missing base usage.(html|xml|apt)." ); - } - - // check for **/examples/**.(xml|apt|html) - if ( !findFiles( siteDirectory, "**/examples/*" ) && !findFiles( siteDirectory, "**/example*" ) ) - { - reporter.error( "Missing examples." ); - } - - if ( !findFiles( siteDirectory, "faq" ) ) - { - reporter.error( "Missing base FAQ.(fml|html|xml|apt)." ); - } - - //todo Project Site Descriptor for usage, faq, examples - } - private void checkProjectLicenses( MavenProject project, DocumentationReporter reporter ) { List licenses = project.getLicenses(); @@ -501,7 +462,7 @@ protected abstract void checkPackagingSpecificDocumentation( MavenProject project, DocumentationReporter reporter ); - private boolean findFiles( File siteDirectory, String pattern ) + protected boolean findFiles( File siteDirectory, String pattern ) { FileSet fs = new FileSet(); fs.setDirectory( siteDirectory.getAbsolutePath() ); Modified: maven/sandbox/plugins/maven-docck-plugin/src/main/java/org/apache/maven/plugin/docck/CheckPluginDocumentationMojo.java URL: http://svn.apache.org/viewvc/maven/sandbox/plugins/maven-docck-plugin/src/main/java/org/apache/maven/plugin/docck/CheckPluginDocumentationMojo.java?rev=415934&r1=415933&r2=415934&view=diff ============================================================================== --- maven/sandbox/plugins/maven-docck-plugin/src/main/java/org/apache/maven/plugin/docck/CheckPluginDocumentationMojo.java (original) +++ maven/sandbox/plugins/maven-docck-plugin/src/main/java/org/apache/maven/plugin/docck/CheckPluginDocumentationMojo.java Wed Jun 21 00:20:29 2006 @@ -25,10 +25,13 @@ import org.apache.maven.project.MavenProject; import org.apache.maven.tools.plugin.extractor.ExtractionException; import org.apache.maven.tools.plugin.scanner.MojoScanner; +import org.codehaus.plexus.util.FileUtils; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.io.File; +import java.io.IOException; /** * Checks a plugin's documentation for the standard minimums. @@ -115,11 +118,73 @@ } checkConfiguredReportPlugins( project, reporter ); + + checkProjectSite( project, reporter ); } protected boolean approveProjectPackaging( String packaging ) { return "maven-plugin".equals( packaging ); + } + + private void checkProjectSite( MavenProject project, DocumentationReporter reporter ) + { + // check for site.xml + File siteXml = new File( siteDirectory, "site.xml" ); + + if ( !siteXml.exists() ) + { + reporter.error( "site.xml is missing." ); + } + else + { + try + { + String siteHtml = FileUtils.fileRead( siteXml.getAbsolutePath() ); + + if ( siteHtml.indexOf( "href=\"usage.html\"" ) < 0 ) + { + reporter.error( "site.xml is missing link to: usage.html" ); + } + + if ( siteHtml.indexOf( "href=\"faq.html\"" ) < 0 ) + { + reporter.error( "site.xml is missing link to: faq.html" ); + } + } + catch ( IOException e ) + { + reporter.error( "Unable to read site.xml file: \'" + siteXml.getAbsolutePath() + + "\'.\nError: " + e.getMessage() ); + } + } + + /* disabled bec site:site generates a duplicate file error + // check for index.(xml|apt|html) + if ( !findFiles( siteDirectory, "index" ) ) + { + errors.add( "Missing site index.(html|xml|apt)." ); + } + */ + + // check for usage.(xml|apt|html) + if ( !findFiles( siteDirectory, "usage" ) ) + { + reporter.error( "Missing base usage.(html|xml|apt)." ); + } + + // check for **/examples/**.(xml|apt|html) + if ( !findFiles( siteDirectory, "**/examples/*" ) && !findFiles( siteDirectory, "**/example*" ) ) + { + reporter.error( "Missing examples." ); + } + + if ( !findFiles( siteDirectory, "faq" ) ) + { + reporter.error( "Missing base FAQ.(fml|html|xml|apt)." ); + } + + //todo Project Site Descriptor for usage, faq, examples } /**