You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kw...@apache.org on 2022/10/26 15:36:47 UTC
[maven-plugin-tools] 01/02: [MPLUGIN-433] Improve javadoc link validation and allow to disable it
This is an automated email from the ASF dual-hosted git repository.
kwin pushed a commit to branch feature/improve-javadoc-link-validation
in repository https://gitbox.apache.org/repos/asf/maven-plugin-tools.git
commit 7cb7b485a0937d93347ac4cdc0037e62acf86884
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Wed Oct 26 14:31:33 2022 +0200
[MPLUGIN-433] Improve javadoc link validation and allow to disable it
---
.../maven/plugin/plugin/report_old/PluginReport.java | 15 ++++++++++++++-
.../maven/tools/plugin/generator/PluginXdocGenerator.java | 9 ++++++---
2 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/report_old/PluginReport.java b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/report_old/PluginReport.java
index bc34746d..de607f09 100644
--- a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/report_old/PluginReport.java
+++ b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/report_old/PluginReport.java
@@ -218,6 +218,18 @@ public class PluginReport
readonly = true )
private File enhancedPluginXmlFile;
+ /**
+ * In case the internal javadoc site has not been generated (e.g. when using an aggregator javadoc report)
+ * link validation needs to be disabled by setting this value to {@code true}.
+ * This might have the drawback that some links being generated in the report are broken in case not all
+ * parameter types and javadoc link references are resolvable through the sites being given to
+ * {@link DescriptorGeneratorMojo}.
+ *
+ * @since 3.7.0
+ */
+ @Parameter
+ private boolean disableInternalJavadocLinkValidation;
+
/**
* {@inheritDoc}
*/
@@ -324,7 +336,8 @@ public class PluginReport
File outputDir = outputDirectory;
outputDir.mkdirs();
- PluginXdocGenerator generator = new PluginXdocGenerator( getProject(), locale, getReportOutputDirectory() );
+ PluginXdocGenerator generator = new PluginXdocGenerator( getProject(), locale, getReportOutputDirectory(),
+ disableInternalJavadocLinkValidation );
PluginToolsRequest pluginToolsRequest = new DefaultPluginToolsRequest( getProject(), pluginDescriptor );
generator.execute( outputDir, pluginToolsRequest );
}
diff --git a/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginXdocGenerator.java b/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginXdocGenerator.java
index c13a1790..2694ad08 100644
--- a/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginXdocGenerator.java
+++ b/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginXdocGenerator.java
@@ -68,6 +68,8 @@ public class PluginXdocGenerator
*/
private final File reportOutputDirectory;
+ private final boolean disableInternalJavadocLinkValidation;
+
/**
* Default constructor using <code>Locale.ENGLISH</code> as locale.
* Used only in test cases.
@@ -84,14 +86,14 @@ public class PluginXdocGenerator
*/
public PluginXdocGenerator( MavenProject project )
{
- this( project, Locale.ENGLISH, new File( "" ).getAbsoluteFile() );
+ this( project, Locale.ENGLISH, new File( "" ).getAbsoluteFile(), false );
}
/**
* @param project not null.
* @param locale not null wanted locale.
*/
- public PluginXdocGenerator( MavenProject project, Locale locale, File reportOutputDirectory )
+ public PluginXdocGenerator( MavenProject project, Locale locale, File reportOutputDirectory, boolean disableInternalJavadocLinkValidation )
{
this.project = project;
if ( locale == null )
@@ -103,6 +105,7 @@ public class PluginXdocGenerator
this.locale = locale;
}
this.reportOutputDirectory = reportOutputDirectory;
+ this.disableInternalJavadocLinkValidation = disableInternalJavadocLinkValidation;
}
@@ -616,7 +619,7 @@ public class PluginXdocGenerator
// check if link is valid
URI javadocUrl = enhancedParameter.getTypeJavadocUrl();
if ( javadocUrl.isAbsolute()
- || JavadocLinkGenerator.isLinkValid( javadocUrl, reportOutputDirectory.toPath() ) )
+ || !disableInternalJavadocLinkValidation && JavadocLinkGenerator.isLinkValid( javadocUrl, reportOutputDirectory.toPath() ) )
{
return format( "pluginxdoc.mojodescriptor.parameter.type_link",
new Object[] { escapeXml( typeValue ), enhancedParameter.getTypeJavadocUrl() } );