org.apache.maven.plugin.javadoc
Class JavadocUtil

java.lang.Object
  extended by org.apache.maven.plugin.javadoc.JavadocUtil

public class JavadocUtil
extends java.lang.Object

Set of utilities methods for Javadoc.

Since:
2.4
Version:
$Id: JavadocUtil.java 633446 2008-03-04 12:28:11Z vsiveton $
Author:
Vincent Siveton

Constructor Summary
JavadocUtil()
           
 
Method Summary
protected static void addFilesFromSource(java.util.List files, java.io.File sourceDirectory, java.lang.String[] excludePackages)
          Convenience method that gets the files to be included in the javadoc.
protected static void copyJavadocResources(java.io.File outputDirectory, java.io.File javadocDir)
          Convenience method that copy all doc-files directories from javadocDir to the outputDirectory.
protected static void fetchURL(org.apache.maven.settings.Settings settings, java.net.URL url)
          Fetch an URL
protected static java.util.List getCompileArtifacts(java.util.Set artifacts)
          Copy from MavenProject.getCompileArtifacts()
protected static java.util.List getExcludedNames(java.util.List sourcePaths, java.lang.String[] subpackagesList, java.lang.String[] excludedPackages)
          Method that gets all the source files to be excluded from the javadoc on the given source paths.
protected static java.util.List getExcludedPackages(java.lang.String sourceDirectory, java.lang.String[] excludePackagenames)
          Method that gets the complete package names (including subpackages) of the packages that were defined in the excludePackageNames parameter.
protected static java.util.List getIncludedFiles(java.io.File sourceDirectory, java.lang.String[] fileList, java.lang.String[] excludePackages)
          Method that gets the files or classes that would be included in the javadocs using the subpackages parameter.
protected static float getJavadocVersion(java.io.File javadocExe)
          Call the Javadoc tool and parse its output to find its version, i.e.:
protected static java.lang.String hideProxyPassword(java.lang.String cmdLine, org.apache.maven.settings.Settings settings)
          For security reasons, if an active proxy is defined and needs an authentication by username/password, hide the proxy password in the command line.
protected static java.lang.String parseJavadocMemory(java.lang.String memory)
          Parse a memory string which be used in the JVM arguments -Xms or -Xmx.
protected static float parseJavadocVersion(java.lang.String output)
          Parse the output for 'javadoc -J-version' and return the javadoc version recognized.
protected static java.util.List pruneDirs(java.util.List dirs)
          Method that removes the invalid directories in the specified directories
protected static java.util.List pruneFiles(java.util.List files)
          Method that removes the invalid files in the specified files
protected static java.lang.String quotedArgument(java.lang.String value)
          Convenience method to wrap an argument value in single quotes (i.e.
protected static java.lang.String quotedPathArgument(java.lang.String value)
          Convenience method to format a path argument so that it is properly interpreted by the javadoc tool.
protected static boolean validateEncoding(java.lang.String charsetName)
          Validate if a charset is supported on this platform.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JavadocUtil

public JavadocUtil()
Method Detail

pruneDirs

protected static java.util.List pruneDirs(java.util.List dirs)
Method that removes the invalid directories in the specified directories

Parameters:
dirs - the list of directories that will be validated
Returns:
a List of valid directories

pruneFiles

protected static java.util.List pruneFiles(java.util.List files)
Method that removes the invalid files in the specified files

Parameters:
files - the list of files that will be validated
Returns:
a List of valid files

getExcludedNames

protected static java.util.List getExcludedNames(java.util.List sourcePaths,
                                                 java.lang.String[] subpackagesList,
                                                 java.lang.String[] excludedPackages)
Method that gets all the source files to be excluded from the javadoc on the given source paths.

Parameters:
sourcePaths - the path to the source files
subpackagesList - list of subpackages to be included in the javadoc
excludedPackages - the package names to be excluded in the javadoc
Returns:
a List of the source files to be excluded in the generated javadoc

getCompileArtifacts

protected static java.util.List getCompileArtifacts(java.util.Set artifacts)
Copy from MavenProject.getCompileArtifacts()

Parameters:
artifacts -
Returns:
list of compile artifacts

quotedArgument

protected static java.lang.String quotedArgument(java.lang.String value)
Convenience method to wrap an argument value in single quotes (i.e. '). Intended for values which may contain whitespaces.
To prevent javadoc error, the line separator (i.e. \n) are skipped.

Parameters:
value - the argument value.
Returns:
argument with quote

quotedPathArgument

protected static java.lang.String quotedPathArgument(java.lang.String value)
Convenience method to format a path argument so that it is properly interpreted by the javadoc tool. Intended for path values which may contain whitespaces.

Parameters:
value - the argument value.
Returns:
path argument with quote

copyJavadocResources

protected static void copyJavadocResources(java.io.File outputDirectory,
                                           java.io.File javadocDir)
                                    throws java.io.IOException
Convenience method that copy all doc-files directories from javadocDir to the outputDirectory.

Parameters:
outputDirectory - the output directory
javadocDir - the javadoc directory
Throws:
java.io.IOException - if any

getIncludedFiles

protected static java.util.List getIncludedFiles(java.io.File sourceDirectory,
                                                 java.lang.String[] fileList,
                                                 java.lang.String[] excludePackages)
Method that gets the files or classes that would be included in the javadocs using the subpackages parameter.

Parameters:
sourceDirectory - the directory where the source files are located
fileList - the list of all files found in the sourceDirectory
excludePackages - package names to be excluded in the javadoc
Returns:
a StringBuffer that contains the appended file names of the files to be included in the javadoc

getExcludedPackages

protected static java.util.List getExcludedPackages(java.lang.String sourceDirectory,
                                                    java.lang.String[] excludePackagenames)
Method that gets the complete package names (including subpackages) of the packages that were defined in the excludePackageNames parameter.

Parameters:
sourceDirectory - the directory where the source files are located
excludePackagenames - package names to be excluded in the javadoc
Returns:
a List of the packagenames to be excluded

addFilesFromSource

protected static void addFilesFromSource(java.util.List files,
                                         java.io.File sourceDirectory,
                                         java.lang.String[] excludePackages)
Convenience method that gets the files to be included in the javadoc.

Parameters:
sourceDirectory - the directory where the source files are located
files - the variable that contains the appended filenames of the files to be included in the javadoc
excludePackages - the packages to be excluded in the javadocs

getJavadocVersion

protected static float getJavadocVersion(java.io.File javadocExe)
                                  throws java.io.IOException,
                                         org.codehaus.plexus.util.cli.CommandLineException,
                                         java.lang.IllegalArgumentException,
                                         java.util.regex.PatternSyntaxException
Call the Javadoc tool and parse its output to find its version, i.e.:
 javadoc.exe(or .sh) -J-version
 

Parameters:
javadocExe - not null file
Returns:
the javadoc version as float
Throws:
java.io.IOException - if javadocExe is null, doesn't exist or is not a file
org.codehaus.plexus.util.cli.CommandLineException - if any
java.util.regex.PatternSyntaxException - if the output contains a syntax error in the regular-expression pattern.
java.lang.IllegalArgumentException - if no output was found in the command line
See Also:
parseJavadocVersion(String)

parseJavadocVersion

protected static float parseJavadocVersion(java.lang.String output)
                                    throws java.lang.IllegalArgumentException,
                                           java.util.regex.PatternSyntaxException
Parse the output for 'javadoc -J-version' and return the javadoc version recognized.
Here are some output for 'javadoc -J-version' depending the JDK used:
JDK Output for 'javadoc -J-version'
Sun 1.4 java full version "1.4.2_12-b03"
Sun 1.5 java full version "1.5.0_07-164"
IBM 1.4 javadoc full version "J2RE 1.4.2 IBM Windows 32 build cn1420-20040626"
IBM 1.5 (French JVM) javadoc version complète de "J2RE 1.5.0 IBM Windows 32 build pwi32pdev-20070426a"
FreeBSD 1.5 java full version "diablo-1.5.0-b01"
BEA jrockit 1.5 java full version "1.5.0_11-b03"

Parameters:
output - for 'javadoc -J-version'
Returns:
the version of the javadoc for the output.
Throws:
java.util.regex.PatternSyntaxException - if the output doesn't match with the output pattern (?s).*?([0-9]+\\.[0-9]+)(\\.([0-9]+))?.*.
java.lang.IllegalArgumentException - if the output is null

parseJavadocMemory

protected static java.lang.String parseJavadocMemory(java.lang.String memory)
                                              throws java.lang.IllegalArgumentException
Parse a memory string which be used in the JVM arguments -Xms or -Xmx.
Here are some supported memory string depending the JDK used:
JDK Memory argument support for -Xms or -Xmx
SUN 1024k | 128m | 1g | 1t
IBM 1024k | 1024b | 128m | 128mb | 1g | 1gb
BEA 1024k | 1024kb | 128m | 128mb | 1g | 1gb

Parameters:
memory - the memory to be parsed, not null.
Returns:
the memory parsed with a supported unit. If no unit specified in the memory parameter, the default unit is m. The units g | gb or t | tb will be converted in m.
Throws:
java.lang.IllegalArgumentException - if the memory parameter is null or doesn't match any pattern.

fetchURL

protected static void fetchURL(org.apache.maven.settings.Settings settings,
                               java.net.URL url)
                        throws java.io.IOException
Fetch an URL

Parameters:
settings - the user settings used to fetch the url with an active proxy, if defined.
url - the url to fetch
Throws:
java.io.IOException - if any

validateEncoding

protected static boolean validateEncoding(java.lang.String charsetName)
Validate if a charset is supported on this platform.

Parameters:
charsetName - the charsetName to be check.

hideProxyPassword

protected static java.lang.String hideProxyPassword(java.lang.String cmdLine,
                                                    org.apache.maven.settings.Settings settings)
For security reasons, if an active proxy is defined and needs an authentication by username/password, hide the proxy password in the command line.

Parameters:
cmdLine - a command line, not null
settings - the user settings
Returns:
the cmdline with '*' for the http.proxyPassword JVM property


Copyright © 2004-2011 Apache Software Foundation. All Rights Reserved.