You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by cs...@apache.org on 2021/10/12 11:20:55 UTC
[maven] 01/01: Fix MojoDescriptor
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 <ta...@cservenak.net>
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 );
}
}