Author: vsiveton Date: Wed Jul 30 04:26:56 2008 New Revision: 680983 URL: http://svn.apache.org/viewvc?rev=680983&view=rev Log: MJAVADOC-208: Added bootclasspath javadoc option
o added new option Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java maven/plugins/trunk/maven-javadoc-plugin/src/main/javadoc/org/apache/maven/plugin/javadoc/package.html maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/javadocOptions.mdo Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java?rev=680983&r1=680982&r2=680983&view=diff ============================================================================== --- maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java (original) +++ maven/plugins/trunk/maven-javadoc-plugin/src/main/java/org/apache/maven/plugin/javadoc/AbstractJavadocMojo.java Wed Jul 30 04:26:56 2008 @@ -56,6 +56,7 @@ import org.apache.maven.artifact.versioning.DefaultArtifactVersion; import org.apache.maven.execution.MavenSession; import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.javadoc.options.BootclasspathArtifact; import org.apache.maven.plugin.javadoc.options.DocletArtifact; import org.apache.maven.plugin.javadoc.options.Group; import org.apache.maven.plugin.javadoc.options.JavadocPathArtifact; @@ -386,6 +387,41 @@ // ---------------------------------------------------------------------- /** + * Specifies the paths where the boot classes reside. + * <br/> + * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#bootclasspath">bootclasspath</a>. + * <br/> + * + * @parameter expression="${bootclasspath}" + * @since 2.5 + */ + private String bootclasspath; + + /** + * Specifies the artifacts where the boot classes reside. + * <br/> + * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#bootclasspath">bootclasspath</a>. + * <br/> + * Example: + * <pre> + * <bootclasspathArtifacts> + * <bootclasspathArtifact> + * <groupId>my-groupId</groupId> + * <artifactId>my-artifactId</artifactId> + * <version>my-version</version> + * </bootclasspathArtifact> + * </bootclasspathArtifacts> + * </pre> + * <br/> + * See <a href="./apidocs/org/apache/maven/plugin/javadoc/options/BootclasspathArtifact.html">Javadoc</a>. + * <br/> + * + * @parameter expression="${bootclasspathArtifacts}" + * @since 2.5 + */ + private BootclasspathArtifact[] bootclasspathArtifacts; + + /** * Uses the sentence break iterator to determine the end of the first sentence. * <br/> * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#breakiterator">breakiterator</a>. @@ -2007,6 +2043,46 @@ } /** + * Method to get the path of the bootclass artifacts used in the -bootclasspath option. + * + * @return the path to jar file that contains taglet class file separated with a colon (<code>:</code>) + * on Solaris and a semi-colon (<code>;</code>) on Windows + * @throws MavenReportException if any + */ + private String getBootclassPath() + throws MavenReportException + { + StringBuffer path = new StringBuffer(); + + if ( bootclasspathArtifacts != null ) + { + List bootclassPath = new ArrayList(); + for ( int i = 0; i < bootclasspathArtifacts.length; i++ ) + { + BootclasspathArtifact aBootclasspathArtifact = bootclasspathArtifacts[i]; + + if ( ( StringUtils.isNotEmpty( aBootclasspathArtifact.getGroupId() ) ) + && ( StringUtils.isNotEmpty( aBootclasspathArtifact.getArtifactId() ) ) + && ( StringUtils.isNotEmpty( aBootclasspathArtifact.getVersion() ) ) ) + { + bootclassPath.addAll( getArtifactsAbsolutePath( aBootclasspathArtifact ) ); + } + } + + bootclassPath = JavadocUtil.pruneFiles( bootclassPath ); + + path.append( StringUtils.join( bootclassPath.iterator(), File.pathSeparator ) ); + } + + if ( StringUtils.isNotEmpty( bootclasspath ) ) + { + path.append( bootclasspath ); + } + + return path.toString(); + } + + /** * Method to get the path of the doclet artifacts used in the -docletpath option. * * Either docletArtifact or doclectArtifacts can be defined and used, not both, docletArtifact @@ -3396,6 +3472,9 @@ // see com.sun.tools.javadoc.Start#parseAndExecute(String argv[]) addArgIfNotEmpty( arguments, "-locale", JavadocUtil.quotedArgument( this.locale ) ); + + addArgIfNotEmpty( arguments, "-bootclasspath", JavadocUtil.quotedPathArgument( getBootclassPath() ) ); + addArgIfNotEmpty( arguments, "-classpath", JavadocUtil.quotedPathArgument( getClasspath() ) ); if ( StringUtils.isNotEmpty( doclet ) ) Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/javadoc/org/apache/maven/plugin/javadoc/package.html URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/javadoc/org/apache/maven/plugin/javadoc/package.html?rev=680983&r1=680982&r2=680983&view=diff ============================================================================== --- maven/plugins/trunk/maven-javadoc-plugin/src/main/javadoc/org/apache/maven/plugin/javadoc/package.html (original) +++ maven/plugins/trunk/maven-javadoc-plugin/src/main/javadoc/org/apache/maven/plugin/javadoc/package.html Wed Jul 30 04:26:56 2008 @@ -75,7 +75,7 @@ 1.4 </td> <td> - - + <bootclasspath/>, <bootclasspathArtifacts/> </td> </tr> <tr class="b"> Modified: maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/javadocOptions.mdo URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/javadocOptions.mdo?rev=680983&r1=680982&r2=680983&view=diff ============================================================================== --- maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/javadocOptions.mdo (original) +++ maven/plugins/trunk/maven-javadoc-plugin/src/main/mdo/javadocOptions.mdo Wed Jul 30 04:26:56 2008 @@ -185,6 +185,13 @@ </class> <class> + <name>BootclasspathArtifact</name> + <description>A bootclasspath parameter as artifact.</description> + <version>1.0.0</version> + <superClass>JavadocPathArtifact</superClass> + </class> + + <class> <name>Taglet</name> <description>A Taglet parameter.</description> <version>1.0.0</version>