[ 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)