public class JavadocUtil extends Object
Modifier and Type | Class and Description |
---|---|
protected static class |
JavadocUtil.JavadocOutputStreamConsumer
Ignores line like 'Picked up JAVA_TOOL_OPTIONS: ...' as can happen on CI servers.
|
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_TIMEOUT
The default timeout used when fetching url, i.e.
|
protected static String |
ERROR_INIT_VM
Error message when VM could not be started using invoker.
|
Constructor and Description |
---|
JavadocUtil() |
Modifier and Type | Method and Description |
---|---|
protected static void |
copyJavadocResources(File outputDirectory,
File javadocDir,
String excludedocfilessubdir)
Convenience method that copy all
doc-files directories from javadocDir to the
outputDirectory . |
protected static void |
copyResource(URL url,
File file)
Copy the given url to the given file.
|
protected static String |
extractJavadocVersion(String output)
Parse the output for 'javadoc -J-version' and return the javadoc version recognized.
|
protected static List<String> |
getExcludedPackages(Collection<Path> sourcePaths,
Collection<String> excludedPackages)
Method that gets all the source files to be excluded from the javadoc on the given source paths.
|
protected static Collection<String> |
getExcludedPackages(Path sourceDirectory,
Collection<String> excludePackagenames)
Method that gets the complete package names (including subpackages) of the packages that were defined in the
excludePackageNames parameter.
|
protected static List<String> |
getFilesFromSource(File sourceDirectory,
List<String> sourceFileIncludes,
List<String> sourceFileExcludes,
Collection<String> excludePackages)
Convenience method that gets the files to be included in the javadoc.
|
protected static List<String> |
getIncludedFiles(File sourceDirectory,
String[] fileList,
Collection<String> excludePackages)
Method that gets the files or classes that would be included in the javadocs using the subpackages parameter.
|
protected static org.codehaus.plexus.languages.java.version.JavaVersion |
getJavadocVersion(File javadocExe)
Call the Javadoc tool and parse its output to find its version, i.e.:
|
protected static URL |
getRedirectUrl(URL url,
org.apache.maven.settings.Settings settings)
Execute an HTTP request to the given URL, follow redirects, and return the last redirect location.
|
protected static List<String> |
getTagletClassNames(File jarFile)
Auto-detect the class names of the implementation of
com.sun.tools.doclets.Taglet class from a given
jar file. |
protected static void |
invokeMaven(org.apache.maven.plugin.logging.Log log,
File localRepositoryDir,
File projectFile,
List<String> goals,
Properties properties,
File invokerLog,
File globalSettingsFile)
Invoke Maven for the given project file with a list of goals and properties, the output will be in the invokerlog
file.
|
static boolean |
isEmpty(Collection<?> collection)
Convenience method to determine that a collection is empty or null.
|
static boolean |
isNotEmpty(Collection<?> collection)
Convenience method to determine that a collection is not empty or null.
|
protected static boolean |
isValidElementList(URL url,
org.apache.maven.settings.Settings settings,
boolean validateContent) |
protected static boolean |
isValidPackageList(URL url,
org.apache.maven.settings.Settings settings,
boolean validateContent)
Validates an
URL to point to a valid package-list resource. |
protected static String |
parseJavadocMemory(String memory)
Parse a memory string which be used in the JVM arguments
-Xms or -Xmx . |
static Collection<Path> |
pruneDirs(org.apache.maven.project.MavenProject project,
Collection<String> dirs)
Method that removes the invalid directories in the specified directories.
|
protected static List<String> |
pruneFiles(Collection<String> files)
Method that removes the invalid files in the specified files.
|
protected static String |
quotedArgument(String value)
Convenience method to wrap a command line option-argument in single quotes (i.e.
|
protected static String |
quotedPathArgument(String value)
Convenience method to format a path argument so that it is properly interpreted by the javadoc tool.
|
protected static String |
readFile(File javaFile,
String encoding)
Read the given file and return the content or null if an IOException occurs.
|
static boolean |
shouldPruneFile(String f,
List<String> pruned)
Determine whether a file should be excluded from the provided list of paths, based on whether it exists and is
already present in the list.
|
protected static String[] |
splitPath(String path)
Split the given path with colon and semi-colon, to support Solaris and Windows path.
|
static String |
toRelative(File basedir,
String absolutePath) |
protected static String |
unifyPathSeparator(String path)
Unify the given path with the current System path separator, to be platform independent.
|
protected static boolean |
validateEncoding(String charsetName)
Validate if a charset is supported on this platform.
|
public static final int DEFAULT_TIMEOUT
protected static final String ERROR_INIT_VM
public static Collection<Path> pruneDirs(org.apache.maven.project.MavenProject project, Collection<String> dirs)
dirs
could be an absolute or relative against the project's base directory String
path.project
- the current Maven project not nulldirs
- the collection of String
directories path that will be validated.String
directories absolute paths.protected static List<String> pruneFiles(Collection<String> files)
files
should be an absolute String
path.files
- the list of String
files paths that will be validated.File
objects.public static boolean shouldPruneFile(String f, List<String> pruned)
f
- The files.pruned
- The list of pruned files..protected static List<String> getExcludedPackages(Collection<Path> sourcePaths, Collection<String> excludedPackages)
sourcePaths
- the path to the source filesexcludedPackages
- the package names to be excluded in the javadocprotected static String quotedArgument(String value)
'
). Intended for values which
may contain whitespace. \n
) are replaced with spaces, and single quotes are backslash escaped.value
- the option-argumentprotected static String quotedPathArgument(String value)
value
- the argument value.protected static void copyJavadocResources(File outputDirectory, File javadocDir, String excludedocfilessubdir) throws IOException
doc-files
directories from javadocDir
to the
outputDirectory
.outputDirectory
- the output directoryjavadocDir
- the javadoc directoryexcludedocfilessubdir
- the excludedocfilessubdir parameterIOException
- if anyprotected static List<String> getIncludedFiles(File sourceDirectory, String[] fileList, Collection<String> excludePackages)
sourceDirectory
- the directory where the source files are locatedfileList
- the list of all relative files found in the sourceDirectoryexcludePackages
- package names to be excluded in the javadocprotected static Collection<String> getExcludedPackages(Path sourceDirectory, Collection<String> excludePackagenames)
sourceDirectory
- the directory where the source files are locatedexcludePackagenames
- package names to be excluded in the javadocprotected static List<String> getFilesFromSource(File sourceDirectory, List<String> sourceFileIncludes, List<String> sourceFileExcludes, Collection<String> excludePackages)
sourceDirectory
- the directory where the source files are locatedsourceFileIncludes
- files to includesourceFileExcludes
- files to excludeexcludePackages
- packages to be excluded from the javadocsprotected static org.codehaus.plexus.languages.java.version.JavaVersion getJavadocVersion(File javadocExe) throws IOException, org.codehaus.plexus.util.cli.CommandLineException, IllegalArgumentException
javadoc.exe( or.sh ) - J - version
javadocExe
- not null fileIOException
- if javadocExe is null, doesn't exist or is not a fileorg.codehaus.plexus.util.cli.CommandLineException
- if anyIllegalArgumentException
- if no output was found in the command linePatternSyntaxException
- if the output contains a syntax error in the regular-expression pattern.extractJavadocVersion(String)
protected static String extractJavadocVersion(String output) throws IllegalArgumentException
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" |
output
- for 'javadoc -J-version'PatternSyntaxException
- if the output doesn't match with the output pattern
(?s).*?[^a-zA-Z]([0-9]+\\.?[0-9]*)(\\.([0-9]+))?.*
.IllegalArgumentException
- if the output is nullprotected static String parseJavadocMemory(String memory) throws IllegalArgumentException
-Xms
or -Xmx
. 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 |
memory
- the memory to be parsed, not null.memory
parameter, the
default unit is m
. The units g | gb
or t | tb
will be converted in
m
.IllegalArgumentException
- if the memory
parameter is null or doesn't match any pattern.protected static boolean validateEncoding(String charsetName)
charsetName
- the charsetName to be check.true
if the given charset is supported by the JVM, false
otherwise.protected static List<String> getTagletClassNames(File jarFile) throws IOException, ClassNotFoundException, NoClassDefFoundError
com.sun.tools.doclets.Taglet
class from a given
jar file. JAVA_HOME/lib/tools.jar
is a requirement to find
com.sun.tools.doclets.Taglet
class.jarFile
- not nullcom.sun.tools.doclets.Taglet
class names from a given jarFile.IOException
- if jarFile is invalid or not found, or if the JAVA_HOME/lib/tools.jar
is not
found.ClassNotFoundException
- if anyNoClassDefFoundError
- if anyprotected static void copyResource(URL url, File file) throws IOException
url
- not null urlfile
- not null file where the url will be createdIOException
- if anyprotected static void invokeMaven(org.apache.maven.plugin.logging.Log log, File localRepositoryDir, File projectFile, List<String> goals, Properties properties, File invokerLog, File globalSettingsFile) throws org.apache.maven.shared.invoker.MavenInvocationException
maven.home
Java system property or defined in
M2_HOME
system env variables.log
- a logger could be null.localRepositoryDir
- the localRepository not null.projectFile
- a not null project file.goals
- a not null goals list.properties
- the properties for the goals, could be null.invokerLog
- the log file where the invoker will be written, if null using System.out
.globalSettingsFile
- reference to settings file, could be null.org.apache.maven.shared.invoker.MavenInvocationException
- if anyprotected static String readFile(File javaFile, String encoding)
javaFile
- not nullencoding
- could be nullFileUtils.fileRead(File, String)
protected static String[] splitPath(String path)
splitPath( "/home:/tmp" ) = ["/home", "/tmp"] splitPath( "/home;/tmp" ) = ["/home", "/tmp"] splitPath( "C:/home:C:/tmp" ) = ["C:/home", "C:/tmp"] splitPath( "C:/home;C:/tmp" ) = ["C:/home", "C:/tmp"]
path
- which can contain multiple paths separated with a colon (:
) or a semi-colon
(;
), platform independent. Could be null.null
if path was null
.protected static String unifyPathSeparator(String path)
unifyPathSeparator( "/home:/tmp" ) = "/home:/tmp" (Solaris box) unifyPathSeparator( "/home:/tmp" ) = "/home;/tmp" (Windows box)
path
- which can contain multiple paths by separating them with a colon (:
) or a semi-colon
(;
), platform independent. Could be null.null
if path was
null
.splitPath(String)
,
File.pathSeparator
public static boolean isNotEmpty(Collection<?> collection)
collection
- the collection to verifytrue
if not null
and not empty, otherwise false
public static boolean isEmpty(Collection<?> collection)
collection
- the collection to verifytrue
if null
or empty, otherwise false
protected static URL getRedirectUrl(URL url, org.apache.maven.settings.Settings settings) throws IOException
url
- URLsettings
- Maven settingsIOException
- if there was an error during the HTTP requestprotected static boolean isValidPackageList(URL url, org.apache.maven.settings.Settings settings, boolean validateContent) throws IOException
URL
to point to a valid package-list
resource.url
- The URL to validate.settings
- The user settings used to configure the connection to the URL or null
.validateContent
- true
to validate the content of the package-list
resource;
false
to only check the existence of the package-list
resource.true
if url
points to a valid package-list
resource;
false
else.IOException
- if reading the resource fails.createHttpClient(org.apache.maven.settings.Settings, java.net.URL)
protected static boolean isValidElementList(URL url, org.apache.maven.settings.Settings settings, boolean validateContent) throws IOException
IOException
Copyright © 2004–2023 The Apache Software Foundation. All rights reserved.