This is an automated email from the ASF dual-hosted git repository. elharo pushed a commit to branch elharo-patch-2 in repository https://gitbox.apache.org/repos/asf/maven-plugin-tools.git
commit b89e57ef6e62712d873280336774ecd2684df6d4 Author: Elliotte Rusty Harold <elh...@users.noreply.github.com> AuthorDate: Fri Dec 13 19:44:12 2024 +0000 Update documnent to use Guice constructor injection --- .../src/site/apt/index.apt | 43 +++++++++++----------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/maven-plugin-tools-annotations/src/site/apt/index.apt b/maven-plugin-tools-annotations/src/site/apt/index.apt index dad471df..abed360a 100644 --- a/maven-plugin-tools-annotations/src/site/apt/index.apt +++ b/maven-plugin-tools-annotations/src/site/apt/index.apt @@ -90,28 +90,6 @@ public class MyMojo required = <false|true> ) private String parameter; - @Component( role = MyComponentExtension.class, - hint = "..." ) - private MyComponent component; - - // pseudo-parameters (marked read-only) permitting injection of Maven build context objects - // sample objects taken from Maven API through PluginParameterExpressionEvaluator - // https://maven.apache.org/ref/current/maven-core/apidocs/org/apache/maven/plugin/PluginParameterExpressionEvaluator.html - // plugins targetting Maven 3.2.5+ (after MNG-5695) should not use these pseudo-parameters any more, - // but @Component and Maven APIs to get better compiler-time checks - - // @Parameter( defaultValue = "${session}", readonly = true ) - @Component // since Maven 3.2.5, thanks to MNG-5695 - private MavenSession session; - - // @Parameter( defaultValue = "${project}", readonly = true ) - @Component // since Maven 3.2.5, thanks to MNG-5695 - private MavenProject project; - - // @Parameter( defaultValue = "${mojoExecution}", readonly = true ) - @Component // since Maven 3.2.5, thanks to MNG-5695 - private MojoExecution mojoExecution; - @Parameter( defaultValue = "${reactorProjects}", readonly = true ) // prefer using session.getProjects() private List<MavenProject> reactorProjects; @@ -132,6 +110,27 @@ public class MyMojo // prefer using project.getBuild().getDirectory() private File target; + // pseudo-parameters (marked read-only) permitting injection of Maven build context objects + // sample objects taken from Maven API through PluginParameterExpressionEvaluator + // https://maven.apache.org/ref/current/maven-core/apidocs/org/apache/maven/plugin/PluginParameterExpressionEvaluator.html + // plugins targeting Maven 3.2.5+ (after MNG-5695) should not use these pseudo-parameters any more, + // but @Inject and Maven APIs to get better compiler-time checks + + private final MyComponent component; + + private final MavenSession session; + + private final MavenProject project; + + private final MojoExecution mojoExecution; + + public MyMojo(MyComponent component, MavenSession session, MavenProject project, MojoExecution mojoExecution) { + this.component = component; + this.session = session; + this.project = project; + this.mojoExecution = mojoExecution; + } + /** * @Parameter for methods can be used only with public setter methods */