This is an automated email from the ASF dual-hosted git repository.
kwin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-site.git
The following commit(s) were added to refs/heads/master by this push:
new 918bf0aa Clarify collection implementations being injected (#434)
918bf0aa is described below
commit 918bf0aa3807f874145e38dc5900d5ddc4a646dd
Author: Konrad Windszus <[email protected]>
AuthorDate: Tue Jul 4 18:07:38 2023 +0200
Clarify collection implementations being injected (#434)
---
.../apt/guides/mini/guide-configuring-plugins.apt | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/content/apt/guides/mini/guide-configuring-plugins.apt
b/content/apt/guides/mini/guide-configuring-plugins.apt
index 91f1b9e5..cb52a269 100644
--- a/content/apt/guides/mini/guide-configuring-plugins.apt
+++ b/content/apt/guides/mini/guide-configuring-plugins.apt
@@ -309,11 +309,11 @@ public class MyAnimalMojo
Where each of the animals listed would be entries in the <<<animals>>> field.
Unlike arrays, collections do not necessarily have
a specific component type. In order to derive the type of a collection item,
the following strategy is used:
- [[1]] If the XML element contains an <<<implementation>>> hint attribute,
try to load the class with the given fully qualified class name from the
attribute value
+ [[1]] If the first item XML element contains an <<<implementation>>> hint
attribute, try to load the class with the given fully qualified class name from
the attribute value
- [[2]] If the XML element contains a <<<.>>>, try to load the class with the
fully qualified class name given in the element name
+ [[2]] If the first item XML element contains a <<<.>>>, try to load the
class with the fully qualified class name given in the element name
- [[3]] Try the XML element name (with capitalized first letter) as a class in
the same package as the mojo/object being
+ [[3]] Try the first item XML element name (with capitalized first letter) as
a class in the same package as the mojo/object being
configured
[[4]] Use the parameter type information from either
@@ -324,6 +324,18 @@ public class MyAnimalMojo
[]
+ The following collection implementations are being used when there is no
<<<implementation>>> hint attribute in the XML element representing the
collection:
+
+*---------------------*--------------*
+|| Collection Class || Used for
+*---------------------*--------------*
+<<<TreeSet>>> | for all types assignable to <<<SortedSet>>>
+*---------------------*--------------*
+<<<HashSet>>> | for all types assignable to <<<Set>>>
+*---------------------*--------------*
+<<<ArrayList>>> | for every other <<<Collection>>> type which is not a
<<<Map>>>
+*---------------------*--------------*
+
Since Maven 3.3.9
({{{https://issues.apache.org/jira/browse/MNG-5440}MNG-5440}}), you can list
individual items alternatively as comma-separated list in the XML value of
animals directly.
This approach is also used if configuring collection/array parameters via
command line
The following example is equivalent to the example above:
@@ -381,6 +393,8 @@ public class MyAnimalMojo
In contrast to value objects and collections/arrays there is no string
coercion defined for maps, i.e. you cannot give parameters of that type via CLI
argument.
+ The map implementation class is by default <<<TreeMap>>> but can be
overridden with an <<<implementation>>> attribute on the XML element
representing the map.
+
**** {Mapping Properties}
Properties should be defined like the following: