import java.io.*; import java.util.*; import java.util.regex.*; import org.apache.maven.tools.plugin.javadoc.*; import org.codehaus.plexus.util.*; setAccessibility( true ); File docsDir = new File( basedir, "target/site/apidocs" ); System.out.println( "Checking for existence of: " + docsDir ); if ( !docsDir.exists() ) { throw new FileNotFoundException( docsDir + " was not created" ); } File docFile = new File( docsDir, "org/apache/maven/plugin/my/MyMojo.html" ); System.out.println( "Checking for existence of: " + docFile ); if ( !docFile.isFile() ) { throw new FileNotFoundException( docFile + " was not created" ); } String html = FileUtils.fileRead( docFile, "ISO-8859-1").replaceAll( "(\r\n)|(\r)|(\n)", "" ); System.out.println( "Checking for documentation of mojo type" ); String mojoType = "
" + MojoAggregatorTypeTaglet.HEADER + "
" + MojoConfiguratorTypeTaglet.HEADER + ":
roleHint
" + MojoExecuteTypeTaglet.HEADER + ":
phase:
validate
" + "
lifecycle:
default
" + MojoExecutionStrategyTypeTaglet.HEADER + ":
always
" + "
" + MojoGoalTypeTaglet.HEADER + ":
touch
" + "
" + MojoInheritByDefaultTypeTaglet.HEADER + ":
true
" + MojoInstantiationStrategyTypeTaglet.HEADER + ":
per-lookup
" + MojoPhaseTypeTaglet.HEADER + ":
phaseName
" + MojoRequiresDependencyResolutionTypeTaglet.HEADER + ":
compile
" + MojoRequiresDirectInvocationTypeTaglet.HEADER + ":
false
" + MojoRequiresOnLineTypeTaglet.HEADER + ":
true
" + MojoRequiresProjectTypeTaglet.HEADER + ":
true
" + MojoRequiresReportsTypeTaglet.HEADER + ":
false
"; if ( html.toLowerCase( Locale.ENGLISH ).indexOf( ( mojoType ).toLowerCase( Locale.ENGLISH ) ) < 0 ) { throw new IllegalStateException( "Mojo type doc wrong" ); } System.out.println( "Checking for documentation of mojo fields" ); String mojoField = "
" + MojoParameterFieldTaglet.HEADER + ":
default-value:
" + "
value
expression:
${project.build.directory}
alias:" + "
myAlias
" + MojoReadOnlyFieldTaglet.HEADER + "
" + MojoRequiredFieldTaglet.HEADER + "
" + "
"; if ( html.toLowerCase( Locale.ENGLISH ).indexOf( ( mojoField ).toLowerCase( Locale.ENGLISH ) ) < 0 ) { throw new IllegalStateException( "Mojo field doc wrong" ); } mojoField = "
" + MojoComponentFieldTaglet.HEADER + ":
role:" + "
org.apacha.maven.MyComponent
roleHint:
default
" + "
" + MojoReadOnlyFieldTaglet.HEADER + "
" + MojoRequiredFieldTaglet.HEADER + "
" + "
"; if ( html.toLowerCase( Locale.ENGLISH ).indexOf( ( mojoField ).toLowerCase( Locale.ENGLISH ) ) < 0 ) { throw new IllegalStateException( "Mojo field doc wrong" ); } return true;