[ 
https://issues.apache.org/jira/browse/MPLUGIN-419?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17618855#comment-17618855
 ] 

ASF GitHub Bot commented on MPLUGIN-419:
----------------------------------------

kwin commented on code in PR #151:
URL: https://github.com/apache/maven-plugin-tools/pull/151#discussion_r996966815


##########
maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java:
##########
@@ -395,32 +397,33 @@ private DocletTag findInClassHierarchy( JavaClass 
javaClass, String tagName )
 
     /**
      * extract fields that are either parameters or components.
+     * also extract methods that are parameters

Review Comment:
   Upper case "Also".



##########
maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java:
##########
@@ -395,32 +397,33 @@ private DocletTag findInClassHierarchy( JavaClass 
javaClass, String tagName )
 
     /**
      * extract fields that are either parameters or components.
+     * also extract methods that are parameters
      *
      * @param javaClass not null
      * @return map with Mojo parameters names as keys
      */
-    private Map<String, JavaField> extractFieldParameterTags( JavaClass 
javaClass,
-                                                              Map<String, 
JavaClass> javaClassesMap )
+    private Map<String, JavaAnnotatedElement> extractParameterTags( JavaClass 
javaClass,

Review Comment:
   I would rename this method `extractParameterAnnotations`. Tag is such an 
overloaded term.



##########
maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java:
##########
@@ -443,6 +455,15 @@ private Map<String, JavaField> extractFieldParameterTags( 
JavaClass javaClass,
         }
     }
 
+    private boolean isPublicSetterMethod( JavaMethod method )
+    {
+        return method.isPublic()

Review Comment:
   Sisu also injects into methods with prefix "add". Also you need to check for 
the modifier 
(https://github.com/eclipse/sisu.plexus/blob/27a29dc633e6b03753a3c8d29a033648630c8831/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/CompositeBeanHelper.java#L143-L147
 and 
https://github.com/eclipse/sisu.plexus/blob/27a29dc633e6b03753a3c8d29a033648630c8831/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/CompositeBeanHelper.java#L267-L282)



##########
maven-plugin-plugin/src/site/apt/examples/using-annotations.apt.vm:
##########
@@ -41,18 +41,22 @@ Using Plugin Tools Java Annotations
 
   Information for plugin descriptor generation is specified using 4 
annotations:
 
-  * 2 class-level annotations:
+  * 2 class level annotations:
 
     * <<<@Mojo>>>: This annotation will mark your class as a Mojo,
 
     * <<<@Execute>>>: Used if your Mojo needs to fork a lifecycle,
 
     []
 
-  * 2 field-level annotations:
+  * 1 filed or method level annotations:

Review Comment:
   filed -> field





> Allow @Parameter on setters methods
> -----------------------------------
>
>                 Key: MPLUGIN-419
>                 URL: https://issues.apache.org/jira/browse/MPLUGIN-419
>             Project: Maven Plugin Tools
>          Issue Type: New Feature
>            Reporter: Slawomir Jaranowski
>            Assignee: Slawomir Jaranowski
>            Priority: Major
>
> We needn't filed for Mojo parameters.
> When setters method exist it is called first by Maven.
> We can declare Mojo as:
> {code:java}
> @Mojo( name = "my-mojo" )
> public class MyMojo extends AbstractMojo
> {
>     @Parameter
>     private String param;
>     public void execute()
>     {
>     }
> }
> {code}
> In some case will be useful to have possibility to declare as:
> {code:java}
> @Mojo( name = "my-mojo" )
> public class MyMojo extends AbstractMojo
> {
>     @Parameter
>     public void setParam(String param)
>     {
>         // do something with param
>     }
>     public void execute()
>     {
>     }
> }
> {code}
> eg, useful:
> - normalization 
> - validation
> - split one input value to more items, the same or other type



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to