This is an automated email from the ASF dual-hosted git repository. cstamas pushed a commit to branch do-not-keep-parameters-map in repository https://gitbox.apache.org/repos/asf/maven.git
commit 47c728c0234e6c70ba3582faf58c28a651f021f0 Author: Tamas Cservenak <[email protected]> AuthorDate: Tue Oct 12 13:19:18 2021 +0200 Fix MojoDescriptor It may lead to confusion as parameters (list) and parametersMap (map) may "fall apart" easily. Also, parametersMap did not honor parameter ordering while parameters list makes it look that order is important. Simply, rebuild the map always and retain ordering as well. --- .../maven/plugin/descriptor/MojoDescriptor.java | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java b/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java index a15bdcf..f2f4348 100644 --- a/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java +++ b/maven-plugin-api/src/main/java/org/apache/maven/plugin/descriptor/MojoDescriptor.java @@ -19,7 +19,7 @@ package org.apache.maven.plugin.descriptor; * under the License. */ -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -57,8 +57,6 @@ public class MojoDescriptor private List<Parameter> parameters; - private Map<String, Parameter> parameterMap; - /** By default, the execution strategy is "once-per-session" */ private String executionStrategy = SINGLE_PASS_EXEC_STRATEGY; @@ -229,20 +227,18 @@ public class MojoDescriptor } /** - * @return the list parameters as a Map + * @return the list parameters as a Map that is built from {@link #parameters} list. Any change to this map is NOT + * reflected on list and other way around! */ public Map<String, Parameter> getParameterMap() { - if ( parameterMap == null ) - { - parameterMap = new HashMap<>(); + LinkedHashMap<String, Parameter> parameterMap = new LinkedHashMap<>(); - if ( parameters != null ) + if ( parameters != null ) + { + for ( Parameter pd : parameters ) { - for ( Parameter pd : parameters ) - { - parameterMap.put( pd.getName(), pd ); - } + parameterMap.put( pd.getName(), pd ); } }
