This is an automated email from the ASF dual-hosted git repository.

gnodet pushed a commit to branch m-api
in repository https://gitbox.apache.org/repos/asf/maven-plugin-tools.git

commit 7da011e75075ed79065aeaafe63be671c4e25db4
Author: Guillaume Nodet <[email protected]>
AuthorDate: Fri Oct 21 09:16:43 2022 +0200

    Fix enhanced descriptor builder to make it compatible with recent changes
---
 .../descriptor/EnhancedPluginDescriptorBuilder.java     | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git 
a/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugins/plugin/descriptor/EnhancedPluginDescriptorBuilder.java
 
b/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugins/plugin/descriptor/EnhancedPluginDescriptorBuilder.java
index 8d3361a2..38805eac 100644
--- 
a/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugins/plugin/descriptor/EnhancedPluginDescriptorBuilder.java
+++ 
b/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugins/plugin/descriptor/EnhancedPluginDescriptorBuilder.java
@@ -30,6 +30,10 @@ import 
org.codehaus.plexus.configuration.PlexusConfigurationException;
 import org.apache.maven.plugin.plugin.report.PluginReport;
 
 import java.net.URI;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * Reads enhanced plugin.xml files as generated by
@@ -63,11 +67,14 @@ public class EnhancedPluginDescriptorBuilder extends 
PluginDescriptorBuilder
 
         PlexusConfiguration[] parameterConfigurations = c.getChild( 
"parameters" ).getChildren( "parameter" );
 
+        List<Parameter> parameters = new ArrayList<>( 
mojoDescriptor.getParameters() );
+        Map<String, Parameter> parameterMap = new LinkedHashMap<>( 
mojoDescriptor.getParameterMap() );
+
         for ( PlexusConfiguration d : parameterConfigurations )
         {
             String parameterName = d.getChild( "name" ).getValue();
             // don't call getParameterMap() to not populate 
-            Parameter pd = mojoDescriptor.getParameterMap().get( parameterName 
);
+            Parameter pd = parameterMap.get( parameterName );
             if ( requireAddingMissingParameterSinceField )
             {
                 addMissingParameterSinceField( pd, d );
@@ -78,10 +85,14 @@ public class EnhancedPluginDescriptorBuilder extends 
PluginDescriptorBuilder
                 String parameterTypeJavadocUrl = 
configTypeJavadocUrl.getValue();
                 EnhancedParameterWrapper enhancedParameter = new 
EnhancedParameterWrapper( pd );
                 enhancedParameter.setTypeJavadocUrl( URI.create( 
parameterTypeJavadocUrl ) );
-                mojoDescriptor.getParameters().set( 
mojoDescriptor.getParameters().indexOf( pd ), enhancedParameter );
-                mojoDescriptor.getParameterMap().put( parameterName, 
enhancedParameter );
+                parameters.set( mojoDescriptor.getParameters().indexOf( pd ), 
enhancedParameter );
+                parameterMap.put( parameterName, enhancedParameter );
             }
         }
+
+        mojoDescriptor.getParameters().clear();
+        mojoDescriptor.setParameters( parameters );
+
         return mojoDescriptor;
     }
 

Reply via email to