This is an automated email from the ASF dual-hosted git repository. sjaranowski pushed a commit to branch MPLUGIN-407 in repository https://gitbox.apache.org/repos/asf/maven-plugin-tools.git
commit 366240ca3d6949bb45435c4582b8110ce223f324 Author: Slawomir Jaranowski <[email protected]> AuthorDate: Thu Jul 14 18:25:10 2022 +0200 [MPLUGIN-407] Remove duplicate code from PluginReport --- .../apache/maven/plugin/plugin/PluginReport.java | 104 ++------------------- 1 file changed, 7 insertions(+), 97 deletions(-) diff --git a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/PluginReport.java b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/PluginReport.java index 14f839ac..01c75a06 100644 --- a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/PluginReport.java +++ b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/PluginReport.java @@ -20,12 +20,11 @@ package org.apache.maven.plugin.plugin; */ import java.io.File; -import java.io.FileInputStream; import java.io.IOException; import java.io.Reader; +import java.nio.file.Files; import java.util.ArrayList; import java.util.Iterator; -import java.util.LinkedHashSet; import java.util.List; import java.util.Locale; import java.util.Map; @@ -33,9 +32,7 @@ import java.util.ResourceBundle; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.doxia.sink.Sink; -import org.apache.maven.doxia.siterenderer.Renderer; import org.apache.maven.model.Plugin; -import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException; import org.apache.maven.plugin.descriptor.MojoDescriptor; import org.apache.maven.plugin.descriptor.PluginDescriptor; import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder; @@ -52,13 +49,11 @@ import org.apache.maven.reporting.MavenReportException; import org.apache.maven.rtinfo.RuntimeInformation; import org.apache.maven.tools.plugin.DefaultPluginToolsRequest; import org.apache.maven.tools.plugin.PluginToolsRequest; -import org.apache.maven.tools.plugin.extractor.ExtractionException; import org.apache.maven.tools.plugin.generator.GeneratorException; import org.apache.maven.tools.plugin.generator.GeneratorUtils; import org.apache.maven.tools.plugin.generator.PluginXdocGenerator; import org.apache.maven.tools.plugin.scanner.MojoScanner; import org.apache.maven.tools.plugin.util.PluginUtils; -import org.codehaus.plexus.component.repository.ComponentDependency; import org.codehaus.plexus.configuration.PlexusConfigurationException; import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.xml.XmlStreamReader; @@ -83,18 +78,6 @@ public class PluginReport @Parameter( defaultValue = "${project.build.directory}/generated-site/xdoc" ) private File outputDirectory; - /** - * Doxia Site Renderer. - */ - @Component - private Renderer siteRenderer; - - /** - * The Maven Project. - */ - @Parameter( defaultValue = "${project}", readonly = true ) - private MavenProject project; - /** * Mojo scanner tools. */ @@ -215,15 +198,6 @@ public class PluginReport readonly = true ) private File pluginXmlFile; - /** - * {@inheritDoc} - */ - @Override - protected Renderer getSiteRenderer() - { - return siteRenderer; - } - /** * {@inheritDoc} */ @@ -234,15 +208,6 @@ public class PluginReport return project.getReporting().getOutputDirectory(); } - /** - * {@inheritDoc} - */ - @Override - protected MavenProject getProject() - { - return project; - } - /** * {@inheritDoc} */ @@ -259,10 +224,6 @@ public class PluginReport protected void executeReport( Locale locale ) throws MavenReportException { - if ( !canGenerateReport() ) - { - return; - } if ( skip || skipReport ) { getLog().info( "Maven Plugin Plugin Report generation skipped." ); @@ -276,7 +237,7 @@ public class PluginReport // Write the overview PluginOverviewRenderer r = - new PluginOverviewRenderer( project, requirements, getSink(), + new PluginOverviewRenderer( getProject(), requirements, getSink(), pluginDescriptor, locale, hasExtensionsToLoad ); r.render(); } @@ -286,66 +247,15 @@ public class PluginReport { PluginDescriptorBuilder builder = getPluginDescriptorBuilder(); - try ( Reader input = new XmlStreamReader( new FileInputStream( pluginXmlFile ) ) ) + try ( Reader input = new XmlStreamReader( Files.newInputStream( pluginXmlFile.toPath() ) ) ) { return builder.build( input ); } catch ( IOException | PlexusConfigurationException e ) { - getLog().debug( "Failed to read " + pluginXmlFile + ", fall back to mojoScanner" ); - } - - // Copy from AbstractGeneratorMojo#execute() - String defaultGoalPrefix = PluginDescriptor.getGoalPrefixFromArtifactId( project.getArtifactId() ); - if ( goalPrefix == null ) - { - goalPrefix = defaultGoalPrefix; - } - else - { - getLog().warn( "\n\nGoal prefix is specified as: '" + goalPrefix + "'. Maven currently expects it to be '" - + defaultGoalPrefix + "'.\n" ); + throw new MavenReportException( "Error extracting plugin descriptor from " + pluginXmlFile, e ); } - // TODO: could use this more, eg in the writing of the plugin descriptor! - PluginDescriptor pluginDescriptor = new PluginDescriptor(); - - pluginDescriptor.setGroupId( project.getGroupId() ); - - pluginDescriptor.setArtifactId( project.getArtifactId() ); - - pluginDescriptor.setVersion( project.getVersion() ); - - pluginDescriptor.setGoalPrefix( goalPrefix ); - - try - { - List<ComponentDependency> deps = GeneratorUtils.toComponentDependencies( project.getArtifacts() ); - pluginDescriptor.setDependencies( deps ); - - PluginToolsRequest request = new DefaultPluginToolsRequest( project, pluginDescriptor ); - request.setEncoding( encoding ); - request.setSkipErrorNoDescriptorsFound( true ); - request.setDependencies( new LinkedHashSet<>( project.getArtifacts() ) ); - request.setLocal( this.local ); - request.setRemoteRepos( this.remoteRepos ); - - try - { - mojoScanner.populatePluginDescriptor( request ); - } - catch ( InvalidPluginDescriptorException e ) - { - // this is OK, it happens to lifecycle plugins. Allow generation to proceed. - getLog().debug( "Plugin without mojos.", e ); - } - } - catch ( ExtractionException e ) - { - throw new MavenReportException( "Error extracting plugin descriptor: \'" + e.getLocalizedMessage() + "\'", - e ); - } - return pluginDescriptor; } /** @@ -415,8 +325,8 @@ public class PluginReport File outputDir = outputDirectory; outputDir.mkdirs(); - PluginXdocGenerator generator = new PluginXdocGenerator( project, locale ); - PluginToolsRequest pluginToolsRequest = new DefaultPluginToolsRequest( project, pluginDescriptor ); + PluginXdocGenerator generator = new PluginXdocGenerator( getProject(), locale ); + PluginToolsRequest pluginToolsRequest = new DefaultPluginToolsRequest( getProject(), pluginDescriptor ); generator.execute( outputDir, pluginToolsRequest ); } catch ( GeneratorException e ) @@ -488,7 +398,7 @@ public class PluginReport * {@inheritDoc} */ @Override - @SuppressWarnings( { "unchecked", "rawtypes" } ) + @SuppressWarnings( { "rawtypes" } ) public void renderBody() { startSection( getTitle() );
